1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[977],{1895:(e,t,n)=>{"use strict";n.d(t,{default:()=>a});var s=n(5155),o=n(2115);let r="mykrwnvy";function a(){let[e,t]=(0,o.useState)("idle");async function n(e){e.preventDefault();let n=new FormData(e.target);if(!r){let e=encodeURIComponent("Hello from joshworth.com"),t=encodeURIComponent("".concat(n.get("message"),"\n\nâ ").concat(n.get("name")," (").concat(n.get("email"),")"));window.location.href="mailto:[email protected]?subject=".concat(e,"&body=").concat(t);return}t("sending");try{let e=await fetch("https://formspree.io/f/".concat(r),{method:"POST",body:n,headers:{Accept:"application/json"}});t(e.ok?"sent":"error")}catch(e){t("error")}}return"sent"===e?(0,s.jsx)("p",{children:(0,s.jsx)("strong",{children:"Thanks! Your message is on its way."})}):(0,s.jsxs)("form",{onSubmit:n,style:{display:"grid",gap:14,maxWidth:540},children:[(0,s.jsxs)("label",{children:["Your name",(0,s.jsx)("input",{name:"name",required:!0,style:i})]}),(0,s.jsxs)("label",{children:["Your email",(0,s.jsx)("input",{name:"email",type:"email",required:!0,style:i})]}),(0,s.jsxs)("label",{children:["Message",(0,s.jsx)("textarea",{name:"message",rows:7,required:!0,style:i})]}),(0,s.jsx)("button",{className:"button button-solid",type:"submit",disabled:"sending"===e,style:{justifySelf:"start",cursor:"pointer"},children:"sending"===e?"Sendingâ¦":"Send Message"}),"error"===e&&(0,s.jsx)("p",{style:{color:"#b04343"},children:"Something went wrong â you can also email me directly at [email protected]"})]})}let i={display:"block",width:"100%",marginTop:6,padding:"10px 12px",border:"1px solid var(--line)",borderRadius:3,font:"inherit",color:"inherit"}},4379:(e,t,n)=>{Promise.resolve().then(n.bind(n,1895))}},e=>{e.O(0,[441,255,358],()=>e(e.s=4379)),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.