{"version":3,"file":"withCustomFormSubmit.DXuz2XLD.mjs","names":["useRef","useState","_Fragment"],"sources":["https:/framerusercontent.com/modules/koFXybGY1yT8bIoideT4/g1tedjPrpMJxNNnyVZdJ/withCustomFormSubmit.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";export function withCustomFormSubmit(Component){return props=>{const formRef=useRef(null);const[status,setStatus]=useState({loading:false,success:false,error:null});// Reset form after successful submission\nconst resetForm=()=>{if(formRef.current){formRef.current.reset();}};// Redirect after successful submission (with delay for user to see success message)\nconst redirectAfterSuccess=(redirectUrl=\"/contact/thankyou\")=>{setTimeout(()=>{window.location.href=redirectUrl;},2e3)// 2-second delay before redirect\n;};const onSubmit=async e=>{if(e){e.preventDefault();}// Set loading state\nsetStatus({loading:true,success:false,error:null});try{const req=await fetch(\"https://backend.svc.virtuerealitymedia.com/api/web_contacts\",{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify({name:e.target.name.value,email:e.target.email.value,from_source:e?.target?.from_source?.value||\"Website\",message:e.target.message.value})});// Check if response is successful\nif(!req.ok){const errorData=await req.json();throw new Error(errorData.message||\"Form submission failed\");}const data=await req.json();console.log(\"[success]\",{data});// Set success state\nsetStatus({loading:false,success:true,error:null});// Reset form and redirect\nresetForm();redirectAfterSuccess();}catch(err){console.log(\"[failure]\",{err});// Set error state with message\nsetStatus({loading:false,success:false,error:err.message||\"There was an error submitting your form. Please try again.\"});}};useEffect(()=>{const form=formRef.current;if(form){form.addEventListener(\"submit\",onSubmit);return()=>{form.removeEventListener(\"submit\",onSubmit);};}else{console.log(\"no form\");}},[]);// Pass status and handler to the component\nreturn /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(Component,{...props,ref:formRef,onSubmit:onSubmit,formStatus:status}),status.loading&&/*#__PURE__*/_jsx(\"div\",{className:\"form-status loading\",children:\"Submitting your message...\"}),status.success&&/*#__PURE__*/_jsx(\"div\",{className:\"form-status success\",children:\"Thank you! Your message has been sent successfully. Redirecting...\"}),status.error&&/*#__PURE__*/_jsx(\"div\",{className:\"form-status error\",children:status.error})]});};}\nexport const __FramerMetadata__ = {\"exports\":{\"withCustomFormSubmit\":{\"type\":\"reactHoc\",\"name\":\"withCustomFormSubmit\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./withCustomFormSubmit.map"],"mappings":"4JAA4H,SAAgB,EAAqB,EAAU,CAAC,MAAO,IAAO,CAAC,IAAM,EAAQA,EAAO,KAAK,CAAM,CAAC,EAAO,GAAWC,EAAS,CAAC,QAAQ,GAAM,QAAQ,GAAM,MAAM,KAAK,CAAC,CAC1R,MAAc,CAAI,EAAQ,SAAS,EAAQ,QAAQ,OAAO,EAC1D,GAAsB,EAAY,sBAAsB,CAAC,eAAe,CAAC,EAAO,SAAS,KAAK,GAAc,IAAI,EAC7G,EAAS,KAAM,IAAG,CAAI,GAAG,EAAE,gBAAgB,CACpD,EAAU,CAAC,QAAQ,GAAK,QAAQ,GAAM,MAAM,KAAK,CAAC,CAAC,GAAG,CAAC,IAAM,EAAI,MAAM,MAAM,8DAA8D,CAAC,OAAO,OAAO,QAAQ,CAAC,eAAe,mBAAmB,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,MAAM,EAAE,OAAO,MAAM,MAAM,YAAY,GAAG,QAAQ,aAAa,OAAO,UAAU,QAAQ,EAAE,OAAO,QAAQ,MAAM,CAAC,CAAC,CAAC,CACtW,GAAG,CAAC,EAAI,GAAG,CAAC,IAAM,EAAU,MAAM,EAAI,MAAM,CAAC,MAAU,MAAM,EAAU,SAAS,yBAAyB,CAAE,IAAM,EAAK,MAAM,EAAI,MAAM,CAAC,QAAQ,IAAI,YAAY,CAAC,OAAK,CAAC,CACtK,EAAU,CAAC,QAAQ,GAAM,QAAQ,GAAK,MAAM,KAAK,CAAC,CAClD,GAAW,CAAC,GAAsB,OAAQ,EAAI,CAAC,QAAQ,IAAI,YAAY,CAAC,MAAI,CAAC,CAC7E,EAAU,CAAC,QAAQ,GAAM,QAAQ,GAAM,MAAM,EAAI,SAAS,6DAA6D,CAAC,GACxH,OAD4H,MAAc,CAAC,IAAM,EAAK,EAAQ,QAAQ,GAAG,EAA+C,OAAzC,EAAK,iBAAiB,SAAS,EAAS,KAAW,CAAC,EAAK,oBAAoB,SAAS,EAAS,EAAS,QAAQ,IAAI,UAAU,EAAI,EAAE,CAAC,CAChS,EAAMC,EAAU,CAAC,SAAS,CAAc,EAAK,EAAU,CAAC,GAAG,EAAM,IAAI,EAAiB,WAAS,WAAW,EAAO,CAAC,CAAC,EAAO,SAAsB,EAAK,MAAM,CAAC,UAAU,sBAAsB,SAAS,6BAA6B,CAAC,CAAC,EAAO,SAAsB,EAAK,MAAM,CAAC,UAAU,sBAAsB,SAAS,qEAAqE,CAAC,CAAC,EAAO,OAAoB,EAAK,MAAM,CAAC,UAAU,oBAAoB,SAAS,EAAO,MAAM,CAAC,CAAC,CAAC,CAAC,uBATja,IAA6C"}