{"version":3,"file":"SendMagicLink.C8bXc06f.mjs","names":["useState","useCallback"],"sources":["https:/framerusercontent.com/modules/nrYBMm3IjpCtKUTIVj6u/y2KOUktMjrouycx5U6kd/SendMagicLink.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef,startTransition,useCallback,useEffect,useState}from\"react\";// ---------------------\n// MAGIC LINK BUTTON\n// ---------------------\nlet isSendingMagicLink=false;let didSendMagicLink=false;function withSendLogic(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[hasEmail,setHasEmail]=useState(false);const[isPending,setIsPending]=useState(false);const[isSuccess,setIsSuccess]=useState(didSendMagicLink);const syncEmailState=useCallback(()=>{if(typeof document===\"undefined\")return;const emailInput=document.querySelector('input[type=\"email\"]');const value=emailInput?.value?.trim()??\"\";startTransition(()=>setHasEmail(value.length>0));},[]);useEffect(()=>{if(typeof window===\"undefined\")return;const attachListeners=()=>{const emailInput=document.querySelector('input[type=\"email\"]');if(!emailInput)return null;const handler=()=>syncEmailState();emailInput.addEventListener(\"input\",handler);emailInput.addEventListener(\"change\",handler);return()=>{emailInput.removeEventListener(\"input\",handler);emailInput.removeEventListener(\"change\",handler);};};syncEmailState();let detach=attachListeners();const interval=window.setInterval(()=>{syncEmailState();if(!detach)detach=attachListeners();},250);return()=>{window.clearInterval(interval);if(detach)detach();};},[syncEmailState]);const setPendingStyles=useCallback(button=>{if(!button)return;button.style.setProperty(\"background-color\",\"#D3D3D3\",\"important\");button.style.setProperty(\"cursor\",\"progress\",\"important\");button.style.setProperty(\"pointer-events\",\"none\",\"important\");button.setAttribute(\"aria-disabled\",\"true\");if(\"disabled\"in button){button.disabled=true;}},[]);const setSuccessStyles=useCallback(button=>{if(!button)return;button.style.setProperty(\"background-color\",\"#D3D3D3\",\"important\");button.style.setProperty(\"pointer-events\",\"none\",\"important\");button.style.setProperty(\"cursor\",\"default\",\"important\");button.setAttribute(\"aria-disabled\",\"true\");button.textContent=\"Email sent\";if(\"disabled\"in button){button.disabled=true;}},[]);const restoreRuntimeDisabledState=useCallback(button=>{if(!button)return;button.style.removeProperty(\"background-color\");button.style.removeProperty(\"cursor\");button.style.removeProperty(\"pointer-events\");if(hasEmail){button.removeAttribute(\"aria-disabled\");if(\"disabled\"in button){button.disabled=false;}return;}button.style.setProperty(\"pointer-events\",\"none\",\"important\");button.setAttribute(\"aria-disabled\",\"true\");if(\"disabled\"in button){button.disabled=true;}},[hasEmail]);const onClick=useCallback(async event=>{if(isSendingMagicLink||didSendMagicLink)return;console.log(\"🟢 Send Magic Link clicked\");if(typeof document===\"undefined\")return;const emailInput=document.querySelector('input[type=\"email\"]');const email=emailInput?.value?.trim().toLowerCase();if(!email){alert(\"Please enter your email.\");syncEmailState();return;}const clickedButton=event?.currentTarget;isSendingMagicLink=true;startTransition(()=>setIsPending(true));let didSucceed=false;const requestStartedAt=Date.now();setPendingStyles(clickedButton);try{// -------------------------\n// 1) VERIFY LICENSE EXISTS\n// -------------------------\nconst verifyRes=await fetch(\"https://us-central1-modstream-470ed.cloudfunctions.net/verifyPurchase\",{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify({email})});const verifyData=await verifyRes.json();if(!verifyData.success){alert(verifyData.message||\"No license found for that email. Try using your checkout email.\");return;}// -------------------------\n// 2) REQUEST FRESH MAGIC LINK\n//    Firebase generates it server-side\n//    Resend delivers the email\n// -------------------------\nconst magicLinkRes=await fetch(\"https://us-central1-modstream-470ed.cloudfunctions.net/requestMagicLink\",{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify({email})});const magicLinkData=await magicLinkRes.json();if(!magicLinkData.success){alert(magicLinkData.message||\"Failed to send access link. Please try again.\");return;}alert(\"✅ Check your email! Your ModStream access link is on the way.\");console.log(\"📧 Magic link requested:\",email);didSucceed=true;didSendMagicLink=true;startTransition(()=>setIsSuccess(true));}catch(err){console.error(\"🔥 Magic link error:\",err);alert(\"Failed to send access link. Please try again.\");}finally{if(didSucceed){setSuccessStyles(clickedButton);startTransition(()=>setIsPending(false));return;}const elapsed=Date.now()-requestStartedAt;if(elapsed<800){await new Promise(resolve=>setTimeout(resolve,800-elapsed));}isSendingMagicLink=false;startTransition(()=>setIsPending(false));syncEmailState();restoreRuntimeDisabledState(clickedButton);}},[restoreRuntimeDisabledState,setPendingStyles,setSuccessStyles,syncEmailState]);const shouldDisable=!hasEmail||isPending||isSuccess;return /*#__PURE__*/_jsx(Component,{ref:ref,...props,onClick:onClick,\"aria-disabled\":shouldDisable,disabled:shouldDisable,style:{...props.style,pointerEvents:shouldDisable?\"none\":props.style?.pointerEvents}});});}export function withwithSendMagicLink(Component){return withSendLogic(Component);}export function withwithwithSendMagicLink(Component){return withSendLogic(Component);}\nexport const __FramerMetadata__ = {\"exports\":{\"withwithSendMagicLink\":{\"type\":\"reactHoc\",\"name\":\"withwithSendMagicLink\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withwithwithSendMagicLink\":{\"type\":\"reactHoc\",\"name\":\"withwithwithSendMagicLink\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SendMagicLink.map"],"mappings":"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"}