1import{j as o,r as c,d as V,e as $}from"./react-daO8XSXc.js";import G from"./NaoEncontradoNoPainel-0P0zkloe.js";import{u as Q}from"./Avisos-DoJY8zcA.js";import{B as b,S as Z}from"./Button-8-UveMcL.js";import{C as K}from"./CabecalhoPagina-a9wl2lov.js";import{E as W}from"./ErrorState-Tx5UOScO.js";import{B as X}from"./Exibicao-BET41dMP.js";import{c as Y}from"./basicos-CJBwiWJx.js";import{u as ee,T as M,N as q,R as oe,n as y,s as R,J as se}from"./pecas-C_W9hxxO.js";import{D as te,a as ae,b as ie,c as re,e as ne}from"./Dialog-pcGZL7JV.js";import{F as ce}from"./Field-3GimFoRS.js";import{T as le}from"./Input-BWXNKslz.js";import{L as me,c as de,d as ue,a as S,D as pe,b as O,s as xe,m as A,e as fe,f as he,u as ve,r as je,t as ge}from"./usePerfisPublicos-BWerY4kR.js";import{m as De}from"./motivos-CHg8NJFD.js";import{s as _}from"./index-B58ZFblL.js";import{l as Ne}from"./transmissaoService-YeaIjaGR.js";import{a as we}from"./navegacao-DFrwD6lH.js";import"./EmptyState-DyDBtv_o.js";import"./plataforma.pt-C_E8zSO7.js";import"./inscricao-gdpE1a3T.js";import"./MagnifyingGlassIcon-DG_h4ytF.js";import"./XMarkIcon-BbNpXEGa.js";import"./index-Bx8Owg57.js";import"./supabase-CWGMQrOR.js";import"./InformationCircleIcon-BuxHKy4m.js";import"./ExclamationTriangleIcon-CYNpIWW5.js";import"./Escolhas-BH21sbXZ.js";import"./index-BSdpKbQ6.js";import"./index-Be0SzB96.js";import"./Avatar-MiXW_CSz.js";import"./iniciais-brqoj07o.js";import"./index-BkA-a7YQ.js";import"./ChevronDownIcon-C1xiHESR.js";import"./framer-CJI0BPWU.js";import"./lucide-DgiROqw5.js";import"./modalidades-CUNE9lCl.js";import"./papeisNoConteudo-C8FPDFed.js";import"./transmissao-Cz_vPWSq.js";import"./Squares2X2Icon-DUmUFbRM.js";import"./UsersIcon-C5ZFUL-4.js";import"./ArchiveBoxIcon-C42SlQ0A.js";import"./BriefcaseIcon-BgLCRg6D.js";import"./MegaphoneIcon-DC3zhdQF.js";import"./InboxIcon-ovleWxyF.js";import"./UserCircleIcon-D22glH3K.js";import"./PlayCircleIcon-f-RZr5YV.js";import"./ChatBubbleLeftRightIcon-W2H3XKuL.js";import"./MicrophoneIcon-C3VZphBZ.js";import"./ChartBarIcon-BRnXC7cP.js";import"./PhotoIcon-DseYEjsp.js";import"./SignalIcon-BqvGOuE3.js";import"./RectangleStackIcon-CSrpqd1v.js";import"./TagIcon-DHnosFdM.js";function be({alvo:e,aoRemover:t,aoFechar:s,aoFecharFoco:i}){return o.jsx(te,{open:e!==null,onOpenChange:r=>!r&&s(),children:o.jsx(ae,{onCloseAutoFocus:i,children:e&&o.jsx(ye,{alvo:e,aoRemover:t,aoFechar:s})})})}function ye({alvo:e,aoRemover:t,aoFechar:s}){const[i,r]=c.useState(""),[n,h]=c.useState(!1),p=async d=>{d.preventDefault(),h(!0);const u=await t(i);h(!1),u&&s()};return o.jsxs("form",{onSubmit:p,children:[o.jsx(ie,{children:e.tipo==="comentario"?"Remover o comentário":"Remover a mensagem"}),o.jsx(re,{className:"line-clamp-4 whitespace-pre-line break-words",children:e.texto}),o.jsx("div",{className:"mt-5",children:o.jsx(ce,{rotulo:"Motivo",ajuda:"Só a moderação vê.",children:d=>o.jsx(le,{...d,rows:2,maxLength:me,value:i,onChange:u=>r(u.target.value)})})}),o.jsxs(ne,{children:[o.jsx(b,{type:"button",variant:"secondary",onClick:s,children:"Cancelar"}),o.jsx(b,{type:"submit",variant:"destructive",loading:n,children:"Remover"})]})]})}const Se=new Intl.DateTimeFormat("pt-BR",{timeZone:"America/Sao_Paulo",day:"2-digit",month:"2-digit",hour:"2-digit",minute:"2-digit",hourCycle:"h23"}),k=e=>{const t=new Date(e);if(Number.isNaN(t.getTime()))return"";const s=Object.fromEntries(Se.formatToParts(t).map(i=>[i.type,i.value]));return`${s.day}/${s.month} ${s.hour}:${s.minute}`},z=e=>e===null?"sem prazo":`até ${k(e)}`,T=e=>{const t=new Date(e).getTime();return Number.isNaN(t)?0:t},L=(e,t)=>{if(!e)return"";const s=e.tipo==="comentario"?e.conteudoTitulo:t.get(e.transmissaoId),i=e.tipo==="comentario"?"Comentário":"Chat";return s!=null&&s.trim()?`${i} · ${s.trim()}`:i},_e=(e,t)=>e.filter(s=>s.ate===null||T(s.ate)>t.getTime()),Ie=e=>new Set(e.filter(t=>t.transmissaoId===null).map(t=>t.userId)),B=(e,t)=>{var s;return e.transmissaoId===null?"Em tudo":((s=t.get(e.transmissaoId))==null?void 0:s.trim())||"Transmissão"},Ee=e=>e.tipo==="mensagem"?S("mensagem","removido"):e.removidoPor===e.autorId?"":S("comentario","removido",e.removidoMotivo),Te=(e,t)=>
1{const s=new Map;for(const r of e){const n=r.resolvidaEm??r.criadoEm,p=`${r.alvo?de(r.alvo):`denuncia:${r.id}`}|${T(n)}`,d=s.get(p);if(d){d.denuncias.push(r);continue}s.set(p,{tipo:"denuncia",chave:p,quando:n,alvo:r.alvo,...ue(r.desfecho),denuncias:[r]})}return[...s.values(),...t.map(r=>({tipo:"silencio",chave:`silencio:${r.id}`,quando:r.criadoEm,silencio:r}))].sort((r,n)=>T(n.quando)-T(r.quando))},ke=(e,t)=>{if(!e||!t)return"Denúncia resolvida";const s=pe[e.tipo][t];return s.charAt(0).toUpperCase()+s.slice(1)},Ce=e=>({ok:!0,valor:e}),F=e=>(console.error("A moderação não gravou",(e==null?void 0:e.code)??""),{ok:!1,motivo:De(e)}),H="id, mensagem_id, comentario_id, user_id, motivo, criado_em, resolvida_em, resolvida_por, desfecho, comentarios(id, conteudo_id, user_id, texto, removido_em, removido_por, removido_motivo, conteudos(titulo)), mensagens_do_chat(id, transmissao_id, user_id, texto, removida_em)",Me=e=>e.tipo==="comentario"?{tipo:"comentario",id:e.comentarioId}:{tipo:"mensagem",id:e.mensagemId},Re=async({limite:e=200}={})=>{const{data:t,error:s}=await _.from("denuncias").select(H).is("resolvida_em",null).order("criado_em").limit(e);if(s)throw s;return(t??[]).map(i=>O(i))},Ae=async({limite:e=100}={})=>{const[t,s]=await Promise.all([xe(),_.from("denuncias").select(H).not("resolvida_em","is",null).order("resolvida_em",{ascending:!1}).limit(e)]);if(s.error)throw s.error;return{denuncias:(s.data??[]).map(i=>O(i)),silencios:t}},P=async(e,t)=>{const s=_.from("denuncias").update({resolvida_em:new Date().toISOString(),desfecho:A(t)}),{error:i}=await(e.tipo==="comentario"?s.eq("comentario_id",e.id):s.eq("mensagem_id",e.id)).is("resolvida_em",null);return i?F(i):Ce(null)},Fe=async(e,t)=>{const{data:s,error:i}=await _.from("comentarios").update({removido_em:new Date().toISOString(),removido_motivo:A(t)}).eq("id",e).select("id");return i?F(i):(s??[]).length===0?{ok:!1,motivo:{tipo:"indisponivel"}}:P({tipo:"comentario",id:e},S("comentario","removido",t))},Pe=async(e,t)=>{const{error:s}=await _.from("mensagens_do_chat").update({removida_em:new Date().toISOString()}).eq("id",e);return s?F(s):P({tipo:"mensagem",id:e},S("mensagem","removido",t))},$e=(e,{prazo:t,motivo:s=""},i=new Date)=>fe({userId:e,transmissaoId:null,prazo:t,motivo:A(s)},i),qe=3e4,Oe={abertas:[],resolvidas:[],silencios:[]},ze=async e=>(await Promise.all(e)).find(t=>!t.ok)??{ok:!0,valor:null};function Le(){const[e,t]=c.useState(Oe),[s,i]=c.useState("carregando"),[r,n]=c.useState(new Map),[h,p]=c.useState(0),d=c.useRef(!0);c.useEffect(()=>(d.current=!0,()=>{d.current=!1}),[]);const u=c.useCallback(async()=>{const[a,m]=await Promise.all([Re(),Ae()]);d.current&&t({abertas:a,resolvidas:m.denuncias,silencios:m.silencios})},[]);c.useEffect(()=>{i("carregando"),u().then(()=>d.current&&i("pronta"),a=>{console.error("Falha ao carregar a moderação",a),d.current&&i("erro")})},[u,h]),c.useEffect(()=>{Ne().then(a=>d.current&&n(new Map(a.map(m=>[m.id,m.nome||m.titulo]))),a=>console.error("Falha ao carregar as transmissões",a))},[]),c.useEffect(()=>{if(s!=="pronta")return;const a=window.setInterval(()=>{document.visibilityState==="visible"&&u().catch(m=>console.error("Falha ao reler a moderação",m))},qe);return()=>window.clearInterval(a)},[s,u]);const g=c.useMemo(()=>he(e.abertas),[e.abertas]),v=c.useMemo(()=>_e(e.silencios,new Date),[e.silencios]),D=c.useMemo(()=>Ie(v),[v]),w=c.useMemo(()=>Te(e.resolvidas,e.silencios),[e.resolvidas,e.silencios]),x=c.useMemo(()=>[...[...e.abertas,...e.resolvidas].flatMap(a=>[a.denuncianteId,...a.alvo?[a.alvo.autorId]:[]]),...e.silencios.map(a=>a.userId)],[e]),{perfis:I}=ve(x.filter(Boolean)),E=c.useCallback(a=>I.get(a)??null,[I]),f=c.useCallback(async a=>{const m=await a;return m.ok&&await u().catch(j=>console.error("Falha ao reler",j)),m},[u]),C=c.useCallback((a,m,j="")=>{const{alvo:N}=a;return N?m==="removido"&&N.removidoEm===null?f(N.tipo==="comentario"?Fe(N.comentarioId,j):Pe(N.mensagemId,j)):f(P(Me(N),m==="removido"?Ee(N):S(N.tipo,m,j))):f(ze(a.denuncias.map(U=>je(U.id,j))))},[f]),l=c.useCallback(({userId:a,prazo:m,motivo:j})=>f($e(a,{prazo:m,motivo:j})),[f]);return{situacao:s,recarregar:()=>p(a=>a+1),fila:g,valendo:v,emTudo:D,historico:w,transmissoes:r,autor:E,decidir:C,silenciar:l,tirarSilencio:a=>f(ge(a))}}function Be(){const e=Le();return o.jsxs("div",{className:"space-y-5",children:[o.jsx(K,{icone:we,titulo:"Moderação",subtitulo:"Denúncias de comentários e do chat"}),e.situacao==="carregando"?o.jsx("div",{className:"flex justify-center py-14",children:o.jsx(Z,{className:"size-7 text-painel-texto-3"})}):e.situacao==="erro"?o.jsx(W,{aoTentarDeNovo:e.recarregar}):o.jsx(He,{moderacao:e})]})}function He({moderacao:e}){const{avisar:t}=Q(),{guardar:s,aoFecharFoco:i}=ee(),[r,n]=c.useState(null),[h,p]=c.useState(null),d=c.useId(),u=c.useId(),g=c.useId(),{fila:v,valendo:D,historico:w,autor:x,transmissoes:I}=e,E=()=>
1t("Não conseguimos salvar. Tente de novo.","erro"),f=async(l,a,m="")=>(await e.decidir(l,a,m)).ok?(R(d),!0):(E(),!1),C=async l=>{const a=await e.silenciar(l);return a.ok&&R(u),a};return o.jsxs("div",{className:"space-y-6",children:[o.jsxs("section",{"aria-labelledby":d,children:[o.jsx(M,{id:d,children:"Denúncias"}),v.length===0?o.jsx(q,{children:"Nenhuma denúncia aberta."}):o.jsx("ul",{className:"mt-2 divide-y divide-painel-linha border-y border-painel-linha",children:v.map(l=>o.jsx(Je,{grupo:l,moderacao:e,aoDecidir:a=>void f(l,a),aoRemover:a=>{s(a),n(l)},aoSilenciar:(a,m)=>{s(a),p(m)}},l.chave))})]}),D.length>0&&o.jsxs("section",{"aria-labelledby":u,children:[o.jsx(M,{id:u,children:"Silenciados"}),o.jsx("ul",{className:"mt-2 divide-y divide-painel-linha border-y border-painel-linha",children:D.map(l=>o.jsxs("li",{className:"flex items-center gap-3 px-3.5 py-3",children:[o.jsx(oe,{autor:x(l.userId)}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("p",{className:"truncate text-sm font-medium text-painel-texto",children:y(x(l.userId))}),o.jsxs("p",{className:"truncate text-[13px] text-painel-texto-3",children:[B(l,I)," · ",z(l.ate),l.motivo&&` · ${l.motivo}`]})]}),o.jsx(b,{size:"sm",variant:"secondary",onClick:()=>void e.tirarSilencio(l.id).then(a=>{a.ok||E(),R(D.length>1?u:g)}),children:"Tirar o silêncio"})]},l.id))})]}),o.jsxs("section",{"aria-labelledby":g,children:[o.jsx(M,{id:g,children:"Histórico"}),w.length===0?o.jsx(q,{children:"Nenhuma decisão ainda."}):o.jsx("ul",{className:"mt-2 divide-y divide-painel-linha border-y border-painel-linha",children:w.map(l=>o.jsx(Ue,{linha:l,moderacao:e},l.chave))})]}),o.jsx(be,{alvo:(r==null?void 0:r.alvo)??null,aoRemover:l=>r?f(r,"removido",l):Promise.resolve(!1),aoFechar:()=>n(null),aoFecharFoco:i}),o.jsx(se,{pessoa:h,silenciar:C,soEmTudo:!0,aoFechar:()=>p(null),aoFecharFoco:i})]})}function J({alvo:e}){return o.jsxs("p",{className:Y("mt-0.5 whitespace-pre-line break-words text-sm",e!=null&&e.removidoEm?"text-painel-texto-3 line-through":"text-painel-texto"),children:[(e==null?void 0:e.texto)||"â",(e==null?void 0:e.removidoEm)&&o.jsxs("span",{className:"sr-only",children:[" (",e.tipo==="mensagem"?"removida":"removido",")"]})]})}function Je({grupo:e,moderacao:t,aoDecidir:s,aoRemover:i,aoSilenciar:r}){const{alvo:n,denuncias:h}=e,{autor:p,emTudo:d,transmissoes:u}=t,g=c.useRef(null),v=c.useRef(null),D=n?y(p(n.autorId)):"",w=n!==null&&d.has(n.autorId);return o.jsxs("li",{className:"flex flex-col gap-2 px-3.5 py-3 sm:flex-row sm:items-start sm:justify-between",children:[o.jsxs("div",{className:"min-w-0",children:[o.jsxs("p",{className:"flex flex-wrap items-center gap-x-2 gap-y-1 text-[13px]",children:[n&&o.jsx("span",{className:"font-medium text-painel-texto",children:D}),o.jsx("span",{className:"text-painel-texto-3",children:L(n,u)}),w&&o.jsx(X,{children:"silenciado"})]}),o.jsx(J,{alvo:n}),o.jsx("ul",{className:"mt-1 space-y-0.5 text-[13px] text-painel-texto-3",children:h.map(x=>o.jsxs("li",{className:"break-words",children:["Denúncia de ",y(p(x.denuncianteId)),x.motivo.trim()&&` · ${x.motivo.trim()}`," ·"," ",o.jsx("time",{dateTime:x.criadoEm,children:k(x.criadoEm)})]},x.id))})]}),o.jsxs("div",{className:"flex shrink-0 flex-wrap gap-2",children:[!n||n.removidoEm?o.jsx(b,{size:"sm",variant:"secondary",onClick:()=>s("removido"),children:"Resolver"}):o.jsxs(o.Fragment,{children:[o.jsx(b,{size:"sm",variant:"secondary",onClick:()=>s("mantido"),children:"Manter"}),o.jsx(b,{ref:g,size:"sm",variant:"destructive",onClick:()=>i(g.current),children:"Removerâ¦"})]}),n&&!w&&o.jsx(b,{ref:v,size:"sm",variant:"secondary",onClick:()=>r(v.current,{userId:n.autorId,nome:D}),children:"Silenciarâ¦"})]})]})}function Ue({linha:e,moderacao:t}){const{autor:s,transmissoes:i}=t;if(e.tipo==="silencio"){const{silencio:n}=e;return o.jsxs("li",{className:"px-3.5 py-2.5",children:[o.jsxs("p",{className:"text-[13px]",children:[o.jsx("span",{className:"font-medium text-painel-texto",children:"Silenciado"}),o.jsxs("span",{className:"text-painel-texto-3",children:[" ","· ",B(n,i)," · ",z(n.ate)]})]}),o.jsx("p",{className:"mt-0.5 text-sm text-painel-texto",children:y(s(n.userId))}),o.jsxs("p",{className:"mt-0.5 break-words text-[13px] text-painel-texto-3",children:[n.motivo&&`${n.motivo} · `,o.jsx("time",{dateTime:e.quando,children:k(e.quando)})]})]})}const{alvo:r}=e;return o.jsxs("li",{className:"px-3.5 py-2.5",children:[o.jsxs("p",{className:"break-words text-[13px]",children:[o.jsx("span",{className:"font-medium text-painel-texto",children:ke(r,e.decisao)}),e.motivo&&o.jsxs("span",{className:"text-painel-texto-3",children:[" · ",e.motivo]})]}),o.jsx(J,{alvo:r}),o.jsxs("p",{className:"mt-0.5 break-words text-[13px] text-painel-texto-3",children:[r&&`${y(s(r.autorId))}
1 · ${L(r,i)} · `,o.jsx("time",{dateTime:e.quando,children:k(e.quando)})]})]})}function Vo(){return o.jsxs(V,{children:[o.jsx($,{index:!0,element:o.jsx(Be,{})}),o.jsx($,{path:"*",element:o.jsx(G,{})})]})}export{Vo 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.