1import{j as e}from"./vendor-query-D4EqUurW.js";import{a as t}from"./vendor-react-C3GqM1gX.js";import{e as ne,f as B,h as le}from"./federationService-DY3PISCX.js";import{t as a,k as de,O as ce,P as ue,l as he,o as xe,ae as U,af as _,ag as I,ah as O,ai as d,aQ as H,Q as je,b1 as me,B as o,$ as ge,aq as pe,aB as q,aC as V,aD as z,aE as J,aF as L,aW as Q,J as n,j as k}from"./index-Cu8EkTtj.js";import{A as $,a as P}from"./alert-BHos6XqV.js";import{T as be,f as ve,a as Me,b as W,c as b,d as fe,e as v}from"./table-DyQlBKwv.js";import{C as ke}from"./circle-alert-BUwte34F.js";import"./vendor-radix-lN3M3gwn.js";function Re(){const[C,G]=t.useState([]),[u,y]=t.useState(!1),[A,i]=t.useState(null),[N,S]=t.useState(null),[l,D]=t.useState(""),[h,T]=t.useState(""),[x,K]=t.useState("blocked"),[X,j]=t.useState(!1),[m,Y]=t.useState(null),[w,R]=t.useState(""),[M,F]=t.useState("blocked"),[Z,g]=t.useState(!1),[p,E]=t.useState(null);t.useEffect(()=>{c()},[]);const c=async()=>{y(!0),i(null);try{const r=await ne(),ie=Array.isArray(r)?r.filter(s=>s&&typeof s=="object"&&"actor_url"in s&&"reason"in s&&"status"in s&&"created_at"in s&&"updated_at"in s).map(s=>({...s,status:s.status})):[];G(ie)}catch(r){i(a("moderation.loadRulesFailed")),console.error(r)}finally{y(!1)}},ee=async()=>{if(i(null),S(null),!l){i(a("moderation.accountUrlRequired"));return}if(!h){i(a("moderation.reasonRequired"));return}try{(await B(l,x,h)).success?(S(a("moderation.statusUpdatedDetails",{target:l,status:f(x)})),D(""),T(""),c(),n(a("moderation.ruleSaved"),{description:a("moderation.statusUpdatedDetails",{target:l,status:f(x)})})):i(a("moderation.saveRuleFailed"))}catch(r){i(a("moderation.saveRuleFailed")),console.error(r)}},ae=async()=>{if(m)try{(await B(m.actor_url,M,w)).success?(j(!1),c(),n(a("ui.actorModeration.aktorUppdaterad"),{description:a("moderation.statusUpdatedDetails",{target:m.actor_url,status:f(M)})})):n.error(a("ui.actorModeration.uppdateringMisslyckades"),{description:a("ui.actorModeration.kundeInteUppdateraAktor")})}catch(r){console.error(r),n.error(a("ui.actorModeration.uppdateringMisslyckades"),{description:a("ui.actorModeration.ettFelIntraffade")})}},re=async()=>{if(p)try{(await le(p)).success?(g(!1),c(),n(a("ui.actorModeration.aktorBorttagen"),{description:a("moderation.entryRemovedDetails",{target:p})})):n.error(a("ui.actorModeration.borttagningMisslyckades"),{description:a("ui.actorModeration.kundeInteTaBort")})}catch(r){console.error(r),n.error(a("ui.actorModeration.borttagningMisslyckades"),{description:a("ui.actorModeration.ettFelIntraffade")})}finally{E(null)}},te=r=>{Y(r),R(r.reason),F(r.status),j(!0)},se=r=>{E(r),g(!0)},f=r=>a(r==="blocked"?"ui.actorModeration.blockerad":r==="probation"?"ui.actorModeration.provotid":"ui.actorModeration.normal"),oe=r=>{switch(r){case"blocked":return e.jsx(k,{variant:"destructive",children:a("ui.actorModeration.blockerad")});case"probation":return e.jsx(k,{variant:"outline",className:"text-amber-500 border-amber-500",children:a("ui.actorModeration.provotid")});default:return e.jsx(k,{variant:"secondary",children:a("ui.actorModeration.normal")})}};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs(de,{children:[e.jsx(ce,{children:e.jsx(ue,{children:a("ui.actorModeration.laggTillAktorblockering")})}),e.jsxs(he,{children:[e.jsxs("div",{className:"grid gap-4",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx("label",{htmlFor:"actor",className:"block text-sm font-medium mb-1",children:a("ui.actorModeration.aktorUrl")}),e.jsx(xe,{id:"actor",placeholder:"https://example.social/users/alice",value:l,onChange:r=>D(r.target.value)})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"status",className:"block text-sm font-medium mb-1",children:a("ui.actorModeration.status")}),e.jsxs(U,{value:x,onValueChange:r=>K(r),children:[e.jsx(_,{children:e.jsx(I,{placeholder:a("ui.actorModeration.valjStatus")})}),e.jsxs(O,{children:[e.jsx(d,{value:"normal",children:a("ui.actorModeration.normal")}),e.jsx(d,{value:"probation",children:a("ui.actorModeration.provotid")}),e.jsx(d,{value:"blocked",children:a("ui.actorModeration.blockerad")})]})]})]})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"reason",className:"block text-sm font-medium mb-1",children:a("ui.actorModeration.anledning")}),e.jsx(H,{id:"reason",placeholder:a("ui.actorModeration.anledning"),value:h,onChange:r=>T(r.target.value),rows:3})]})]}),A&&e.jsxs($,{variant:"destructive",className:"mt-4",children:[e.jsx(ke,{className:"h-4 w-4"}),e.jsx(P,{children:A})]}),N&&e.jsxs($,{className:"mt-4 bg-green-50 text-green-800 border-green-200 dark:bg-green-900/20 dark:text-green-300 dark:border-green-900",children:[e.jsx(je,{className:"h-4 w-4"}),e.jsx(P,{children:N})]})]}),e.jsxs(me,{className:"flex justify-between",children:[e.jsxs(o,{variant:"outline",onClick:c,disabled:u,children:[e.jsx(ge,{className:`mr-2 h-4 w-4 ${u?"animate-spin":""}`}),a("ui.actorModeration.uppdatera")]}),e.jsx(o,{onClick:ee,disabled:u||!l||!h,children:a("ui.actorModeration.laggTillAktor")})]})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-medium mb-4",children:a("ui.actorModeration.blockeradeAktorer")}),u?e.jsxs("div",{className:"animate-pulse space-y-3",children:[e.jsx("div",{className:"h-12 bg-gray-200 dark:bg-gray-700 rounded"}),e.jsx("div",{className:"h-12 bg-gray-200 dark:bg-gray-700 rounded"})]}):C.length>0?e.jsxs(be,{children:[e.jsx(ve,{children:a("ui.actorModeration.listaOverBlockeradeAktorer")}),e.jsx(Me,{children:e.jsxs(W,{children:[e.jsx(b,{children:a("ui.actorModeration.aktor")}),e.jsx(b,{children:a("ui.actorModeration.status")}),e.jsx(b,{children:a("ui.actorModeration.anledning")}),e.jsx(b,{className:"w-[180px]",children:a("ui.actorModeration.atgarder")})]})}),e.jsx(fe,{children:C.map(r=>e.jsxs(W,{children:[e.jsx(v,{className:"font-medium",children:r.actor_url}),e.jsx(v,{children:oe(r.status)}),e.jsx(v,{className:"truncate max-w-xs",children:r.reason}),e.jsx(v,{children:e.jsxs("div",{className:"flex gap-2",children:[e.jsx(o,{variant:"outline",size:"sm",onClick:()=>te(r),children:a("ui.actorModeration.redigera")}),e.jsx(o,{variant:"destructive",size:"sm",onClick:()=>se(r.actor_url),children:e.jsx(pe,{className:"h-4 w-4"})})]})})]},r.actor_url))})]}):e.jsx("div",{className:"text-center p-8 border border-dashed rounded-md",children:e.jsx("p",{className:"text-muted-foreground",children:a("ui.actorModeration.ingaAktorblockeringarHittades")})})]}),e.jsx(q,{open:X,onOpenChange:j,children:e.jsxs(V,{children:[e.jsxs(z,{children:[e.jsx(J,{children:a("ui.actorModeration.redigeraAktorblockering")}),e.jsx(L,{children:a("moderation.editRuleDescription",{target:m?.actor_url})})]}),e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx("label",{htmlFor:"edit-status",children:a("ui.actorModeration.status")}),e.jsxs(U,{value:M,onValueChange:r=>F(r),children:[e.jsx(_,{id:"edit-status",children:e.jsx(I,{placeholder:a("ui.actorModeration.valjStatus")})}),e.jsxs(O,{children:[e.jsx(d,{value:"normal",children:a("ui.actorModeration.normal")}),e.jsx(d,{value:"probation",children:a("ui.actorModeration.provotid")}),e.jsx(d,{value:"blocked",children:a("ui.actorModeration.blockerad")})]})]})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx("label",{htmlFor:"edit-reason",children:a("ui.actorModeration.anledning")}),e.jsx(H,{id:"edit-reason",value:w,onChange:r=>R(r.target.value),rows:3})]})]}),e.jsxs(Q,{children:[e.jsx(o,{variant:"outline",onClick:()=>j(!1),children:a("ui.actorModeration.avbryt")}),e.jsx(o,{onClick:ae,children:a("ui.actorModeration.sparaAndringar")})]})]})}),e.jsx(q,{open:Z,onOpenChange:g,children:e.jsxs(V,{children:[e.jsxs(z,{children:[e.jsx(J,{children:a("ui.actorModeration.bekraftaBorttagning")}),e.jsx(L,{children:a("moderation.removeRuleDescription",{target:p})})]}),e.jsxs(Q,{children:[e.jsx(o,{variant:"outline",onClick:()=>g(!1),children:a("ui.actorModeration.avbryt")}),e.jsx(o,{variant:"destructive",onClick:re,children:a("ui.actorModeration.taBort")})]})]})})]})}export{Re 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.