1import{r as l,j as e}from"./react-DJiDbFd1.js";import{b as I,a as P,L as B}from"./router-B1PQ6IJb.js";import{a as y,c as D}from"./AdminLayout-LtSYF8Pv.js";import{i as F,s as u}from"./index-CUcKvafI.js";import{B as w}from"./logo-transparent-CZDvx9Bt.js";import{I as n}from"./input-B_LyOOrv.js";import{L as o}from"./label-BVvAKgpt.js";import{T as $}from"./textarea-BS2U7iWT.js";import{C as z}from"./checkbox-By6rF1hZ.js";import{s as S}from"./slug-C_JSNFGB.js";import{U as H}from"./upload-DLJS9S3m.js";import{S as J}from"./save-l0v-rp5g.js";import"./sparkles-DIJgoCaP.js";import"./query-Df3p_a-z.js";import"./radix-CNUJXOwZ.js";import"./supabase-CfLgG-5A.js";import"./check-BpXzW8Jo.js";const M={name:"",slug:"",bio:"",photo_url:"",instagram:"",twitter:"",linkedin:"",job_title:"",email_contact:"",expertise_hub_slugs:[]},ne=()=>{const{id:m}=I(),c=!m||m==="new",p=P(),{toast:d}=F(),[t,g]=l.useState(M),[x,C]=l.useState([]),[k,E]=l.useState(!c),[j,f]=l.useState(!1),[v,b]=l.useState(!1),[L,_]=l.useState(!1),N=l.useRef(null);l.useEffect(()=>{u.from("editorial_hubs").select("slug, name").eq("is_active",!0).order("sort_order").then(({data:s})=>C(s??[]))},[]),l.useEffect(()=>{c||(async()=>{const{data:s,error:a}=await u.from("authors").select("*").eq("id",m).maybeSingle();if(a||!s){d({title:"Autor não encontrado",variant:"destructive"}),p("/admin/authors");return}g({name:s.name,slug:s.slug,bio:s.bio??"",photo_url:s.photo_url??"",instagram:s.instagram??"",twitter:s.twitter??"",linkedin:s.linkedin??"",job_title:s.job_title??"",email_contact:s.email_contact??"",expertise_hub_slugs:s.expertise_hub_slugs??[]}),_(!0),E(!1)})()},[m,c,p,d]);const r=(s,a)=>g(i=>({...i,[s]:a})),A=s=>{g(a=>{const i=a.expertise_hub_slugs.includes(s);return{...a,expertise_hub_slugs:i?a.expertise_hub_slugs.filter(h=>h!==s):[...a.expertise_hub_slugs,s]}})},U=s=>{r("name",s),L||r("slug",S(s))},R=async s=>{b(!0);const a=s.name.split(".").pop()||"jpg",i=`${Date.now()}-${Math.random().toString(36).slice(2,8)}.${a}`,{error:h}=await u.storage.from("author-photos").upload(i,s,{cacheControl:"3600",upsert:!1,contentType:s.type||"image/jpeg"});if(b(!1),h){d({title:"Erro no upload",description:h.message,variant:"destructive"});return}const{data:q}=u.storage.from("author-photos").getPublicUrl(i);r("photo_url",q.publicUrl)},T=async s=>{if(s.preventDefault(),!t.name.trim()||!t.slug.trim()){d({title:"Nome e slug são obrigatórios",variant:"destructive"});return}f(!0);const a={name:t.name.trim(),slug:t.slug.trim(),bio:t.bio||null,photo_url:t.photo_url||null,instagram:t.instagram||null,twitter:t.twitter||null,linkedin:t.linkedin||null,job_title:t.job_title.trim()||null,email_contact:t.email_contact.trim()||null,expertise_hub_slugs:t.expertise_hub_slugs},i=c?await u.from("authors").insert(a).select("id").maybeSingle():await u.from("authors").update(a).eq("id",m).select("id").maybeSingle();if(f(!1),i.error){d({title:"Erro ao salvar",description:i.error.message,variant:"destructive"});return}d({title:c?"Autor criado":"Autor atualizado"}),p("/admin/authors")};return k?e.jsx(y,{children:e.jsx("div",{className:"text-muted-foreground",children:"Carregandoâ¦"})}):e.jsxs(y,{children:[e.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[e.jsx(B,{to:"/admin/authors",className:"text-muted-foreground hover:text-foreground",children:e.jsx(D,{className:"w-5 h-5"})}),e.jsx("h1",{className:"text-2xl font-bold",children:c?"Novo autor":"Editar autor"})]}),e.jsxs("form",{onSubmit:T,className:"space-y-6 max-w-2xl",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{children:"Foto"}),e.jsxs("div",{className:"flex items-center gap-4",children:[t.photo_url?e.jsx("img",{src:t.photo_url,alt:"",className:"h-16 w-16 rounded-full object-cover"}):e.jsx("div",{className:"h-16 w-16 rounded-full bg-muted"}),e.jsxs(w,{type:"button",variant:"outline",onClick:()=>N.current?.click(),disabled:v,children:[e.jsx(H,{className:"w-4 h-4 mr-2"}),v?"Enviandoâ¦":"Enviar foto"]}),e.jsx("input",{ref:N,type:"file",accept:"image/*",className:"hidden",onChange:s=>{const a=s.target.files?.[0];a&&R(a),s.target.value=""}})]}),e.jsx(n,{value:t.photo_url,onChange:s=>r("photo_url",s.target.value),placeholder:"URL da foto",className:"text-xs"})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{children:"Nome *"}),e.jsx(n,{value:t.name,onChange:s=>U(s.target.value),required:!0})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{children:"Slug *"}),e.jsx(n,{value:t.slug,onChange:s=>{_(!0),r("slug",S(s.target.value))},required:!0})]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{children:"Cargo / função editorial"}),e.jsx(n,{value:t.job_title,onChange:s=>r("job_title",s.target.value),placeholder:"Ex.: Repórter, Editor de Streaming"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{children:"E-mail de contato (opcional)"}),e.jsx(n,{type:"email",value:t.email_contact,onChange:s=>r("email_contact",s.target.value),placeholder:"[email protected]"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{children:"Bio editorial"}),e.jsx($,{value:t.bio,onChange:s=>r("bio",s.target.value),rows:5}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Foque em credenciais, experiência e áreas de expertise â reforça E-E-A-T."})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{children:"Especialidades editoriais (hubs)"}),e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-2 rounded-md border p-3",children:[x.map(s=>{const a=t.expertise_hub_slugs.includes(s.slug);return e.jsxs("label",{className:"flex items-center gap-2 text-sm cursor-pointer",children:[e.jsx(z,{checked:a,onCheckedChange:()=>A(s.slug)}),e.jsx("span",{children:s.name})]},s.slug)}),x.length===0&&e.jsx("p",{className:"text-xs text-muted-foreground col-span-full",children:"Nenhum hub cadastrado."})]}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:["Aparece em ",e.jsx("code",{children:"/autor/:slug"})," como chips e em ",e.jsx("code",{children:"knowsAbout"})," do schema Person."]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{className:"text-sm uppercase tracking-wide text-muted-foreground",children:"Redes sociais (sameAs)"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx(o,{className:"text-xs",children:"Instagram"}),e.jsx(n,{value:t.instagram,onChange:s=>r("instagram",s.target.value),placeholder:"@usuario ou URL"})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx(o,{className:"text-xs",children:"X / Twitter"}),e.jsx(n,{value:t.twitter,onChange:s=>r("twitter",s.target.value),placeholder:"@usuario ou URL"})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx(o,{className:"text-xs",children:"LinkedIn"}),e.jsx(n,{value:t.linkedin,onChange:s=>r("linkedin",s.target.value),placeholder:"handle ou URL completa"})]})]}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:["Pode informar apenas o handle (sem @) ou a URL completa â viram ",e.jsx("code",{children:"sameAs"})," no JSON-LD Person."]})]}),e.jsxs(w,{type:"submit",disabled:j,children:[e.jsx(J,{className:"w-4 h-4 mr-2"}),j?"Salvandoâ¦":"Salvar"]})]})]})};export{ne 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.