PageSourceSearch

https://tagmembranguide.dk/assets/IntakeForm-Da1LFGPt.js

js tagmembranguide.dk collected 2026-10-09 17:17:59 UTC 6,658 bytes, 1 lines download raw bytes

1import{l as V,r as a,t as N,j as e,s as y,C as P,I as S,B as K}from"./index-BnPby6Le.js";const M=[{value:"0-5",label:"0-5 år"},{value:"6-15",label:"6-15 år"},{value:"16+",label:"16+ år"},{value:"ved-ikke",label:"Ved ikke"}],$=[{value:"nej",label:"Nej, der står normalt ikke vand på taget"},{value:"sjaeldent",label:"Ja, det sker i sjældne tilfælde"},{value:"ofte",label:"Ja, der står ofte vand på taget"},{value:"ved-ikke",label:"Ved ikke"}],F=[{value:"nej",label:"Nej, taget er som udgangspunkt tæt"},{value:"repareret",label:"Ja, men det er blevet repareret"},{value:"indimellem",label:"Ja, det er stadig utæt indimellem"},{value:"stort",label:"Ja, der er større problemer med utætheder"},{value:"ved-ikke",label:"Ved ikke"}],G=[{value:"3m",label:"Gerne inden for 3 måneder"},{value:"6m",label:"Gerne inden for 6 måneder"},{value:"12m",label:"Inden for 12 måneder"},{value:"3y",label:"Inden for 3 år"}];function R(){const n=(V().code??"").trim(),[r,l]=a.useState("loading"),[s,x]=a.useState(null),[f,C]=a.useState(null),[g,_]=a.useState(""),[b,T]=a.useState(""),[v,I]=a.useState(""),[p,w]=a.useState(""),[h,E]=a.useState(null),[i,O]=a.useState(""),[j,A]=a.useState(""),[k,L]=a.useState("");a.useEffect(()=>{if(!/^\d{5}$/.test(n)){l("error"),x("Linket ser ikke korrekt ud. Tjek venligst SMS'en.");return}(async()=>{const{data:t,error:o}=await N.functions.invoke("intake-form-public",{body:{action:"get",code:n}});if(o||!(t!=null&&t.ok)){l("error"),x("Vi kunne ikke finde dit skema. Linket er måske udløbet.");return}const d=t.form;C(d.first_name),E(typeof d.current_kvm=="number"?d.current_kvm:null),d.status==="answered"?l("already"):l("ready")})()},[n]);const J=async()=>{if(!g||!b||!v||!p||!i)return;const t=parseInt(j.replace(/\D/g,""),10);if(i==="nej"&&(!Number.isFinite(t)||t<1)){x("Skriv hvor mange m² du ønsker tilbud på.");return}l("submitting");const{data:o,error:d}=await N.functions.invoke("intake-form-public",{body:{action:"submit",code:n,roof_age:g,standing_water:b,leaks:v,timeline:p,area_confirmed:i==="ja",area_override_kvm:i==="nej"?t:null,area_override_note:i==="nej"?k:null}});if(d||!(o!=null&&o.ok)){l("ready"),x("Noget gik galt. Prøv igen om lidt.");return}l("done")};return e.jsx("main",{className:"min-h-screen bg-background py-10 px-4",children:e.jsxs("div",{className:"max-w-xl mx-auto",children:[e.jsxs("header",{className:"text-center mb-8",children:[e.jsx("div",{className:"text-xs uppercase tracking-wider text-muted-foreground mb-2",children:"Tagmembran Guide"}),e.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:r==="done"?"Tak":"Vi mangler lige de sidste oplysninger om dit tag"}),r!=="done"&&r!=="already"&&e.jsx("p",{className:"text-muted-foreground mt-2 text-sm sm:text-base",children:"Svar på 5 korte spørgsmål, så kan jeg give dig et mere præcist tilbud på renovering med tagmembran."})]}),r==="loading"&&e.jsxs("div",{className:"flex items-center gap-2 justify-center text-muted-foreground py-12",children:[e.jsx(y,{className:"h-4 w-4 animate-spin"})," Indlæser…"]}),r==="error"&&e.jsx("div",{className:"rounded-lg border bg-card p-6 text-center text-sm text-muted-foreground",children:s??"Noget gik galt."}),(r==="already"||r==="done")&&e.jsxs("div",{className:"rounded-lg border bg-card p-8 text-center space-y-3",children:[e.jsx(P,{className:"h-10 w-10 text-primary mx-auto"}),e.jsxs("p",{className:"text-base",children:["Tak",f?`, ${f}`:"",". Vi har modtaget dine svar."]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"William gennemgår nu oplysningerne og sørger for, at du modtager et fast tilbud hurtigst muligt."})]}),(r==="ready"||r==="submitting")&&e.jsxs("form",{onSubmit:t=>{t.preventDefault(),J()},className:"space-y-6",children:[e.jsxs(m,{title:"Tagets alder",children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-3",children:"Hvor gammelt er taget cirka?"}),e.jsx(u,{name:"age",value:g,onChange:_,options:M})]}),e.jsxs(m,{title:"Stillestående vand",children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-3",children:"Ved du, om der ofte står stillestående vand på taget?"}),e.jsx(u,{name:"water",value:b,onChange:T,options:$})]}),e.jsxs(m,{title:"Utætheder",children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-3",children:"Har der været utætheder inden for de seneste 12 måneder?"}
1),e.jsx(u,{name:"leaks",value:v,onChange:I,options:F})]}),e.jsxs(m,{title:"Tidshorisont",children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-3",children:"Hvornår vil du gerne have en løsning på plads?"}),e.jsx(u,{name:"timeline",value:p,onChange:w,options:G})]}),e.jsxs(m,{title:"Tagets størrelse",children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-3",children:h?`Er det alle ${h} m² du ønsker et tilbud på?`:"Er det hele taget du ønsker et tilbud på?"}),e.jsx(u,{name:"area_confirmed",value:i,onChange:t=>O(t),options:[{value:"ja",label:h?`Ja, hele taget (${h} m²)`:"Ja, hele taget"},{value:"nej",label:"Nej, kun en del af taget"}]}),i==="nej"&&e.jsxs("div",{className:"mt-4 space-y-3",children:[e.jsxs("div",{children:[e.jsx("label",{className:"text-xs text-muted-foreground block mb-1",children:"Hvor mange m² ønsker du tilbud på?"}),e.jsx(S,{type:"number",inputMode:"numeric",min:1,max:1e5,placeholder:"fx 10",value:j,onChange:t=>A(t.target.value)})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-xs text-muted-foreground block mb-1",children:"Kort beskrivelse (valgfrit)"}),e.jsx(S,{type:"text",maxLength:300,placeholder:'fx "Kun garagetaget"',value:k,onChange:t=>L(t.target.value)})]})]})]}),s&&r==="ready"&&e.jsx("div",{className:"text-sm text-destructive text-center",children:s}),e.jsx(K,{type:"submit",size:"lg",className:"w-full",disabled:r==="submitting"||!g||!b||!v||!p||!i||i==="nej"&&!j,children:r==="submitting"?e.jsxs(e.Fragment,{children:[e.jsx(y,{className:"h-4 w-4 mr-2 animate-spin"})," Sender…"]}):"Send oplysninger"})]})]})})}function m({title:c,children:n}){return e.jsxs("section",{className:"rounded-xl border bg-card p-5",children:[e.jsx("h2",{className:"text-base font-semibold mb-1",children:c}),n]})}function u({name:c,value:n,onChange:r,options:l}){return e.jsx("div",{className:"space-y-2",children:l.map(s=>e.jsxs("label",{className:`flex items-center gap-3 px-4 py-3 rounded-lg border cursor-pointer transition-colors ${n===s.value?"border-primary bg-primary/10":"border-border hover:border-primary/50"}`,children:[e.jsx("input",{type:"radio",name:c,value:s.value,checked:n===s.value,onChange:()=>r(s.value),className:"accent-primary"}),e.jsx("span",{className:"text-sm",children:s.label})]},s.value))})}export{R as default};

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.