1import{r as e,t}from"./jsx-runtime-DGeXAQPT.js";import{t as n}from"./react-vt4WmSOl.js";import{n as r,t as i}from"./Footer-DKuimyCT.js";import{a,n as o,t as s}from"./createServerFn-gbusxnHk.js";import{t as c}from"./useMutation-Dyn-5d3K.js";var l=e(n()),u=s({method:`POST`}).handler(a(`f4ab91175279d24fdd2724e2cfe526fe74336bbdfd18bfac38060247ff17403a`)),d=t();function f(){let[e,t]=(0,l.useState)({name:``,email:``,subject:``,message:``,website:``}),n=o(u),a=c({mutationFn:e=>n({data:e})}),s=a.isPending||!e.name.trim()||!e.email.trim()||!e.subject.trim()||!e.message.trim();return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(r,{}),(0,d.jsxs)(`main`,{className:`mx-auto max-w-2xl px-5 py-16`,children:[(0,d.jsx)(`h1`,{className:`font-serif text-4xl md:text-5xl mb-4`,children:`Me contacter`}),(0,d.jsx)(`p`,{className:`text-foreground/70 mb-8`,children:`Une question sur une formation, le coaching, une commande ou juste un bonjour ? Ãcrivez-moi ci-dessous â je réponds sous 48 h ouvrées.`}),a.isSuccess?(0,d.jsxs)(`div`,{className:`rounded-lg border border-green-200 bg-green-50 p-6 text-green-800`,children:[(0,d.jsx)(`h2`,{className:`font-serif text-2xl mb-2`,children:`Message envoyé â
`}),(0,d.jsx)(`p`,{children:`Merci ! J'ai bien reçu votre message et je vous réponds rapidement à l'adresse indiquée.`})]}):(0,d.jsxs)(`form`,{onSubmit:t=>{t.preventDefault(),a.mutate(e)},className:`space-y-4`,children:[(0,d.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4`,children:[(0,d.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,d.jsx)(`span`,{className:`text-sm font-medium`,children:`Nom`}),(0,d.jsx)(`input`,{type:`text`,required:!0,maxLength:120,value:e.name,onChange:n=>t({...e,name:n.target.value}),className:`rounded-md border border-border px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary`})]}),(0,d.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,d.jsx)(`span`,{className:`text-sm font-medium`,children:`Email`}),(0,d.jsx)(`input`,{type:`email`,required:!0,maxLength:200,value:e.email,onChange:n=>t({...e,email:n.target.value}),className:`rounded-md border border-border px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary`})]})]}),(0,d.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,d.jsx)(`span`,{className:`text-sm font-medium`,children:`Sujet`}),(0,d.jsx)(`input`,{type:`text`,required:!0,maxLength:200,value:e.subject,onChange:n=>t({...e,subject:n.target.value}),className:`rounded-md border border-border px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary`})]}),(0,d.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,d.jsx)(`span`,{className:`text-sm font-medium`,children:`Message`}),(0,d.jsx)(`textarea`,{required:!0,maxLength:4e3,rows:8,value:e.message,onChange:n=>t({...e,message:n.target.value}),className:`rounded-md border border-border px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary resize-y`})]}),(0,d.jsx)(`input`,{type:`text`,tabIndex:-1,autoComplete:`off`,value:e.website,onChange:n=>t({...e,website:n.target.value}),style:{position:`absolute`,left:`-9999px`,width:1,height:1,opacity:0},"aria-hidden":`true`}),a.isError&&(0,d.jsx)(`p`,{className:`text-sm text-red-600`,children:a.error.message}),(0,d.jsx)(`button`,{type:`submit`,disabled:s,className:`inline-flex items-center justify-center rounded-full bg-primary px-8 py-3 font-semibold text-primary-foreground shadow-sm transition hover:opacity-90 disabled:opacity-50 disabled:cursor-not-allowed`,children:a.isPending?`Envoi en coursâ¦`:`Envoyer le message`})]})]}),(0,d.jsx)(i,{})]})}export{f as component};
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.