{"version":3,"file":"withCustomFormSubmit.DL_3MWay.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,IAAI,EAAO,CAAC,EAAO,GAAWC,EAAS,CAAC,QAAQ,GAAM,QAAQ,GAAM,MAAM,IAAI,CAAC,EACzR,MAAc,CAAI,EAAQ,SAAS,EAAQ,QAAQ,MAAM,CAAG,EAC5D,GAAsB,EAAY,sBAAsB,CAAC,eAAe,CAAC,EAAO,SAAS,KAAK,CAAY,EAAE,GAAG,CACpH,EAAQ,EAAS,KAAM,IAAG,CAAI,GAAG,EAAE,eAAe,EACnD,EAAU,CAAC,QAAQ,GAAK,QAAQ,GAAM,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,IAAM,EAAI,MAAM,MAAM,8DAA8D,CAAC,OAAO,OAAO,QAAQ,CAAC,eAAe,kBAAkB,EAAE,KAAK,KAAK,UAAU,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,MAAM,EAAE,OAAO,MAAM,MAAM,YAAY,GAAG,QAAQ,aAAa,OAAO,UAAU,QAAQ,EAAE,OAAO,QAAQ,KAAK,CAAC,CAAC,CAAC,EACrW,GAAG,CAAC,EAAI,GAAG,CAAC,IAAM,EAAU,MAAM,EAAI,KAAK,EAAE,MAAU,MAAM,EAAU,SAAS,wBAAwB,CAAE,CAAC,IAAM,EAAK,MAAM,EAAI,KAAK,EAAE,QAAQ,IAAI,YAAY,CAAC,MAAI,CAAC,EACrK,EAAU,CAAC,QAAQ,GAAM,QAAQ,GAAK,MAAM,IAAI,CAAC,EACjD,EAAU,EAAE,EAAqB,CAAE,OAAO,EAAI,CAAC,QAAQ,IAAI,YAAY,CAAC,KAAG,CAAC,EAC5E,EAAU,CAAC,QAAQ,GAAM,QAAQ,GAAM,MAAM,EAAI,SAAS,4DAA4D,CAAC,CAAE,CAAC,EAC1H,OAD4H,MAAc,CAAC,IAAM,EAAK,EAAQ,QAAQ,GAAG,EAA+C,OAAzC,EAAK,iBAAiB,SAAS,CAAQ,MAAY,CAAC,EAAK,oBAAoB,SAAS,CAAQ,CAAE,EAAQ,QAAQ,IAAI,SAAS,CAAG,EAAE,CAAC,CAAC,EAC/R,EAAMC,EAAU,CAAC,SAAS,CAAc,EAAK,EAAU,CAAC,GAAG,EAAM,IAAI,EAAiB,WAAS,WAAW,CAAM,CAAC,EAAE,EAAO,SAAsB,EAAK,MAAM,CAAC,UAAU,sBAAsB,SAAS,4BAA4B,CAAC,EAAE,EAAO,SAAsB,EAAK,MAAM,CAAC,UAAU,sBAAsB,SAAS,oEAAoE,CAAC,EAAE,EAAO,OAAoB,EAAK,MAAM,CAAC,UAAU,oBAAoB,SAAS,EAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAE,CAAE,qBATra,IAA6C"}