PageSourceSearch

https://www.i-rent.net/assets/EmailSettingsPage-C4MZdhaN.js

js i-rent.net collected 2026-09-24 09:01:20 UTC 7,699 bytes, 2 lines download raw bytes

1import{r as l,j as e}from"./framer-motion-Csoo3owf.js";import{s as g,x as c,B as S}from"./index-C0zgSp-L.js";import{I as d}from"./input-WmnflB9Q.js";import{L as o}from"./label-BnoSNeEY.js";import{C as p,b as u,c as h,d as x,a as j}from"./card-CtuvQAeg.js";import{i as R}from"./devBypass-txw6gr2R.js";import{a as V}from"./router-ZhEsGRvb.js";import{R as z,ae as T,ac as E,ab as D,aK as J,az as q,ar as K}from"./icons-Dl6Qu6_W.js";import"./radix-CfnEDMAP.js";import"./tanstack-FGaHpTQk.js";import"./supabase-CKAR0-eP.js";const v={recipient_email:"[email protected]",sender_name:"i-Rent.net Contact",sender_email:"[email protected]",cc_email:"",bcc_email:"",subject_template:"New Contact Form: {name}{company}"};function ee(){const m=V(),[s,n]=l.useState(v),[F,_]=l.useState(v),[O,b]=l.useState(!0),[N,y]=l.useState(!1),[f,C]=l.useState(!1);l.useEffect(()=>{(async()=>{if(R()){C(!0);return}if(sessionStorage.getItem("2fa_verified")!=="true"){m("/login");return}const{data:{user:i}}=await g.auth.getUser();if(!i){sessionStorage.removeItem("2fa_verified"),m("/login");return}const{data:r}=await g.from("user_roles").select("role").eq("user_id",i.id).eq("role","admin").maybeSingle();if(!r){m("/admin");return}C(!0)})()},[m]),l.useEffect(()=>{f&&A()},[f]);const A=async()=>{b(!0);try{const{data:a,error:t}=await g.from("email_settings").select("setting_key, setting_value");if(t)throw t;if(a&&a.length>0){const i={...v};a.forEach(r=>{r.setting_key in i&&(i[r.setting_key]=r.setting_value)}),n(i),_(i)}}catch(a){console.error("Error loading email settings:",a),c({title:"Fout",description:"Kon e-mailinstellingen niet laden.",variant:"destructive"})}finally{b(!1)}},I=async()=>{if(!s.recipient_email||!s.sender_email||!s.sender_name){c({title:"Validatiefout",description:"Ontvanger, afzender e-mail en afzender naam zijn verplicht.",variant:"destructive"});return}const a=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,t=[{key:"recipient_email",label:"Ontvanger"},{key:"sender_email",label:"Afzender e-mail"}];for(const i of t)if(!a.test(s[i.key])){c({title:"Validatiefout",description:`${i.label} is geen geldig e-mailadres.`,variant:"destructive"});return}if(s.cc_email&&!a.test(s.cc_email)){c({title:"Validatiefout",description:"CC e-mailadres is niet geldig.",variant:"destructive"});return}if(s.bcc_email&&!a.test(s.bcc_email)){c({title:"Validatiefout",description:"BCC e-mailadres is niet geldig.",variant:"destructive"});return}y(!0);try{const i=Object.entries(s);for(const[r,L]of i){const{error:k}=await g.from("email_settings").update({setting_value:L,updated_at:new Date().toISOString()}).eq("setting_key",r);if(k)throw k}_({...s}),c({title:"Opgeslagen",description:"E-mailinstellingen zijn succesvol bijgewerkt."})}catch(i){console.error("Error saving email settings:",i),c({title:"Fout bij opslaan",description:"Kon de instellingen niet opslaan.",variant:"destructive"})}finally{y(!1)}},w=JSON.stringify(s)!==JSON.stringify(F);if(!f)return null;if(O)return e.jsx("div",{className:"min-h-screen bg-background flex items-center justify-center",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(z,{className:"w-6 h-6 animate-spin text-primary"}),e.jsx("span",{className:"text-lg",children:"Laden..."})]})});const B=s.subject_template.replace("{name}","Jan Jansen").replace("{company}"," (Voorbeeld BV)");return e.jsx("div",{className:"min-h-screen bg-background",children:e.jsxs("div",{className:"container py-8 max-w-3xl",children:[e.jsxs(S,{variant:"ghost",onClick:()=>m("/admin"),className:"gap-2 mb-4",children:[e.jsx(T,{className:"w-4 h-4"})," Terug naar Admin"]}),e.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[e.jsx(E,{className:"w-8 h-8 text-primary"}),e.jsx("h1",{className:"text-3xl font-bold",children:"E-mail Instellingen"})]}),e.jsx("p",{className:"text-muted-foreground mb-8",children:"Beheer de instellingen voor het contactformulier e-mailverkeer."}),e.jsxs("div",{className:"space-y-6",children:[e.jsxs(p,{children:[e.jsxs(u,{children:[e.jsxs(h,{className:"text-lg flex items-center gap-2",children:[e.jsx(E,{className:"w-5 h-5"})," Ontvanger"]}),e.jsx(x,{children:"Naar welk e-mailadres worden contactformulier-berichten verzonden?"})]}),e.jsx(j,{children:e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{htmlFor:"recipient_email",children:"Ontvangst e-mailadres *"}),e.jsx(d,{id:"recipient_email",type:"email",value:s.recipient_email,onChange:a=>n(t=>({...t,recipient_email:a.target.value})),placeholder:"[email protected]"})]})})]}),e.jsxs(p,{children:[e.jsxs(u,{children:[e.jsxs(h,{className:"text-lg flex items-center gap-2",children:[e.jsx(D,{className:"w-5 h-5"})," Afzender"]}),e.jsx(x,{children:"De naam en het e-mailadres dat ontvangers zien als afzender."})]}),e.jsxs(j,{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{htmlFor:"sender_name",children:"Afzender naam *"}),e.jsx(d,{id:"sender_name",value:s.sender_name,onChange:a=>n(t=>({...t,sender_name:a.target.value})),placeholder:"i-Rent.net Contact"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{htmlFor:"sender_email",children:"Afzender e-mailadres *"}),e.jsx(d,{id:"sender_email",type:"email",value:s.sender_email,onChange:a=>n(t=>({...t,sender_email:a.target.value})),placeholder:"[email protected]"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Let op: dit adres moet geconfigureerd zijn in de e-maildienst (Resend) om verzending te laten werken."})]})]})]}),e.jsxs(p,{children:[e.jsxs(u,{children:[e.jsxs(h,{className:"text-lg flex items-center gap-2",children:[e.jsx(J,{className:"w-5 h-5"})," CC / BCC"]}),e.jsx(x,{children:"Optioneel: stuur een kopie naar extra ontvangers."})]}),e.jsxs(j,{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{htmlFor:"cc_email",children:"CC e-mailadres"}),e.jsx(d,{id:"cc_email",type:"email",value:s.cc_email,onChange:a=>n(t=>({...t,cc_email:a.target.value})),placeholder:"[email protected]"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{htmlFor:"bcc_email",children:"BCC e-mailadres"}),e.jsx(d,{id:"bcc_email",type:"email",value:s.bcc_email,onChange:a=>n(t=>({...t,bcc_email:a.target.value})),placeholder:"[email protected]"})]})]})]}),e.jsxs(p,{children:[e.jsxs(u,{children:[e.jsxs(h,{className:"text-lg flex items-center gap-2",children:[e.jsx(q,{className:"w-5 h-5"})," Onderwerpregel"]}),e.jsxs(x,{children:["Gebruik ",e.jsx("code",{className:"bg-muted px-1 rounded",children:"{name}"})," voor de naam en ",e.jsx("code",{className:"bg-muted px-1 rounded",children:"{company}"})," voor het bedrijf (inclusief haakjes)."]})]}),e.jsxs(j,{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{htmlFor:"subject_template",children:"Template"}),e.jsx(d,{id:"subject_template",value:s.subject_template,onChange:a=>n(t=>({...t,subject_template:a.target.value})),placeholder:"New Contact Form: {name}{company}"})]}),e.jsxs("div",{className:"bg-muted/50 rounded-lg p-3",children:[e.jsx("p",{className:"text-sm text-muted-foreground mb-1",children:"Voorbeeld:"}),e.jsx("p",{className:"text-sm font-medium",children:B})]})]})]})]}),e.jsxs("div",{className:"flex items-center gap-4 mt-8 sticky bottom-4 bg-background/80 backdrop-blur-sm p-4 rounded-lg border",children:[e.jsx(S,{onClick:I,disabled:!w||N,className:"gap-2",children:N?e.jsxs(e.Fragment,{children:[e.jsx(z,{className:"w-4 h-4 animate-spin"})," Opslaan..."]}):e.jsxs(e.Fragment,{children:[e.jsx(K,{className:"w-4 h-4"})," Opslaan"]})}),w&&e.jsx("span",{className:"text-sm text-muted-foreground",children:"Niet-opgeslagen wijzigingen"})]})]})})}export{ee as default};
2//# sourceMappingURL=EmailSettingsPage-C4MZdhaN.js.map

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.