PageSourceSearch

https://pipoly.app/assets/QualificationDetail-CTkxpoTa.js

js pipoly.app collected 2026-09-24 14:32:52 UTC 12,462 bytes, 1 lines download raw bytes

1import{j as e}from"./ui-vendor-7ksmbWQe.js";import{i as X,r as x,u as K}from"./react-vendor-LSUMIZ7H.js";import{k as W,l as A,j as q,P as G,D as T,C as R,a as Q,b as E,e as F,B as I,f as B,ae as $,s as Y,a2 as ee,X as ae,n as ie}from"./index-BbjaYi6k.js";import{L as w}from"./label-DYIPX6aC.js";import{B as D}from"./badge-Bmsjjq4U.js";import{R as L,a as k}from"./radio-group-CPD56xxW.js";import{T as U}from"./TranslatedContent-BISh55x2.js";import{i as te,p as se,s as le,a as re,b as ne,c as oe}from"./pollmaticQualifications-DxyUE7FP.js";import{u as H}from"./i18n-vendor-Cq4PMOpV.js";import{Z as ce}from"./zap-CVBRhrAf.js";import{E as de}from"./external-link-C3aystlF.js";import{C as z}from"./circle-check-big-BU2VkEa7.js";import{U as ue}from"./upload-C_qehPPi.js";async function me(i,p=1280,m=.75){return new Promise((c,f)=>{const r=new FileReader;r.onload=N=>{const s=new window.Image;s.onload=()=>{const n=document.createElement("canvas");let u=s.width,j=s.height;u>p&&(j=j*p/u,u=p),n.width=u,n.height=j;const b=n.getContext("2d");if(!b){f(new Error("Canvas error"));return}b.drawImage(s,0,0,u,j),c(n.toDataURL("image/jpeg",m))},s.onerror=()=>f(new Error("Failed to load image")),s.src=N.target?.result},r.onerror=()=>f(new Error("Failed to read file")),r.readAsDataURL(i)})}function xe({qualificationId:i,value:p,onChange:m}){const{t:c}=H(),[f,r]=x.useState(!1),[N,s]=x.useState(0),n=x.useRef(null),{toast:u}=A(),j=async b=>{const y=b.target.files?.[0];if(y){if(!y.type.startsWith("image/")){u({title:c("qualificationDetail.invalidFile"),description:c("qualificationDetail.selectImage"),variant:"destructive"});return}if(y.size>10*1024*1024){u({title:c("qualificationDetail.tooLarge"),description:c("qualificationDetail.maxSize"),variant:"destructive"});return}r(!0),s(20);try{const v=await me(y);s(50);const S=await q.uploadQualificationImage(i,v);s(100),m(S.url),u({title:c("qualificationDetail.uploaded"),description:c("qualificationDetail.uploadSuccess")})}catch(v){u({title:c("qualificationDetail.uploadFailed"),description:v.message,variant:"destructive"})}finally{r(!1)}}};return e.jsxs("div",{className:"space-y-2",children:[e.jsx("input",{ref:n,type:"file",accept:"image/*",onChange:j,className:"hidden",disabled:f}),p?e.jsxs("div",{className:"relative rounded-lg overflow-hidden border bg-muted",children:[e.jsx("img",{src:p,alt:"Upload",className:"w-full max-h-48 object-contain"}),e.jsx(I,{type:"button",size:"icon",variant:"destructive",className:"absolute top-2 right-2 h-8 w-8",onClick:()=>{m(""),n.current&&(n.current.value="")},children:e.jsx(ae,{className:"h-4 w-4"})})]}):e.jsx("div",{onClick:()=>!f&&n.current?.click(),className:"border-2 border-dashed rounded-lg p-6 text-center cursor-pointer transition-colors hover:border-primary/50 hover:bg-muted/50",children:f?e.jsxs("div",{className:"flex flex-col items-center gap-2",children:[e.jsx(G,{size:32,speed:1.6}),e.jsx(ie,{value:N,className:"w-full max-w-32"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:c("qualificationDetail.uploading")})]}):e.jsxs("div",{className:"flex flex-col items-center gap-2",children:[e.jsx(ue,{className:"h-8 w-8 text-muted-foreground"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:c("qualificationDetail.clickToUpload")}),e.jsx("p",{className:"text-xs text-muted-foreground",children:c("qualificationDetail.maxSize")})]})})]})}function Se(){const{t:i,i18n:p}=H(),{id:m}=X(),{data:c}=W(),f=c?.qualifications_pollmatic_enabled!==!1,[r,N]=x.useState(null),[s,n]=x.useState({}),[u,j]=x.useState(!0),[b,y]=x.useState(!1),[v,S]=x.useState({payable:0,pending:0}),[h,O]=x.useState(null),{toast:_}=A(),C=K();x.useEffect(()=>{V()},[m]);const V=async()=>{try{if(te(m)){if(!f){_({title:i("common.unavailable","Unavailable"),description:i("qualificationDetail.pmDisabled","This qualification is no longer available."),variant:"destructive"}),C("/tasks?tab=invited");return}const a=se(m),[o,t]=await Promise.all([q.getPollmaticSurveys(),q.getProfile()]),g=(o?.data||[]).find(M=>M.id===a)||null;if(!g){_({title:i("common.error"),description:i("qualificationDetail.surveyGone","This survey is no longer available. Please pick another."),variant:"destructive"}),C("/tasks?tab=invited");return}O(g),N(le(g)),t&&S({payable:t.payable_balance,pending:t.pending_balance});return}const[d,l]=await Promise.all([q.getQualification(m),q.getProfile()]);N(d),l&&S({payable:l.payable_balance,pending:l.pending_balance})}catch(d){_({title:i("common.error"),description:d.message,variant:"destructive"})}finally{j(!1)}},Z=async d=>{d.preventDefault(),y(!0);try{const l=await q.submitQualificationResponse(m,s);_({title:l.qualified?i("qualificationDetail.qualified"):l.status==="rejected"?"Not Qualified":i("common.submit"),description:l.message,variant:l.status==="rejected"?"destructive":"default"}),C("/tasks")}catch(l){_({title:i("common.error"),description:l.message,variant:"destructive"})}finally{y(!1)}};if(u)return e.jsx("div",{className:"min-h-screen bg-background pb-20 md:pb-6 flex items-center justify-center",children:e.jsx(G,{size:48,speed:1.6})});if(!r)return null;if(h){const d=re(h),l={title:oe(h),description:ne(h)};d.forEach((o,t)=>{l[`ins_${t}`]=o});const a=()=>{ee(),window.open(h.click_url,"_blank","noopener,noreferrer")};return e.jsxs("div",{className:"min-h-screen bg-background pb-20 md:pb-6",children:[e.jsx(T,{payableBalance:v.payable,pen
1dingBalance:v.pending}),e.jsx("main",{className:"container mx-auto px-4 pt-24 md:pt-6 pb-8 space-y-6",children:e.jsx(U,{texts:l,targetLanguage:p.language,children:o=>e.jsxs(R,{children:[e.jsx(Q,{children:e.jsxs("div",{className:"flex items-start justify-between",children:[e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2 flex-wrap",children:[e.jsx(D,{variant:"outline",className:"text-primary border-primary",children:i("qualificationDetail.qualification")}),e.jsxs(D,{variant:"secondary",className:"text-xs",children:[e.jsx(ce,{className:"h-3 w-3 mr-1"})," ",i("qualificationDetail.instant","Instant payout")]}),h.country&&e.jsx(D,{variant:"secondary",className:"text-xs",children:h.country})]}),e.jsx(E,{className:"text-xl",children:o.title}),o.description&&e.jsx("p",{className:"text-muted-foreground mt-2 whitespace-pre-wrap",children:o.description})]}),e.jsxs("div",{className:"text-2xl font-bold text-success",children:["ⓥ",r.reward]})]})}),e.jsxs(F,{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-3 gap-2 text-center",children:[e.jsxs("div",{className:"rounded-lg border p-2",children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:i("qualificationDetail.duration","Length")}),e.jsxs("p",{className:"text-sm font-semibold",children:["~",h.loi," min"]})]}),e.jsxs("div",{className:"rounded-lg border p-2",children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:i("qualificationDetail.ttr","Time to reward")}),e.jsx("p",{className:"text-sm font-semibold",children:i("qualificationDetail.instant","Instant")})]}),e.jsxs("div",{className:"rounded-lg border p-2",children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:i("qualificationDetail.rating","Rating")}),e.jsxs("p",{className:"text-sm font-semibold",children:[h.rating,"/5"]})]})]}),e.jsxs("div",{className:"rounded-xl border bg-muted/40 p-4 space-y-2",children:[e.jsx("p",{className:"text-sm font-semibold",children:i("qualificationDetail.howToQualify","How to qualify")}),e.jsx("ul",{className:"space-y-1.5 list-disc pl-5",children:d.map((t,g)=>e.jsx("li",{className:"text-sm text-muted-foreground",children:o[`ins_${g}`]||d[g]},g))})]}),e.jsxs(I,{type:"button",className:"w-full",onClick:a,children:[e.jsx(de,{className:"h-4 w-4 mr-2"}),i("qualificationDetail.startSurvey","Start survey")]}),e.jsx("p",{className:"text-[11px] text-muted-foreground text-center",children:i("qualificationDetail.opensPartner","Opens in a new tab. Reward is credited automatically once the panel confirms your response.")})]})]})})})]})}const P=typeof r.questions=="string"?JSON.parse(r.questions):r.questions,J=r.has_responded?r.is_qualified?e.jsxs(D,{className:"bg-green-100 text-green-700 border-green-300",children:[e.jsx(z,{className:"h-3 w-3 mr-1"})," ",i("qualificationDetail.qualified")]}):e.jsxs(D,{variant:"secondary",children:[e.jsx(B,{className:"h-3 w-3 mr-1"})," ",i("qualificationDetail.responseSubmitted")]}):null;return e.jsxs("div",{className:"min-h-screen bg-background pb-20 md:pb-6",children:[e.jsx(T,{payableBalance:v.payable,pendingBalance:v.pending}),e.jsx("main",{className:"container mx-auto px-4 pt-24 md:pt-6 pb-8 space-y-6",children:(()=>{const d={title:r.title||"",description:r.description||""};return(P||[]).forEach((l,a)=>{l.question&&(d[`q_${a}`]=l.question),Array.isArray(l.options)&&l.options.forEach((o,t)=>{o&&(d[`q_${a}_opt_${t}`]=o)})}),e.jsx(U,{texts:d,targetLanguage:p.language,children:l=>e.jsxs(R,{children:[e.jsx(Q,{children:e.jsxs("div",{className:"flex items-start justify-between",children:[e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(D,{variant:"outline",className:"text-primary border-primary",children:i("qualificationDetail.qualification")}),J]}),e.jsx(E,{className:"text-xl",children:l.title}),l.description&&e.jsx("p",{className:"text-muted-foreground mt-2 whitespace-pre-wrap",children:l.description})]}),e.jsx("div",{className:"text-2xl font-bold text-success",children:Number(r.reward)>0?`ⓥ${Math.floor(Number(r.reward))}`:i("tasksPage.free")})]})}),e.jsx(F,{children:r.has_responded?e.jsx("div",{className:"text-center py-8",children:r.is_qualified?e.jsxs(e.Fragment,{children:[e.jsx(z,{className:"h-12 w-12 text-green-500 mx-auto mb-4"}),e.jsx("p",{className:"text-lg font-semibold",children:i("qualificationDetail.youreQualified")}),e.jsx("p",{className:"text-muted-foreground",children:i("qualificationDetail.mayReceiveInvited")})]}):e.jsxs(e.Fragment,{children:[e.jsx(B,{className:"h-12 w-12 text-muted-foreground mx-auto mb-4"}),e.jsx("p",{className:"text-lg font-semibold",children:i("qualificationDetail.responseSubmitted")}),e.jsx("p",{className:"text-muted-foreground",children:i("qualificationDetail.employerWillReview")})]})}):e.jsxs("form",{onSubmit:Z,className:"space-y-6",children:[P.map((a,o)=>e.jsxs("div",{className:"space-y-2 p-4 border rounded-lg",children:[e.jsxs(w,{className:"text-sm font-medium",children:[o+1,". ",l[`q_${o}`]||a.question]}),a.type==="social_media"&&e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{children:[e.jsx(w,{className:"text-xs text-muted-foreground",children:i("qualificationDetail.username",{platform:a.platform})}),e.jsx($,{placeholder:`@your${a.platform}username`,value:s[`${a.id}_username`]||"",onChange:t=>n({...s,[`${a.id}_username`]:t.target.value}),required:!0})]}),e.jsxs("div",{children:[e.jsx(w,{className:"text-xs text-muted-foreground",children:i("qualificationDetail.followerCount")}),e.jsx($,{type:"number",placeholder:"0",value:s[`${a.id}_followers`]||"",onChange:t=>n({...s,[`${a.id}_followers`]:t.target.value}),required:!0})]})]}),a.type==="yes_no"&&e.jsxs(L,{value:s[a.id]||"",onValueChange:t=>n({...s,[a.id]:t}),children:[e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(k,{value:"yes",id:`${a.id}-yes`}),e.jsx(w,{htmlFor:`${a.id}-yes`,children:i("qualificationDetail.yes")})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(k,{value:"no",id:`${a.id}-no`}),e.jsx(w,{htmlFor:`${a.id}-no`,children:i("qualificationDetail.no")})]})]}),(a.type==="multiple_choice"||a.type==="device")&&e.jsx(L,{value:s[a.id]||"",onValueChange:t=>n({...s,[a.id]:t}),children:(a.options||[]).map((t,g)=>e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(k,{value:t,id:`${a.id}-${t}`}),e.jsx(w,{htmlFor:`${a.id}-${t}`,children:l[`q_${o}_opt_${g}`]||t})]},t))}),a.type==="text"&&e.jsx(Y,{placeholder:i("qualificationDetail.yourAnswer"),value:s[a.id]||"",onChange:t=>n({...s,[a.id]:t.target.value}),required:!0}),a.type==="number"&&e.jsx($,{type:"number",placeholder:i("qualificationDetail.enterNumber"),value:s[a.id]||"",onChange:t=>n({...s,[a.id]:t.target.value}),required:!0}),a.type==="image"&&e.jsx(xe,{qualificationId:m,value:s[a.id]||"",onChange:t=>n({...s,[a.id]:t})})]}
1,a.id)),e.jsx(I,{type:"submit",className:"w-full",disabled:b,children:i(b?"qualificationDetail.submitting":"qualificationDetail.submitResponse")})]})})]})})})()})]})}export{Se as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.