1import{ag as V,a7 as P,F as W,ah as $,r as j,j as e,J as H,B as b,k as z,C as p,a as h,b as u,d as g,L as r,I as o,p as E,q as k,t as I,v as T,w as _,a3 as J,s as L,$ as y}from"./index-DaxYHL_c.js";import{T as K}from"./textarea-ClQoQ89_.js";import{S as U}from"./switch-KmY3AqC1.js";import{I as O}from"./ImageUpload-BUkA2O_m.js";import{G as Q}from"./GalleryImageUpload-CXvQWRmz.js";import{o as X,s as n,l as Y,a as Z,e as ee,b as A}from"./types-D0HQDW0D.js";import"./dialog-DeLki9hm.js";import"./index-DH87JRKS.js";import"./rotate-ccw-BhI4WsQ1.js";import"./circle-alert-BSao5Pkh.js";import"./upload-C6fF1fIL.js";import"./image-Dgq5GkHQ.js";import"./badge-BgIO1kHT.js";const se=X({name:n().min(1,"Name is required").max(100),slug:n().min(1,"Slug is required").max(100),category_id:n().optional(),description:n().max(2e3).optional(),short_description:n().max(200).optional(),location:n().max(100).optional(),phone:n().max(20).optional(),email:n().email("Invalid email").optional().or(Y("")),website:n().max(200).optional(),image_url:n().max(500).optional(),gallery_images:Z(n()).optional(),membership_type:ee(["free","standard","elite"]),featured:A(),is_elite_member:A(),social_facebook:n().max(200).optional(),social_instagram:n().max(200).optional(),social_twitter:n().max(200).optional()}),ge=()=>{const{slug:v}=V(),x=P(),c=!!v,{data:f}=W(),{data:l,isLoading:D}=$(v||""),[i,t]=j.useState({name:"",slug:"",category_id:"",description:"",short_description:"",location:"",phone:"",email:"",website:"",image_url:"",gallery_images:[],membership_type:"free",featured:!1,is_elite_member:!1,social_facebook:"",social_instagram:"",social_twitter:""}),[d,N]=j.useState({}),[S,C]=j.useState(!1),B=s=>s!=null&&s.membership_type&&["elite","standard","free"].includes(s.membership_type)?s.membership_type:s!=null&&s.is_elite_member?"elite":"free";j.useEffect(()=>{if(l&&c){const s=l.gallery_images;t({name:l.name||"",slug:l.slug||"",category_id:l.category_id||"",description:l.description||"",short_description:l.short_description||"",location:l.location||"",phone:l.phone||"",email:l.email||"",website:l.website||"",image_url:l.image_url||"",gallery_images:Array.isArray(s)?s.filter(a=>typeof a=="string"&&a.length>0):[],membership_type:B(l),featured:l.featured||!1,is_elite_member:l.is_elite_member||!1,social_facebook:l.social_facebook||"",social_instagram:l.social_instagram||"",social_twitter:l.social_twitter||""})}},[l,c]);const M=s=>s.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/(^-|-$)/g,""),R=s=>{t(a=>({...a,name:s,slug:!c||!a.slug?M(s):a.slug}))},q=async s=>{s.preventDefault(),N({});const a=se.safeParse(i);if(!a.success){const m={};a.error.errors.forEach(F=>{const G=F.path[0];m[G]=F.message}),N(m);return}C(!0);const w={name:i.name,slug:i.slug,category_id:i.category_id||null,description:i.description||null,short_description:i.short_description||null,location:i.location||null,phone:i.phone||null,email:i.email||null,website:i.website||null,image_url:i.image_url||null,gallery_images:i.gallery_images||[],featured:i.featured,is_elite_member:i.membership_type==="elite",membership_type:i.membership_type,social_facebook:i.social_facebook||null,social_instagram:i.social_instagram||null,social_twitter:i.social_twitter||null};if(c&&l){const{error:m}=await L.from("suppliers").update(w).eq("id",l.id);m?y({title:"Error",description:m.message,variant:"destructive"}):(y({title:"Saved",description:"Supplier updated successfully"}),x("/admin/suppliers"))}else{const{error:m}=await L.from("suppliers").insert(w);m?y({title:"Error",description:m.message,variant:"destructive"}):(y({title:"Created",description:"Supplier created successfully"}),x("/admin/suppliers"))}C(!1)};return c&&D?e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsx("p",{className:"text-muted-foreground",children:"Loading..."})}):e.jsxs(e.Fragment,{children:[e.jsx(H,{children:e.jsxs("title",{children:[c?"Edit Supplier":"Add Supplier"," | Elite Weddings & Events"]})}),e.jsxs("div",{className:"space-y-6 max-w-3xl",children:[e.jsxs(b,{variant:"ghost",onClick:()=>x("/admin/suppliers"),className:"gap-2",children:[e.jsx(z,{className:"w-4 h-4"}),"Back to Suppliers"]}),e.jsxs("div",{children:[e.jsx("h1",{className:"font-display text-3xl text-foreground mb-2",children:c?"Edit Supplier":"Add Supplier"}),e.jsx("p",{className:"text-muted-foreground",children:c?"Update supplier information":"Add a new supplier to your directory"})]}),e.jsxs("form",{onSubmit:q,className:"space-y-6",children:[e.jsxs(p,{children:[e.jsx(h,{children:e.jsx(u,{children:"Basic Information"})}),e.jsxs(g,{className:"space-y-4",children:[e.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"name",children:"Name *"}),e.jsx(o,{id:"name",value:i.name,onChange:s=>R(s.target.value),className:d.name?"border-destructive":""}),d.name&&e.jsx("p",{className:"text-sm text-destructive",children:d.name})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"slug",children:"URL Slug *"}),e.jsx(o,{id:"slug",value:i.slug,onChange:s=>t(a=>({...a,slug:s.target.value})),className:d.slug?"border-destructive":""}),d.slug&&e.jsx("p",{className:"text-sm text-destructive",children:d.slug})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"category",children:"Category"}),e.jsxs(E,{value:i.category_id,onValueChange:s=>t(a=>({...a,category_id:s})),children:[e.jsx(k,{children:e.jsx(I,{placeholder:"Select a category"})}),e.jsx(T,{children:f==null?void 0:f.map(s=>e.jsx(_,{value:s.id,children:s.name},s.id))})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"short_description",children:"Short Description"}),e.jsx(o,{id:"short_description",value:i.short_description,onChange:s=>t(a=>({...a,short_description:s.target.value})),placeholder:"Brief description for listings"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"description",children:"Full Description"}),e.jsx(K,{id:"description",value:i.description,onChange:s=>t(a=>({...a,description:s.target.value})),rows:5})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"location",children:"Location"}),e.jsx(o,{id:"location",value:i.location,onChange:s=>t(a=>({...a,location:s.target.value})),placeholder:"e.g. North Wales"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{children:"Main Supplier Image"}),e.jsx(O,{value:i.image_url,onChange:s=>t(a=>({...a,image_url:s}))})]})]})]}),e.jsxs(p,{children:[e.jsxs(h,{children:[e.jsx(u,{children:"Gallery Images"}),e.jsx(J,{children:"Upload gallery images based on membership tier: Free (1 image), Standard (3 images), Elite (unlimited)"})]}),e.jsxs(g,{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{children:"Membership Type"}),e.jsxs(E,{value:i.membership_type,onValueChange:s=>t(a=>({...a,membership_type:s,is_elite_member:s==="elite"})),children:[e.jsx(k,{children:e.jsx(I,{placeholder:"Select membership"})}),e.jsxs(T,{children:[e.jsx(_,{value:"free",children:"Free (1 image max)"}),e.jsx(_,{value:"standard",children:"Standard (3 images max)"}),e.jsx(_,{value:"elite",children:"Elite (unlimited)"})]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{children:"Gallery Images"}),e.jsx(Q,{value:i.gallery_images||[],onChange:s=>t(a=>({...a,gallery_images:s})),membershipType:i.membership_type,folder:`gallery/${i.slug||"new"}`})]})]})]}),e.jsxs(p,{children:[e.jsx(h,{children:e.jsx(u,{children:"Contact Information"})}),e.jsxs(g,{className:"space-y-4",children:[e.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"phone",children:"Phone"}),e.jsx(o,{id:"phone",value:i.phone,onChange:s=>t(a=>({...a,phone:s.target.value}))})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"email",children:"Email"}),e.jsx(o,{id:"email",type:"email",value:i.email,onChange:s=>t(a=>({...a,email:s.target.value})),className:d.email?"border-destructive":""}),d.email&&e.jsx("p",{className:"text-sm text-destructive",children:d.email})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"website",children:"Website"}),e.jsx(o,{id:"website",value:i.website,onChange:s=>t(a=>({...a,website:s.target.value})),placeholder:"https://..."})]})]})]}),e.jsxs(p,{children:[e.jsx(h,{children:e.jsx(u,{children:"Social Media"})}),e.jsxs(g,{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"social_facebook",children:"Facebook URL"}),e.jsx(o,{id:"social_facebook",value:i.social_facebook,onChange:s=>t(a=>({...a,social_facebook:s.target.value}))})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"social_instagram",children:"Instagram URL"}),e.jsx(o,{id:"social_instagram",value:i.social_instagram,onChange:s=>t(a=>({...a,social_instagram:s.target.value}))})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{htmlFor:"social_twitter",children:"Twitter URL"}),e.jsx(o,{id:"social_twitter",value:i.social_twitter,onChange:s=>t(a=>({...a,social_twitter:s.target.value}))})]})]})]}),e.jsxs(p,{children:[e.jsx(h,{children:e.jsx(u,{children:"Status"})}),e.jsxs(g,{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx(r,{children:"Featured Supplier"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Show this supplier prominently on the homepage"})]}),e.jsx(U,{checked:i.featured,onCheckedChange:s=>t(a=>({...a,featured:s}))})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx(r,{children:"Elite Vow Collective Member"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Automatically set when membership is Elite"})]}),e.jsx(U,{checked:i.membership_type==="elite",onCheckedChange:s=>t(a=>({...a,is_elite_member:s,membership_type:s?"elite":a.membership_type==="elite"?"standard":a.membership_type}))})]})]})]}),e.jsxs("div",{className:"flex gap-4",children:[e.jsx(b,{type:"submit",className:"bg-primary text-primary-foreground",disabled:S,children:S?"Saving...":c?"Update Supplier":"Create Supplier"}),e.jsx(b,{type:"button",variant:"outline",onClick:()=>x("/admin/suppliers"),children:"Cancel"})]})]})]})]})};export{ge 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.