1import{c as P,e as $,b as L,r as i,u as E,v as y,j as e,k as T}from"./index-C_qWDU5T.js";import{D as N}from"./DashboardContainer-H49HsmSe.js";import{C as D,a as q}from"./card-BQKhrTus.js";import{B as H}from"./button-Dxmma_Yo.js";import{i as d}from"./lesson1-BQUGD1JW.js";import{B as M}from"./BackButton-DjylQgwT.js";import{C as u}from"./circle-check-big-DRFD0Wf4.js";import{C as z}from"./circle-x-BWWbRz_d.js";import"./arrow-left-Dwgqt29E.js";/** 2 * @license lucide-react v0.462.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const F=P("Blocks",[["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["path",{d:"M10 21V8a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-5a1 1 0 0 0-1-1H3",key:"1fpvtg"}]]),Q=()=>{const{id:C}=$(),{progressState:m,recordChallengeProgress:f}=L(),{isLoading:h}=m,[k,w]=i.useState(!0),[p,j]=i.useState({}),[r,b]=i.useState(!1),[n,v]=i.useState(!1),{t:s}=E(["challenge","common"]),c="activity-".concat(C||"1");i.useEffect(()=>{if(!h){const t=m.challengeProgress[c];if(t!=null&&t.completed_at){b(!0);const a=d.items.reduce((l,o,x)=>({...l,[x]:!0}),{});j(a)}w(!1)}},[h,m.challengeProgress,c]);const I=(t,a)=>{if(r)return;const l=a.currentTarget.querySelector(".answer");l&&(l.classList.toggle("hidden"),j(o=>({...o,[t]:!0})))},g=Object.keys(p).length===d.items.length,S=i.useCallback(async()=>{if(!g||r||n)return;v(!0);const t={challenge_id:c,lesson_url_id:101,score:100,time_used_seconds:null,questions_finished:d.items.length};try{await f(t),b(!0),y.success(s("challenge:activityCompleteSuccess"))}catch(a){console.error("Failed to record activity progress:",a),y.error(s("challenge:errorSavingActivity"))}finally{v(!1)}},[g,r,n,c,f,s]);return k||h?e.jsx(N,{children:e.jsxs("div",{className:"min-h-screen flex items-center justify-center",children:[" ",e.jsxs("div",{className:"animate-pulse-soft text-primary",children:[" ",e.jsx(F,{className:"h-14 w-14 mx-auto mb-3"})," ",e.jsx("p",{className:"text-center text-muted-foreground font-medium",children:s("common:loadingActivity")})," "]})," "]})}):e.jsx(N,{className:"challenge-container",children:e.jsxs("div",{className:"mx-auto max-w-6xl",children:[" ",e.jsx("div",{className:"flex items-center mb-4 mt-20",children:e.jsxs("div",{children:[" ",e.jsx(M,{label:s("challenge:backToChallengeZone")})," ",e.jsx("h1",{className:"mt-6 text-2xl font-semibold tracking-tight",children:s("challenge:spottingAITitle")})," "]})}),e.jsxs("div",{className:"my-8",children:[e.jsxs("div",{className:"mb-5 bg-primary/5 p-4 rounded-lg border border-primary/10",children:[e.jsx("h2",{className:"text-lg font-medium mb-3 text-primary",children:s("challenge:instructions")}),e.jsxs("ul",{className:"list-disc pl-6 space-y-1.5 text-base text-gray-700",children:[" ",e.jsx("li",{children:s("challenge:howToPlay")})," ",e.jsx("li",{children:s("challenge:instruction1")})," ",e.jsx("li",{children:s("challenge:instruction2")})," ",!r&&e.jsx("li",{children:s("challenge:instruction3")})," ",r&&e.jsx("li",{children:s("challenge:instructionCompleted")})," "]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 md:gap-6 w-full",children:[" ",d.items.map((t,a)=>{const l=p[a]||r,o=r?"bg-green-50":l?"bg-blue-50":"bg-white",x=r?"border-green-200":l?"border-primary/30":"border-gray-200",A=r?"":"hover:shadow-md hover:border-primary/50",B=r?"cursor-default":"cursor-pointer";return e.jsx(D,{className:"rounded-lg overflow-hidden transition-all duration-200 ".concat(x," ").concat(o," ").concat(A," ").concat(B," border"),onClick:_=>I(a,_),children:e.jsx(q,{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[t.url&&e.jsx("img",{src:t.url,alt:t.name,className:"w-12 h-12 object-contain flex-shrink-0 rounded-md bg-white p-1 border"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[" ",e.jsx("span",{className:"font-medium text-gray-800 block truncate",children:t.name})," ",e.jsx("div",{className:"answer mt-2 text-sm ".concat(l?"block":"hidden"),children:t.answer==="Yes"?e.jsxs("p",{className:"text-green-700 font-medium flex items-start",children:[e.jsx(u,{className:"inline h-4 w-4 mr-1 mt-0.5 flex-shrink-0"})," ",e.jsxs("span",{className:"flex-1",children:[s("challenge:usesAI")," - ",t.explanation]})]}):e.jsxs("p",{className:"text-red-700 font-medium flex items-start",children:[e.jsx(z,{className:"inline h-4 w-4 mr-1 mt-0.5 flex-shrink-0"})," ",e.jsxs("span",{className:"flex-1",children:[s("challenge:noAI")," - ",t.explanation]})]})})]})]})})},"item-".concat(a))})]}),e.jsxs("div",{className:"mt-8 text-center",children:[!r&&g&&e.jsxs(H,{onClick:S,disabled:n,size:"lg",className:"bg-green-600 hover:bg-green-700 text-white",children:[n?e.jsx(T,{className:"mr-2 h-4 w-4 animate-spin"}):e.jsx(u,{className:"mr-2 h-4 w-4"}),s(n?"common:submitting":"challenge:markActivityComplete")]}),r&&e.jsxs("div",{className:"p-4 bg-green-100 border border-green-200 rounded-lg inline-block",children:[" ",e.jsxs("p",{className:"font-medium text-green-700 flex items-center justify-center gap-2",children:[e.jsx(u,{className:"h-5 w-5"})," ",s("challenge:activityMarkedComplete")]})," "]})]})]})]})})};export{Q as default};
7//# sourceMappingURL=ActivityPage-DIQ9pEhg.js.map
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.