1import{j as e}from"./vendor-data-BnAsYEPc.js";import{k as Z,e as G,r as a}from"./vendor-react-BNJcskRT.js";import{b as J}from"./useDynamicForm-ClVtEFGu.js";import{Q as K,I as n,a1 as q,B as i,a5 as M,X as W,Y as ee,Z as se,_ as ae,a9 as te,aa as le,ab as ie,ac as re,ad as ne,a0 as de,O as x,f as O}from"./index-P4Jm-5kS.js";import{S as R}from"./switch-CpKdJsIc.js";import{A as oe}from"./arrow-left-CZOZQRvu.js";import{S as ce}from"./save-D4l85caC.js";import{A as me,a as xe}from"./arrow-up-BXYi1eCH.js";import{T as ue}from"./trash-2-DAw2Z6Ro.js";import"./vendor-ui-vXhwLHr8.js";import"./vendor-date-BFEA4iDb.js";const he=[{value:"text",label:"Text"},{value:"email",label:"Email"},{value:"phone",label:"Telefon"},{value:"textarea",label:"Text lung"},{value:"select",label:"Dropdown"},{value:"checkbox",label:"Checkbox"}],ke=()=>{const{id:h}=Z(),j=G(),{form:l,fields:t,isLoading:B,updateForm:p,upsertField:v,deleteField:V}=J(h||""),[Y,u]=a.useState(!1),[d,f]=a.useState(""),[o,g]=a.useState("text"),[b,N]=a.useState(""),[w,C]=a.useState(!1),[S,y]=a.useState(""),[k,_]=a.useState(""),[A,E]=a.useState(""),[T,D]=a.use
1State(""),[F,z]=a.useState(""),[P,I]=a.useState(!0),[$,H]=a.useState(!1);l&&!$&&(_(l.title),E(l.slug),D(l.notification_email||""),z(l.description||""),I(l.is_active),H(!0));const Q=async()=>{try{await p.mutateAsync({title:k,slug:A,notification_email:T,description:F,is_active:P}),x({title:"Salvat"})}catch{x({title:"Eroare",variant:"destructive"})}},U=async()=>{if(d.trim())try{await v.mutateAsync({label:d,field_type:o,placeholder:b||null,is_required:w,order_index:t.length+1,options:o==="select"?S.split(` 2`).filter(Boolean):null}),u(!1),f(""),g("text"),N(""),C(!1),y(""),x({title:"Câmp adÄugat"})}catch{x({title:"Eroare",variant:"destructive"})}},L=async(s,c)=>{const r=t.findIndex(X=>X.id===s);if(r<0)return;const m=c==="up"?r-1:r+1;m<0||m>=t.length||(await O.from("form_fields").update({order_index:t[m].order_index}).eq("id",t[r].id),await O.from("form_fields").update({order_index:t[r].order_index}).eq("id",t[m].id),v.reset(),window.location.reload())};return B||!l?e.jsx("div",{className:"min-h-dvh bg-background flex items-center justify-center",children:e.jsx(K,{className:"w-8 h-8 animate-spin text-primary"})}):e.jsxs("div",{className:"min-h-dvh bg-background p-4 md:p-8 max-w-3xl mx-auto",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[e.jsx("button",{onClick:()=>j("/admin/formulare"),className:"text-muted-foreground hover:text-foreground",children:e.jsx(oe,{className:"w-5 h-5"})}),e.jsx("h1",{className:"text-2xl font-bold text-foreground",children:"EditeazÄ formular"})]}),e.jsxs("div",{className:"space-y-4 mb-8 rounded-xl border border-border bg-card p-5",children:[e.jsxs("div",{children:[e.jsx("label",{className:"text-sm font-medium",children:"Titlu"}),e.jsx(n,{value:k,onChange:s=>_(s.target.value)})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-sm font-medium",children:"Slug"}),e.jsx(n,{value:A,onChange:s=>E(s.target.value)})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-sm font-medium",children:"Email notificare"}),e.jsx(n,{value:T,onChange:s=>D(s.target.value)})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-sm font-medium",children:"Descriere"}),e.jsx(q,{value:F,onChange:s=>z(s.target.value)})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(R,{checked:P,onCheckedChange:I}),e.jsx("span",{className:"text-sm",children:"Activ"})]}),e.jsxs(i,{onClick:Q,disabled:p.isPending,children:[e.jsx(ce,{className:"w-4 h-4 mr-2"})," SalveazÄ"]})]}),e.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[e.jsx("h2",{className:"text-lg font-bold text-foreground",children:"Câmpuri"}),e.jsxs(i,{size:"sm",onClick:()=>u(!0),children:[e.jsx(M,{className:"w-4 h-4 mr-1"})," AdaugÄ câmp"]})]}),e.jsx("div",{className:"space-y-2",children:t.map((s,c)=>e.jsxs("div",{className:"flex items-center gap-3 rounded-xl border border-border bg-card p-3",children:[e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("button",{onClick:()=>L(s.id,"up"),disabled:c===0,className:"text-muted-foreground hover:text-foreground disabled:opacity-30",children:e.jsx(me,{className:"w-4 h-4"})}),e.jsx("button",{onClick:()=>L(s.id,"down"),disabled:c===t.length-1,className:"text-muted-foreground hover:text-foreground disabled:opacity-30",children:e.jsx(xe,{className:"w-4 h-4"})})]}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-medium text-foreground truncate",children:s.label}),e.jsxs("div",{className:"flex gap-2 mt-0.5",children:[e.jsx("span",{className:"text-xs text-muted-foreground bg-muted px-2 py-0.5 rounded",children:s.field_type}),s.is_required&&e.jsx("span",{className:"text-xs text-destructive",children:"obligatoriu"})]})]}),e.jsx(i,{size:"sm",variant:"ghost",onClick:()=>V.mutate(s.id),children:e.jsx(ue,{className:"w-4 h-4 text-destructive"})})]},s.id))}),e.jsxs("div",{className:"mt-6 flex gap-3",children:[e.jsx(i,{variant:"outline",onClick:()=>window.open(`/formular/${l.slug}`,"_blank"),children:"PrevizualizeazÄ"}),e.jsx(i,{variant:"outline",onClick:()=>j(`/admin/formulare/${h}/raspunsuri`),children:"Vezi rÄspunsuri"})]}),e.jsx(W,{open:Y,onOpenChange:u,children:e.jsxs(ee,{children:[e.jsx(se,{children:e.jsx(ae,{children:"Câmp nou"})}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"text-sm font-medium",children:"Label"}),e.jsx(n,{value:d,onChange:s=>
2f(s.target.value)})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-sm font-medium",children:"Tip"}),e.jsxs(te,{value:o,onValueChange:g,children:[e.jsx(le,{children:e.jsx(ie,{})}),e.jsx(re,{children:he.map(s=>e.jsx(ne,{value:s.value,children:s.label},s.value))})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-sm font-medium",children:"Placeholder"}),e.jsx(n,{value:b,onChange:s=>N(s.target.value)})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(R,{checked:w,onCheckedChange:C}),e.jsx("span",{className:"text-sm",children:"Obligatoriu"})]}),o==="select"&&e.jsxs("div",{children:[e.jsx("label",{className:"text-sm font-medium",children:"OpÈiuni (una pe linie)"}),e.jsx(q,{value:S,onChange:s=>y(s.target.value),rows:4})]})]}),e.jsx(de,{children:e.jsx(i,{onClick:U,disabled:!d.trim(),children:"AdaugÄ"})})]})})]})};export{ke 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.