1import{r as i,j as e,N as Q}from"./react-vendor-Cvme-g6x.js";import{u as se,t as d,y as r,r as c,j as G,v as te,B as m,a8 as oe,aa as re,ah as le,ac as de,ap as ce}from"./index-BJjQW3BE.js";import{C as _,a as H,b as Y,c as $,d as J}from"./card-BBpWVd7p.js";import{C as o}from"./checkbox-DaiRD0wh.js";import{S as K,a as W,b as X,c as Z,d as t}from"./select-BcShq4V1.js";import"./trpc-vendor-CcQiuHv2.js";import"./recharts-vendor-D3gx481F.js";import"./framer-vendor-DWJUEyLp.js";import"./index-DbRBuB-4.js";import"./index-tamfXtyp.js";import"./index-B9YdcIFy.js";import"./index-DkqJRkH0.js";import"./chevron-up-BLERdT_e.js";function me(n){return n===0?"Todos":n===3?"N3":`N${n}+`}const ue={general:"Geral",offer_chat:"Oferta",question:"Dúvida",training:"Treino (equipa)",suggestion:"Ideia / melhoria",converted_link:"Link convertido"};function ee(n){return n==="3"?3:n==="2"?2:n==="1"?1:0}function Ce(){const{user:n,loading:ae,serverUnreachable:ie}=se(),s=d.useUtils(),N=n?.role==="admin"||Number(n?.communityAdminGrant)===1,l=d.communityForum.listThreadsModeration.useQuery({limit:35},{enabled:!!(N&&n),staleTime:3e4}),[x,y]=i.useState(""),[g,P]=i.useState(""),[C,S]=i.useState(""),[V,A]=i.useState(!0),[v,k]=i.useState(!0),[F,L]=i.useState(!0),[b,O]=i.useState(!0),[M,z]=i.useState(0),[ne,u]=i.useState(!1),[p,h]=i.useState(null),[j,E]=i.useState(!1),[I,q]=i.useState(!0),[w,U]=i.useState(!0),[D,B]=i.useState(0),R=d.communityForum.removeThreadModeration.useMutation({onSuccess:async()=>{await l.refetch(),await s.communityForum.listThreads.invalidate(),await s.communityForum.listPublicTrainings.invalidate(),await s.communityForum.getPublicTraining.invalidate(),await s.communityForum.listPublicTrainings.refetch(),r.success("Tópico removido da comunidade.")},onError:a=>r.error(a.message)}),T=d.communityForum.updateTrainingAudience.useMutation({onSuccess:async()=>{r.success("Audiência do treino atualizada."),u(!1),h(null),await l.refetch(),await s.communityForum.listThreads.invalidate(),await s.communityForum.listPublicTrainings.invalidate(),await s.communityForum.getPublicTraining.invalidate(),await s.communityForum.listPublicTrainings.refetch()},onError:a=>r.error(a.message)}),f=d.communityForum.createTrainingPost.useMutation({onSuccess:async()=>{y(""),P(""),S(""),A(!0),k(!0),L(!0),O(!0),z(0),await l.refetch(),await s.communityForum.listThreads.invalidate(),await s.communityForum.listPublicTrainings.invalidate(),await s.communityForum.getPublicTraining.invalidate(),await s.communityForum.listPublicTrainings.refetch(),r.success("Publicado na comunidade. Os afiliados já podem ver e comentar.")},onError:a=>r.error(a.message)});return ae?e.jsx("div",{className:"flex min-h-[40vh] items-center justify-center text-sm text-slate-500",children:"Carregandoâ¦"}):n?N?e.jsxs("div",{className:"min-w-0 w-full space-y-5 pb-28 md:pb-16 pt-2",children:[e.jsxs("header",{className:"rounded-2xl border border-violet-100 bg-gradient-to-br from-violet-50 to-white p-4 shadow-sm md:p-6",children:[e.jsx("h1",{className:"text-xl font-black tracking-tight text-slate-900 md:text-2xl",children:"Administração da comunidade"}),e.jsx("p",{className:"mt-2 max-w-3xl text-sm leading-relaxed text-slate-600",children:"Gerencie os conteúdos do Espaço Afiliados de forma simples e organizada. Publique treinamentos e comunicados, defina quem poderá visualizar cada conteúdo e escolha se o vÃdeo será exibido na landing page ou apenas dentro do painel. Use a lista abaixo para acompanhar os tópicos publicados e remover conteúdos inadequados quando necessário."})]}),e.jsxs(_,{className:"border-violet-100 shadow-sm",children:[e.jsxs(H,{
1className:"pb-2",children:[e.jsx(Y,{className:"text-lg text-slate-900",children:"Publicar treino ou comunicado"}),e.jsx($,{children:"Aparece na Comunidade com destaque. Os utilizadores comentam em baixo como num fórum."})]}),e.jsx(J,{className:"space-y-3 pt-0",children:e.jsx("div",{className:"rounded-2xl border border-violet-100 bg-gradient-to-br from-violet-50/80 to-white p-4 shadow-sm",children:e.jsxs("div",{className:"grid gap-3",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(c,{htmlFor:"comm-admin-training-title",children:"TÃtulo"}),e.jsx(G,{id:"comm-admin-training-title",value:x,onChange:a=>y(a.target.value),placeholder:"Ex.: Como ler o relatório de conversões",className:"min-h-[44px] touch-manipulation"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(c,{htmlFor:"comm-admin-training-video",children:"Link do vÃdeo (opcional)"}),e.jsx(G,{id:"comm-admin-training-video",type:"url",inputMode:"url",value:C,onChange:a=>S(a.target.value),placeholder:"https://www.youtube.com/watch?v=â¦",className:"min-h-[44px] touch-manipulation"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(c,{htmlFor:"comm-admin-training-body",children:"Texto (dicas, passos, links úteis)"}),e.jsx(te,{id:"comm-admin-training-body",value:g,onChange:a=>P(a.target.value),placeholder:"Escreva o conteúdo que acompanha o vÃdeo â ou só texto, se não houver vÃdeo.",className:"min-h-[120px] touch-manipulation rounded-xl"})]}),e.jsxs("label",{className:"flex cursor-pointer items-center gap-3 rounded-xl border border-slate-100 bg-white/80 px-3 py-2 touch-manipulation",children:[e.jsx(o,{checked:V,onCheckedChange:a=>A(a===!0),id:"comm-admin-training-pin"}),e.jsx("span",{className:"text-sm text-slate-700",children:"Manter no topo da lista (recomendado para treinos novos)"})]}),e.jsxs("label",{className:"flex cursor-pointer items-center gap-3 rounded-xl border border-slate-100 bg-white/80 px-3 py-2 touch-manipulation",children:[e.jsx(o,{checked:v,onCheckedChange:a=>k(a===!0),id:"comm-admin-training-landing"}),e.jsx("span",{className:"text-sm text-slate-700",children:"Mostrar na página inicial (landing) para visitantes sem conta"})]}),e.jsxs("label",{className:"flex cursor-pointer items-center gap-3 rounded-xl border border-slate-100 bg-white/80 px-3 py-2 touch-manipulation",children:[e.jsx(o,{checked:F,onCheckedChange:a=>L(a===!0),disabled:!v,id:"comm-admin-training-vid-landing"}),e.jsx("span",{className:"text-sm text-slate-700",children:"Pré-visualização do vÃdeo na landing (só se estiver na landing e houver link de vÃdeo)"})]}),e.jsxs("label",{className:"flex cursor-pointer items-center gap-3 rounded-xl border border-slate-100 bg-white/80 px-3 py-2 touch-manipulation",children:[e.jsx(o,{checked:b,onCheckedChange:a=>O(a===!0),id:"comm-admin-training-vid-app"}),e.jsx("span",{className:"text-sm text-slate-700",children:"Pré-visualização do vÃdeo na Comunidade do painel"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(c,{htmlFor:"comm-admin-training-tier",children:"Quem vê o vÃdeo na comunidade"}),e.jsxs(K,{value:String(M),onValueChange:a=>z(ee(a)),disabled:!b,children:[e.jsx(W,{id:"comm-admin-training-tier",className:"min-h-[44px] touch-manipulation",children:e.jsx(X,{})}),e.jsxs(Z,{children:[e.jsx(t,{value:"0",children:"Todos os utilizadores da comunidade"}),e.jsx(t,{value:"1",children:"Trial ou superior"}),e.jsx(t,{value:"2",children:"Pro ou superior"}),e.jsx(t,{value:"3",children:"Apenas Elite"})]})]}),e.jsx("p",{className:"text-xs text-slate-500",children:"O texto do treino fica visÃvel para todos na comunidade. Só o embed do vÃdeo obedece a este plano. Administradores veem sempre o vÃdeo (pré-visualização)."})]}),e.jsx(m,{type:"button",className:"min-h-[48px] w-full touch-manipulation sm:w-auto",disabled:f.isPending||x.trim().length<4||g.trim().length<10,onClick:()=>f.mutate({title:x.trim(),body:g.trim(),videoUrl:C.trim()||void 0,pinToTop:V,publicOnLanding:v,showVideoOnLanding:F,showVideoInApp:b,minPlanTierToView:M}),children:f.isPending?"A publicarâ¦":"Publicar na comunidade"})]})})})]}),e.jsxs(_,{className:"border-slate-200 shadow-sm",children:[e.jsxs(H,{
1className:"pb-2",children:[e.jsx(Y,{className:"text-lg text-slate-900",children:"Tópicos ativos (moderação)"}),e.jsx($,{children:"Remova conteúdo inadequado ou ajuste audiência e vÃdeo nos treinos."})]}),e.jsx(J,{className:"pt-0",children:e.jsx("div",{className:"max-h-[min(50vh,28rem)] space-y-2 overflow-y-auto [-webkit-overflow-scrolling:touch]",children:(l.data??[]).length===0?e.jsx("p",{className:"text-sm text-slate-500",children:"Sem tópicos para mostrar."}):(l.data??[]).map(a=>e.jsxs("div",{className:"flex flex-col gap-2 rounded-xl border border-slate-100 bg-slate-50/50 p-3 sm:flex-row sm:items-start sm:justify-between",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("p",{className:"truncate font-medium text-slate-900",children:a.title}),e.jsxs("p",{className:"text-xs text-slate-500",children:[a.authorName??"?"," · ",a.authorEmail," ·"," ",ue[a.threadType]??a.threadType]}),a.threadType==="training"?e.jsxs("p",{className:"mt-1 flex flex-wrap gap-1 text-[10px] font-semibold text-violet-700",children:[a.publicOnLanding?e.jsx("span",{className:"rounded bg-violet-100 px-1.5 py-0.5",children:"Landing"}):null,a.showVideoOnLanding?e.jsx("span",{className:"rounded bg-emerald-100 px-1.5 py-0.5 text-emerald-900",children:"VÃdeo landing"}):null,a.showVideoInApp?e.jsx("span",{className:"rounded bg-cyan-100 px-1.5 py-0.5 text-cyan-900",children:"VÃdeo app"}):e.jsx("span",{className:"rounded bg-slate-200 px-1.5 py-0.5 text-slate-700",children:"Sem vÃdeo app"}),e.jsxs("span",{className:"rounded bg-amber-100 px-1.5 py-0.5 text-amber-900",children:["VÃdeo:"," ",a.showVideoInApp?me(a.minPlanTierToView===1||a.minPlanTierToView===2||a.minPlanTierToView===3?a.minPlanTierToView:0):"Oculto"]})]}):null,e.jsx("p",{className:"mt-1 line-clamp-2 text-xs text-slate-600",children:a.bodyPreview})]}),e.jsxs("div",{className:"flex shrink-0 flex-col gap-2 sm:w-44",children:[a.threadType==="training"?e.jsx(m,{type:"button",size:"sm",variant:"outline",className:"min-h-[44px] w-full touch-manipulation",onClick:()=>{h(a),E(a.publicOnLanding),q(a.showVideoOnLanding),U(a.showVideoInApp),B(a.minPlanTierToView===1||a.minPlanTierToView===2||a.minPlanTierToView===3?a.minPlanTierToView:0),u(!0)},children:"Quem vê / vÃdeo"}):null,e.jsx(m,{size:"sm",variant:"destructive",className:"min-h-[44px] w-full shrink-0 touch-manipulation rounded-lg",disabled:R.isPending,onClick:()=>R.mutate({threadId:a.id}),children:"Remover tópico"})]})]},a.id))})})]}),e.jsx(oe,{open:ne,onOpenChange:a=>{u(a),a||h(null)},children:e.jsxs(re,{className:"max-h-[min(90vh,40rem)] overflow-y-auto sm:max-w-md",children:[e.jsxs(le,{children:[e.jsx(de,{children:"Audiência e vÃdeo do treino"}),e.jsx("p",{className:"text-sm font-normal text-slate-600",children:p?.title??"â"})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("label",{className:"flex cursor-pointer items-center gap-3 rounded-xl border border-slate-100 bg-slate-50/80 px-3 py-2 touch-manipulation",children:[e.jsx(o,{checked:j,onCheckedChange:a=>E(a===!0),id:"aud-landing"}),e.jsx("span",{className:"text-sm text-slate-700",children:"Mostrar na página inicial (landing) para visitantes sem conta"})]}),e.jsxs("label",{className:"flex cursor-pointer items-center gap-3 rounded-xl border border-slate-100 bg-slate-50/80 px-3 py-2 touch-manipulation",children:[e.jsx(o,{checked:I,onCheckedChange:a=>q(a===!0),disabled:!j,id:"aud-vid-landing"}),e.jsx("span",{className:"text-sm text-slate-700",children:"Pré-visualização do vÃdeo na landing"})]}),e.jsxs("label",{className:"flex cursor-pointer items-center gap-3 rounded-xl border border-slate-100 bg-slate-50/80 px-3 py-2 touch-manipulation",children:[e.jsx(o,{checked:w,onCheckedChange:a=>U(a===!0),id:"aud-vid-app"}),e.jsx("span",{className:"text-sm text-slate-700",children:"Pré-visualização do vÃdeo na Comunidade do painel"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(c,{htmlFor:"aud-min-tier",children:"Quem vê o vÃdeo na comunidade"}),e.jsxs(K,{value:String(D),onValueChange:a=>B(ee(a)),disabled:!w,children:[e.jsx(W,{id:"aud-min-tier",className:"min-h-[44px] touch-manipulation",children:e.jsx(X,{})}),e.jsxs(Z,{children:[e.jsx(t,{value:"0",children:"Todos os utilizadores da comunidade"}),e.jsx(t,{value:"1",children:"Trial ou superior"}),e.jsx(t,{value:"2",children:"Pro ou superior"}),e.jsx(t,{value:"3",children:"Apenas Elite"})]})]}),e.jsx("p",{className:"text-xs text-slate-500",children:"O treino (texto) permanece na lista para todos. Só o embed do vÃdeo respeita este plano. Desligue a pré-visualização acima para ocultar o vÃdeo a todos."})]})]}),e.jsxs(ce,{className:"flex-col gap-2 sm:flex-row sm:justify-end",children:[e.jsx(m,{type:"button",variant:"outline",className:"min-h-[44px] w-full touch-manipulation sm:w-auto",onClick:()=>{u(!1),h(null)},children:"Cancelar"}),e.jsx(m,{type:"button",className:"min-h-[44px] w-full touch-manipulation sm:w-auto",disabled:!p||T.isPending,onClick:()=>{p&&T.mutate({threadId:p.id,publicOnLanding:j,showVideoOnLanding:I,showVideoInApp:w,minPlanTierToView:D})},children:T.isPending?"A guardarâ¦":"Guardar"})]})]})})]}):e.jsx(Q,{to:"/dashboard",replace:!0}):ie?null:e.jsx(Q,{to:"/login",replace:!0})}export{Ce 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.