{"version":3,"file":"FileUpload_Form.BIlMDDC2.mjs","names":["React.useState"],"sources":["https:/framerusercontent.com/modules/sDdO5lOmYEl0oeUDOaTG/miHosQYMnEEMN5QoDTeu/FileUpload_Form.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";//Framer Side Panel Links\naddPropertyControls(DriveUpload,{subject:{type:ControlType.String,title:\"Subject\",defaultValue:\"Internship Application\"},endpoint:{type:ControlType.String,title:\"Endpoint\",defaultValue:\"https://script.google.com/macros/s/AKfycbzB4HbiIPW0OLPgdjOlYcrNRY6yHsPnaRlVSlq5sCH1qNSoI6ukfbqXuNkphBtLhBYq/exec\"},buttonText:{type:ControlType.String,title:\"Button\",defaultValue:\"Submit\"},accept:{type:ControlType.String,title:\"Accept\",defaultValue:\".pdf\"},maxSizeMB:{type:ControlType.Number,title:\"Max MB\",defaultValue:5},redirectUrl:{type:ControlType.String,title:\"Redirect URL\",defaultValue:\"/application-submitted\"}});export function DriveUpload(props){const{endpoint,buttonText,accept,maxSizeMB,subject,redirectUrl}=props;const[name,setName]=React.useState(\"\");const[email,setEmail]=React.useState(\"\");const[phone,setPhone]=React.useState(\"\");const[message,setMessage]=React.useState(\"\");const[file,setFile]=React.useState(null);const[status,setStatus]=React.useState(\"\");const[loading,setLoading]=React.useState(false);async function fileToBase64(selectedFile){return new Promise((resolve,reject)=>{const reader=new FileReader;reader.onload=()=>{const result=reader.result;const base64=result.split(\",\")[1];resolve(base64);};reader.onerror=reject;reader.readAsDataURL(selectedFile);});}async function handleSubmit(e){e.preventDefault();if(!file){setStatus(\"Please choose a file.\");return;}const maxBytes=maxSizeMB*1024*1024;if(file.size>maxBytes){setStatus(`File is too large. Maximum ${maxSizeMB}MB.`);return;}try{setLoading(true);setStatus(\"Uploading file...Do not refresh or close tab\");const base64=await fileToBase64(file);const response=await fetch(endpoint,{method:\"POST\",headers:{\"Content-Type\":\"text/plain;charset=utf-8\"},body:JSON.stringify({token:\"good-shepherd-services\",subject,name,email,phone,message,fileName:file.name,mimeType:file.type||\"application/octet-stream\",base64})});// get raw response\nconst text=await response.text();console.log(\"RAW RESPONSE:\",text);// try parsing manually\nlet data;try{data=JSON.parse(text);}catch(err){console.error(\"JSON PARSE ERROR:\",err);throw new Error(\"Server did not return valid JSON\");}console.log(\"PARSED RESPONSE:\",data);if(data.ok){setStatus(\"Upload successful.\");setName(\"\");setEmail(\"\");setPhone(\"\");setMessage(\"\");setFile(null);window.location.href=redirectUrl;}else{setStatus(data.error||\"Upload failed.\");}}catch(err){console.error(\"UPLOAD ERROR:\",err);setStatus(err.message||\"Something went wrong during upload.\");}finally{setLoading(false);}}return /*#__PURE__*/_jsxs(\"form\",{onSubmit:handleSubmit,style:{display:\"grid\",gap:12,width:\"100%\",padding:24,borderRadius:8,border:\"4px solid #F5F5F5\",background:\"#fff\"},children:[/*#__PURE__*/_jsxs(\"label\",{style:labelStyle,children:[\"Full Name\",/*#__PURE__*/_jsx(\"input\",{type:\"text\",placeholder:\"Your name\",value:name,onChange:e=>setName(e.target.value),style:inputStyle,required:true})]}),/*#__PURE__*/_jsxs(\"label\",{style:labelStyle,children:[\"Email\",/*#__PURE__*/_jsx(\"input\",{type:\"email\",placeholder:\"Your email\",value:email,onChange:e=>setEmail(e.target.value),style:inputStyle,required:true})]}),/*#__PURE__*/_jsxs(\"label\",{style:labelStyle,children:[\"Phone Number\",/*#__PURE__*/_jsx(\"input\",{type:\"tel\",placeholder:\"Your phone number\",value:phone,onChange:e=>setPhone(e.target.value),style:inputStyle,required:true})]}),/*#__PURE__*/_jsxs(\"label\",{style:labelStyle,children:[\"Message\",/*#__PURE__*/_jsx(\"textarea\",{placeholder:\"Your message\",value:message,onChange:e=>setMessage(e.target.value),required:true,style:{...inputStyle,minHeight:100,resize:\"vertical\"}})]}),/*#__PURE__*/_jsxs(\"label\",{style:labelStyle,children:[\"Upload Resume (max size \",maxSizeMB,\"mb)\",/*#__PURE__*/_jsx(\"input\",{type:\"file\",accept:accept,onChange:e=>setFile(e.target.files?.[0]||null),style:inputStyle,required:true})]}),/*#__PURE__*/_jsx(\"button\",{type:\"submit\",disabled:loading,className:\"formButton\",style:{padding:\"14px 16px\",borderRadius:4,border:\"none\",cursor:\"pointer\",fontWeight:600,fontFamily:\"montserrat\",fontSize:15,letterSpacing:.2,background:\"#1F2B5F\",color:\"#fff\",marginTop:16},children:loading?\"Loading...\":buttonText}),/*#__PURE__*/_jsx(\"style\",{children:`\n                    input::placeholder,\n                    textarea::placeholder  {\n                        color: #808080;\n                        font-size: 15px;\n                        line-height: 1.4;\n                        font-weight: 400 !important;\n                    }\n\n                    .formButton:hover {\n                        background: #00B8F5 !important;\n                    }\n\n                `}),status?/*#__PURE__*/_jsx(\"div\",{style:{fontSize:14,lineHeight:1.4},children:status}):null]});}const inputStyle={width:\"100%\",padding:\"12px 14px\",borderRadius:4,border:\"1px solid #ccc\",fontSize:15,boxSizing:\"border-box\",fontFamily:\"montserrat\",color:\"#1F2B5F\",background:\"#F9F9F9\",marginTop:6,fontWeight:500};const labelStyle={display:\"flex\",flexDirection:\"column\",gap:6,width:\"100%\",fontSize:14,fontWeight:500,fontFamily:\"montserrat\",color:\"#5C5F6E\",marginBottom:6};\nexport const __FramerMetadata__ = {\"exports\":{\"DriveUpload\":{\"type\":\"reactComponent\",\"name\":\"DriveUpload\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FileUpload_Form.map"],"mappings":"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"}