{"version":3,"file":"LoadingResolveOnMount.CMoXTojX.mjs","names":["p","__legacyOverrideHOC_DataObserverContext","_jsx"],"sources":["https:/framerusercontent.com/modules/RoXVSpZbkipwpviTWIUv/5FiUnZdQpNCS7l2fjgOP/LoadingResolveOnMount.js"],"sourcesContent":["// cc-loading.tsx\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect}from\"react\";export function ResolveOnMount(){useEffect(()=>{(async()=>{const log=(...a)=>console.log(\"[cc/loading]\",...a);// --- constants ---\nconst MIN_SPIN=1600;const INITIAL_WAIT=800// Wait 800ms before first poll (quiz redirect waits 700ms + margin)\n;const MAX_TOTAL=12e3// 12 seconds total budget\n;const COOKIE_AGE=60*60*24*90;const ERROR_WEBHOOK=\"https://dev.jonaswilbert.com/webhook/5bb5ad17-96e8-43a7-bfdc-dd5d126bf120\";// --- quiz config ---\nconst QUIZ={\"heart-check\":{RESOLVE:\"https://dev.jonaswilbert.com/webhook/cdac7f48-1776-409e-83fb-8825e7b60026\",GO_OK:\"/heart-check/result-qualified\",GO_DQ:\"/heart-check/result-unqualified\"},\"pre-programme\":{RESOLVE:\"https://dev.jonaswilbert.com/webhook/3014e5b8-7e77-49cf-b6c6-673c1fb62253\",GO_OK:\"/pre-result\"},assessment:{RESOLVE:\"https://dev.jonaswilbert.com/webhook/assessment-resolver\",GO_OK:\"/assessment-result\"},unknown:{GO_OK:\"/error\"}};// --- helpers ---\nconst wait=ms=>new Promise(r=>setTimeout(r,ms));const setCookie=(n,v)=>{document.cookie=`${n}=${encodeURIComponent(String(v??\"\"))}; Path=/; Max-Age=${COOKIE_AGE}; Secure; SameSite=Lax`;};const redirectToError=(type,context={})=>{const errorUrl=`/error?type=${type}`;log(\"Redirecting to error page\",{type,context});// Send error report to webhook (fire and forget)\nsendErrorReport(type,context).catch(e=>console.warn(\"[cc/loading] Failed to send error report\",e));window.location.replace(errorUrl);};const sendErrorReport=async(type,context={})=>{const qs=new URLSearchParams(window.location.search);const errorPayload={type,timestamp:new Date().toISOString(),timestamp_unix:Date.now(),path:window.location.pathname,full_url:window.location.href,ref:context.ref||qs.get(\"ref\")||\"unknown\",cid:context.cid||qs.get(\"cid\")||localStorage.getItem(\"cc_cid\")||null,user_agent:navigator.userAgent,screen_resolution:`${window.screen.width}x${window.screen.height}`,viewport:`${window.innerWidth}x${window.innerHeight}`,referrer:document.referrer||null,language:navigator.language,platform:navigator.platform,error_details:context.error_details||null,polling_attempts:context.polling_attempts||0,total_duration_ms:context.total_duration_ms||0};try{await fetch(ERROR_WEBHOOK,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify(errorPayload)});}catch(e){// Silently fail - don't block user flow\nconsole.warn(\"[cc/loading] Error webhook failed\",e);}};const keySuffix=ref=>ref===\"heart-check\"?\"hc\":ref===\"pre-programme\"?\"pre\":ref===\"assessment\"?\"assess\":\"unk\";const storageKeys=ref=>{const s=keySuffix(ref);return{ls_scoped:`cc_result_${s}`,c_rc:`cc_rc_${s}`,c_score:`cc_score_${s}`,c_dq:`cc_dq_${s}`,c_fn:`cc_fn_${s}`};};// Safely read nested values from resolve payloads that may differ in shape\nconst pick=(obj,...path)=>{let cur=obj;for(const p of path){if(cur==null)return undefined;cur=cur[p];}return cur;};// Accept both {normalized:{...}} and flat projections, and old shapes (scores.*, anthropometrics.*)\nconst extractNormalized=data=>{const n=data?.normalized??data;return{result_code:data?.result_code??n?.result_code,risk_tier:n?.risk_tier??\"unknown\",score_points:Number(n?.score_points??data?.scores?.total_points??0),score_percent:Number(n?.score_percent??data?.scores?.total_percent??0),disqualified:Boolean(n?.disqualified??data?.disqualified??false),scoring_fallback:Boolean(n?.scoring_fallback??data?.scoring_fallback??false),display_texts:pick(n,\"display_texts\")??pick(data,\"display_texts\")??{gender_age:\"People ready to take charge of their heart health\",goal:\"Want to improve heart health and daily energy.\",family:\"\",lifestyle:\"Have a reasonably healthy lifestyle — and are ready to level up.\"}};};const saveResult=(data,ref)=>{const keys=storageKeys(ref);const n=extractNormalized(data);const payload={ref,cid:localStorage.getItem(\"cc_cid\")||null,first_name:data?.first_name||\"\",email:data?.email||\"\",result_code:n.result_code||\"\",risk_tier:n.risk_tier,score_points:n.score_points,score_percent:n.score_percent,disqualified:n.disqualified,scoring_fallback:n.scoring_fallback,scores:data?.scores??null,anthropometrics:data?.anthropometrics??null,display_texts:n.display_texts,ts:Date.now()};try{localStorage.setItem(keys.ls_scoped,JSON.stringify(payload));setCookie(keys.c_rc,payload.result_code);setCookie(keys.c_score,payload.score_percent);setCookie(keys.c_dq,payload.disqualified?1:0);if(payload.first_name)setCookie(keys.c_fn,payload.first_name);// also write the 4 dynamic lines to global keys your component expects\nconst d=n.display_texts||{};if(d.gender_age)localStorage.setItem(\"cento_match_gender_age\",String(d.gender_age));if(d.goal)localStorage.setItem(\"cento_match_goal\",String(d.goal));if(d.family)localStorage.setItem(\"cento_match_family\",String(d.family));if(d.lifestyle)localStorage.setItem(\"cento_match_lifestyle\",String(d.lifestyle));}catch(e){console.warn(\"[cc/loading] storage save failed\",e);throw new Error(\"Failed to save result to storage\");}log(\"✓ Data saved successfully\",{keys,payload});return payload;};// Consider \"ready\" only when we see real result fields (not just {success:true})\nconst isReady=data=>{if(!data)return false;const n=data.normalized??data;const hasCode=Boolean(n?.result_code);const hasScore=n?.score_percent!=null||n?.score_points!=null;const hasTexts=Boolean(n?.display_texts);return hasCode||hasScore||hasTexts;};// Poll resolver with optimized timing\nconst pollResolve=async(url,opts)=>{const start=Date.now();const deadline=start+opts.totalBudgetMs;let attempts=0;let lastError=null;// Progressive delays: longer waits early on when data might not be ready\nconst delays=[600,800,1e3,1200,1500,1800,2e3];const doFetch=async()=>{attempts++;const ctrl=new AbortController;const t=setTimeout(()=>ctrl.abort(),2500);try{const res=await fetch(url,{signal:ctrl.signal,cache:\"no-store\",headers:{Accept:\"application/json\"}});if(res.status===202||res.status===204){log(`  Attempt ${attempts}: Not ready (${res.status})`);return null;}if(!res.ok){lastError=`HTTP ${res.status}`;throw new Error(lastError);}const data=await res.json();return data;}catch(e){lastError=e?.message||String(e);if(!e?.message?.includes(\"abort\")){log(`  Attempt ${attempts}: Error - ${lastError}`);}return null;}finally{clearTimeout(t);}};// Wait before first attempt\nlog(`⏱ Waiting ${opts.initialWaitMs}ms before first poll...`);await wait(opts.initialWaitMs);// Poll with progressive backoff\nfor(let i=0;Date.now()<deadline;i++){const data=await doFetch();if(isReady(data)){log(`✓ Success on attempt ${attempts} (${Date.now()-start}ms)`);return{data,attempts,duration:Date.now()-start,success:true};}// Don't wait after last attempt\nif(Date.now()>=deadline)break;// Use progressive delay with jitter\nconst baseDelay=delays[Math.min(i,delays.length-1)];const jitter=Math.floor(Math.random()*200);const nextDelay=baseDelay+jitter;// Don't wait if it would exceed deadline\nif(Date.now()+nextDelay>=deadline){log(\"  Time budget exhausted, final attempt...\");await doFetch();break;}await wait(nextDelay);}log(`✗ Polling failed after ${attempts} attempts (${Date.now()-start}ms)`);return{data:null,attempts,duration:Date.now()-start,success:false,lastError};};// --- main ---\ntry{// Only run on /loading page\nif(window.location.pathname.replace(/\\/+$/,\"\")!==\"/heart-check/loading\"){log(\"Not on loading page, skipping\");return;}const qs=new URLSearchParams(window.location.search);const ref=(qs.get(\"ref\")||\"unknown\").toLowerCase();const cfg=QUIZ[ref]||QUIZ.unknown;log(\"=== Loading Page Initialized ===\",{ref});if(!cfg.RESOLVE){redirectToError(\"invalid-data\",{ref,error_details:\"No resolver configured for quiz type\"});return;}// Use cid only (no more 'r' parameter)\nconst cid=(qs.get(\"cid\")||localStorage.getItem(\"cc_cid\")||\"\").trim();if(!cid){redirectToError(\"not-found\",{ref,cid,error_details:\"No client_id provided\"});return;}log(\"Client ID:\",cid);// Start polling\nconst url=`${cfg.RESOLVE}?cid=${encodeURIComponent(cid)}`;let result=null;try{result=await pollResolve(url,{totalBudgetMs:MAX_TOTAL,initialWaitMs:INITIAL_WAIT});log(\"Polling completed:\",{success:result?.success,attempts:result?.attempts,duration:result?.duration});}catch(e){console.error(\"[cc/loading] Unexpected polling error\",e);await wait(MIN_SPIN);redirectToError(\"network\",{ref,cid,error_details:e?.message||String(e)});return;}// Check if polling succeeded\nif(!result?.success||!result?.data){log(\"✗ No valid data received\");await wait(MIN_SPIN);redirectToError(\"timeout\",{ref,cid,polling_attempts:result?.attempts||0,total_duration_ms:result?.duration||0,error_details:result?.lastError||\"Result not ready after polling\"});return;}// Save the result\nlog(\"💾 Saving result data...\");let saved;try{saved=saveResult(result.data,ref);}catch(e){console.error(\"[cc/loading] Save error\",e);await wait(MIN_SPIN);redirectToError(\"invalid-data\",{ref,cid,error_details:`Failed to save: ${e?.message||String(e)}`});return;}// Wait for minimum spinner if needed\nconst elapsed=result.duration;const remainingSpinTime=Math.max(0,MIN_SPIN-elapsed);if(remainingSpinTime>0){log(`⏱ Waiting ${remainingSpinTime}ms for minimum spinner...`);await wait(remainingSpinTime);}// Determine destination\nlet destination;if(ref===\"pre-programme\"||ref===\"assessment\"){destination=cfg.GO_OK;}else{// For heart-check, use disqualified flag\ndestination=saved.disqualified?cfg.GO_DQ:cfg.GO_OK;}log(`✓ Redirecting to: ${destination}`);window.location.replace(destination);}catch(e){console.error(\"[cc/loading] Top-level error\",e);redirectToError(\"unknown\",{error_details:`Unexpected error: ${e?.message||String(e)}`,stack:e?.stack||null});}})();},[]);return{};}import{useContext as __legacyOverrideHOC_useContext}from\"react\";import{DataObserverContext as __legacyOverrideHOC_DataObserverContext}from\"framer\";export function withResolveOnMount(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...ResolveOnMount(props)});};}withResolveOnMount.displayName=\"ResolveOnMount\";\nexport const __FramerMetadata__ = {\"exports\":{\"ResolveOnMount\":{\"type\":\"override\",\"name\":\"ResolveOnMount\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withResolveOnMount\":{\"type\":\"reactHoc\",\"name\":\"withResolveOnMount\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LoadingResolveOnMount.map"],"mappings":"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"}