UNPKG

klioso

Version:

Multi-Service Provider Management System for WordPress and Web Development with Enhanced Scanner

2 lines (1 loc) 5.76 kB
import{a as t,j as e,d as j}from"./app-DZ07njAd.js";import{B as i}from"./Button-D6Jcp-tA.js";import{F as y}from"./Form-DWGkysrX.js";function H({website:a,allPlugins:N=[],websitePlugins:w=[]}){const[v,d]=t.useState(!1),[g,A]=t.useState(""),[C,S]=t.useState(""),[k,P]=t.useState(!0),[z,p]=t.useState(!1),[W,o]=t.useState(!1),[$,c]=t.useState(!1),[l,m]=t.useState(null),[u,r]=t.useState(""),[R,x]=t.useState(null);if(!a||!a.id)return e.jsx("div",{className:"text-red-500",children:"Error: Website data is missing"});const I=Array.isArray(N)?N:[],f=Array.isArray(w)?w:[],b=I.filter(s=>!f.some(n=>n.id===s.id)),D=s=>{s.preventDefault(),g&&(p(!0),j.post(`/websites/${a.id}/plugins`,{plugin_id:g,version:C,is_active:k},{onSuccess:()=>{d(!1),A(""),S(""),P(!0),p(!1)},onError:()=>{p(!1)}}))},V=(s,n,h)=>{j.put(`/websites/${a.id}/plugins/${s}`,{version:n,is_active:h})},M=s=>{x(s),c(!0)},T=()=>{R&&(j.delete(`/websites/${a.id}/plugins/${R}`),c(!1),x(null))},B=s=>{var n;m(s),r(((n=s.pivot)==null?void 0:n.version)||""),o(!0)},K=()=>{var s;l&&u.trim()&&(V(l.id,u.trim(),(s=l.pivot)==null?void 0:s.is_active),o(!1),m(null),r(""))};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("h3",{className:"text-lg font-semibold",children:"Website Plugins"}),b.length>0&&e.jsx(i,{onClick:()=>d(!v),size:"sm",children:v?"Cancel":"Add Plugin"})]}),v&&e.jsxs("div",{className:"bg-gray-50 p-4 rounded-lg border",children:[e.jsx("h4",{className:"font-medium mb-3",children:"Add Plugin to Website"}),e.jsxs("form",{onSubmit:D,className:"space-y-3",children:[e.jsxs(y.Select,{label:"Plugin",value:g,onChange:s=>A(s.target.value),required:!0,children:[e.jsx("option",{value:"",children:"Select a plugin"}),b.map(s=>e.jsx("option",{value:s.id,children:s.name},s.id))]}),e.jsx(y.Input,{label:"Version",value:C,onChange:s=>S(s.target.value),placeholder:"1.0.0"}),e.jsx(y.Checkbox,{label:"Active",checked:k,onChange:s=>P(s.target.checked)}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(i,{type:"submit",disabled:z,size:"sm",children:z?"Adding...":"Add Plugin"}),e.jsx(i,{type:"button",variant:"outline",size:"sm",onClick:()=>d(!1),children:"Cancel"})]})]})]}),f.length>0?e.jsx("div",{className:"space-y-3",children:f.map(s=>{var n,h,E,_;return e.jsx("div",{className:"bg-white border rounded-lg p-4",children:e.jsxs("div",{className:"flex justify-between items-start",children:[e.jsxs("div",{className:"flex-1",children:[e.jsx("h4",{className:"font-medium",children:s.name}),e.jsx("p",{className:"text-sm text-gray-600 mt-1",children:s.description}),e.jsxs("div",{className:"flex gap-4 mt-2 text-sm",children:[e.jsxs("span",{children:[e.jsx("strong",{children:"Version:"})," ",((n=s.pivot)==null?void 0:n.version)||"Not specified"]}),e.jsx("span",{className:`px-2 py-1 rounded text-xs ${(h=s.pivot)!=null&&h.is_active?"bg-green-100 text-green-800":"bg-red-100 text-red-800"}`,children:(E=s.pivot)!=null&&E.is_active?"Active":"Inactive"})]})]}),e.jsxs("div",{className:"flex gap-2 ml-4",children:[e.jsx(i,{onClick:()=>B(s),size:"sm",variant:"outline",children:"Update"}),e.jsx(i,{onClick:()=>{var F,U;return V(s.id,(F=s.pivot)==null?void 0:F.version,!((U=s.pivot)!=null&&U.is_active))},size:"sm",variant:"outline",children:(_=s.pivot)!=null&&_.is_active?"Deactivate":"Activate"}),e.jsx(i,{onClick:()=>M(s.id),size:"sm",className:"text-red-600 border-red-300 hover:bg-red-50",children:"Remove"})]})]})},s.id)})}):e.jsxs("div",{className:"text-center py-8 text-gray-500",children:[e.jsx("p",{children:"No plugins assigned to this website yet."}),b.length>0&&e.jsx(i,{onClick:()=>d(!0),variant:"outline",size:"sm",className:"mt-2",children:"Add First Plugin"})]}),W&&e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50",role:"dialog","aria-labelledby":"update-plugin-title","aria-describedby":"update-plugin-description",onKeyDown:s=>{s.key==="Escape"&&(o(!1),m(null),r(""))},children:e.jsxs("div",{className:"bg-white rounded-lg p-6 max-w-md w-full mx-4",tabIndex:"-1",ref:s=>s&&s.focus(),children:[e.jsx("h3",{id:"update-plugin-title",className:"text-lg font-semibold mb-4",children:"Update Plugin Version"}),e.jsxs("p",{id:"update-plugin-description",className:"text-gray-600 mb-4",children:["Updating version for: ",e.jsx("strong",{children:l==null?void 0:l.name})]}),e.jsx("input",{type:"text",value:u,onChange:s=>r(s.target.value),placeholder:"Enter new version",className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 mb-4",autoFocus:!0}),e.jsxs("div",{className:"flex gap-2 justify-end",children:[e.jsx(i,{onClick:()=>{o(!1),m(null),r("")},variant:"outline",size:"sm",children:"Cancel"}),e.jsx(i,{onClick:K,size:"sm",disabled:!u.trim(),children:"Update"})]})]})}),$&&e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50",role:"dialog","aria-labelledby":"remove-plugin-title","aria-describedby":"remove-plugin-description",onKeyDown:s=>{s.key==="Escape"&&(c(!1),x(null))},children:e.jsxs("div",{className:"bg-white rounded-lg p-6 max-w-md w-full mx-4",tabIndex:"-1",ref:s=>s&&s.focus(),children:[e.jsx("h3",{id:"remove-plugin-title",className:"text-lg font-semibold mb-4",children:"Remove Plugin"}),e.jsx("p",{id:"remove-plugin-description",className:"text-gray-600 mb-6",children:"Are you sure you want to remove this plugin from the website? This action cannot be undone."}),e.jsxs("div",{className:"flex gap-2 justify-end",children:[e.jsx(i,{onClick:()=>{c(!1),x(null)},variant:"outline",size:"sm",children:"Cancel"}),e.jsx(i,{onClick:T,size:"sm",className:"bg-red-600 hover:bg-red-700 text-white",children:"Remove"})]})]})})]})}export{H as W};