{"version":3,"file":"NewsletterToSupabase.mCDGVo8K.mjs","names":["useRef"],"sources":["https:/framerusercontent.com/modules/gu8QWXWGtzRQgWBxyxeH/7ms7PXHr4Pc4JVDiiAxl/NewsletterToSupabase.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef}from\"react\";// Newsletter capture endpoint — see apps/api/src/app/v1/capture/newsletter/route.ts\n// The endpoint validates, rate-limits, and upserts into the `contacts` table\n// with source=\"newsletter\". Supabase keys never leave the server.\nconst NEWSLETTER_API_URL=\"https://api.my-temple.com/v1/capture/newsletter\";const THANK_YOU_URL=\"/newsletterthankyou\";async function submitEmail(email){try{await fetch(NEWSLETTER_API_URL,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify({email})});}catch(err){console.error(\"Newsletter submission failed:\",err);}}/**\n * Apply this override to any email signup form that should be\n * tracked as a \"newsletter\" contact. It listens for form submit\n * events, grabs the email, posts it to the Temple API, and BLOCKS\n * Framer's default submit behaviour so we don't double-send when\n * \"Send to\" is configured to a webhook/email destination.\n */export function withNewsletterSignup(Component){return function WrappedComponent(props){const ref=useRef(null);useEffect(()=>{const container=ref.current;if(!container)return;const handleSubmit=e=>{const form=e.target?.closest?.(\"form\");if(!form)return;const emailInput=form.querySelector(\"input[type='email']\");if(!emailInput?.value)return;// Block Framer's own send-to handler so we own the submit.\ne.preventDefault();e.stopPropagation();// Optional: track in GA before navigating away\nconst w=window;if(w.gtag){w.gtag(\"event\",\"newsletter_signup\",{form_type:\"newsletter\",user_email:emailInput.value});}// Fire-and-redirect — the user always lands on the thank-you\n// page; submitEmail logs its own errors, server-side is the\n// source of truth for any capture failure.\nsubmitEmail(emailInput.value).finally(()=>{window.location.href=THANK_YOU_URL;});};container.addEventListener(\"submit\",handleSubmit,true);return()=>container.removeEventListener(\"submit\",handleSubmit,true);},[]);return /*#__PURE__*/_jsx(\"div\",{ref:ref,children:/*#__PURE__*/_jsx(Component,{...props})});};}\nexport const __FramerMetadata__ = {\"exports\":{\"withNewsletterSignup\":{\"type\":\"reactHoc\",\"name\":\"withNewsletterSignup\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./NewsletterToSupabase.map"],"mappings":"uIAGqH,eAAe,EAAY,EAAM,CAAC,GAAG,CAAC,MAAM,MAAM,EAAmB,CAAC,OAAO,OAAO,QAAQ,CAAC,eAAe,mBAAmB,CAAC,KAAK,KAAK,UAAU,CAAC,QAAM,CAAC,CAAC,CAAC,OAAQ,EAAI,CAAC,QAAQ,MAAM,gCAAgC,EAAI,EAM/U,SAAgB,EAAqB,EAAU,CAAC,OAAO,SAA0B,EAAM,CAAC,IAAM,EAAIA,EAAO,KAAK,CAKmG,OALlG,MAAc,CAAC,IAAM,EAAU,EAAI,QAAQ,GAAG,CAAC,EAAU,OAAO,IAAM,EAAa,GAAG,CAAC,IAAM,EAAK,EAAE,QAAQ,UAAU,OAAO,CAAC,GAAG,CAAC,EAAK,OAAO,IAAM,EAAW,EAAK,cAAc,sBAAsB,CAAC,GAAG,CAAC,GAAY,MAAM,OACjV,EAAE,gBAAgB,CAAC,EAAE,iBAAiB,CACtC,IAAM,EAAE,EAAU,EAAE,MAAM,EAAE,KAAK,QAAQ,oBAAoB,CAAC,UAAU,aAAa,WAAW,EAAW,MAAM,CAAC,CAGlH,EAAY,EAAW,MAAM,CAAC,YAAY,CAAC,EAAO,SAAS,KAAK,GAAgB,EAA0D,OAAvD,EAAU,iBAAiB,SAAS,EAAa,GAAK,KAAW,EAAU,oBAAoB,SAAS,EAAa,GAAK,EAAG,EAAE,CAAC,CAAqB,EAAK,MAAM,CAAK,MAAI,SAAsB,EAAK,EAAU,CAAC,GAAG,EAAM,CAAC,CAAC,CAAC,2BAdnQ,IAAoC,CAGzE,EAAmB,kDAAwD,EAAc"}