2 lines
5.2 KiB
JavaScript
2 lines
5.2 KiB
JavaScript
import{u as _,m as g,r as j,j as e}from"./app-43FwoUKv.js";import{c as f}from"./index-C3aXnQRR.js";import{A as E}from"./ActionMessage-BR0zIw5R.js";import{A as O}from"./Modal-Dl0HSC4q.js";import{C as A}from"./Checkbox-DRbLuUpm.js";import{C as k}from"./ConfirmationModal-A-4mK9mU.js";import{D as L}from"./DangerButton--OsE_WB2.js";import{D as a}from"./DialogModal-CM2pkQ7Q.js";import{F as R}from"./FormSection-fM5DX8Wc.js";import{T as Y,I as q}from"./TextInput-CdoY_jBz.js";import{I as S}from"./InputLabel-Cl3yDvOx.js";import{P as c}from"./PrimaryButton-Gixff4KF.js";import{S as y}from"./SecondaryButton-CKdOzt0Y.js";import{S as z}from"./SectionBorder-DsOSyNBH.js";import{u as G}from"./useTypedPage-_EZ6P4Xz.js";import"./transition-aKza8ZE9.js";import"./SectionTitle-CmR6E75W.js";function oe({tokens:v,availablePermissions:i,defaultPermissions:D}){var T,C,N;const m=_(),t=g({name:"",permissions:D}),r=g({permissions:[]}),d=g({}),[P,u]=j.useState(!1),[p,o]=j.useState(null),[x,l]=j.useState(null),F=G();function I(){t.post(m("api-tokens.store"),{preserveScroll:!0,onSuccess:()=>{u(!0),t.reset()}})}function b(s){r.setData("permissions",s.abilities),o(s)}function w(){p&&r.put(m("api-tokens.update",[p]),{preserveScroll:!0,preserveState:!0,onSuccess:()=>o(null)})}function B(s){l(s)}function M(){x&&d.delete(m("api-tokens.destroy",[x]),{preserveScroll:!0,preserveState:!0,onSuccess:()=>l(null)})}return e.jsxs("div",{children:[e.jsxs(R,{onSubmit:I,title:"Create API Token",description:"API tokens allow third-party services to authenticate with our application on your behalf.",renderActions:()=>e.jsxs(e.Fragment,{children:[e.jsx(E,{on:t.recentlySuccessful,className:"mr-3",children:"Created."}),e.jsx(c,{className:f({"opacity-25":t.processing}),disabled:t.processing,children:"Create"})]}),children:[e.jsxs("div",{className:"col-span-6 sm:col-span-4",children:[e.jsx(S,{htmlFor:"name",children:"Name"}),e.jsx(Y,{id:"name",type:"text",className:"mt-1 block w-full",value:t.data.name,onChange:s=>t.setData("name",s.currentTarget.value),autoFocus:!0}),e.jsx(q,{message:t.errors.name,className:"mt-2"})]}),i.length>0&&e.jsxs("div",{className:"col-span-6",children:[e.jsx(S,{htmlFor:"permissions",children:"Permissions"}),e.jsx("div",{className:"mt-2 grid grid-cols-1 md:grid-cols-2 gap-4",children:i.map(s=>e.jsx("div",{children:e.jsxs("label",{className:"flex items-center",children:[e.jsx(A,{value:s,checked:t.data.permissions.includes(s),onChange:n=>{t.data.permissions.includes(n.currentTarget.value)?t.setData("permissions",t.data.permissions.filter(h=>h!==n.currentTarget.value)):t.setData("permissions",[n.currentTarget.value,...t.data.permissions])}}),e.jsx("span",{className:"ml-2 text-sm text-gray-600 dark:text-gray-400",children:s})]})},s))})]})]}),v.length>0?e.jsxs("div",{children:[e.jsx(z,{}),e.jsx("div",{className:"mt-10 sm:mt-0",children:e.jsx(O,{title:"Manage API Tokens",description:"You may delete any of your existing tokens if they are no longer needed.",children:e.jsx("div",{className:"space-y-6",children:v.map(s=>e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("div",{className:"break-all dark:text-white",children:s.name}),e.jsxs("div",{className:"flex items-center",children:[s.last_used_ago&&e.jsxs("div",{className:"text-sm text-gray-400",children:["Last used ",s.last_used_ago]}),i.length>0?e.jsx(c,{className:"cursor-pointer ml-6 text-sm text-gray-400 underline",onClick:()=>b(s),children:"Permissions"}):null,e.jsx(c,{className:"cursor-pointer ml-6 text-sm text-red-500",onClick:()=>B(s),children:"Delete"})]})]},s.id))})})})]}):null,e.jsxs(a,{isOpen:P,onClose:()=>u(!1),children:[e.jsxs(a.Content,{title:"API Token",children:[e.jsx("div",{children:"Please copy your new API token. For your security, it won't be shown again."}),e.jsx("div",{className:"mt-4 bg-gray-100 dark:bg-gray-900 px-4 py-2 rounded-sm font-mono text-sm text-gray-500",children:(N=(C=(T=F.props)==null?void 0:T.jetstream)==null?void 0:C.flash)==null?void 0:N.token})]}),e.jsx(a.Footer,{children:e.jsx(y,{onClick:()=>u(!1),children:"Close"})})]}),e.jsxs(a,{isOpen:!!p,onClose:()=>o(null),children:[e.jsx(a.Content,{title:"API Token Permissions",children:e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:i.map(s=>e.jsx("div",{children:e.jsxs("label",{className:"flex items-center",children:[e.jsx(A,{value:s,checked:r.data.permissions.includes(s),onChange:n=>{r.data.permissions.includes(n.currentTarget.value)?r.setData("permissions",r.data.permissions.filter(h=>h!==n.currentTarget.value)):r.setData("permissions",[n.currentTarget.value,...r.data.permissions])}}),e.jsx("span",{className:"ml-2 text-sm text-gray-600 dark:text-gray-400",children:s})]})},s))})}),e.jsxs(a.Footer,{children:[e.jsx(y,{onClick:()=>o(null),children:"Cancel"}),e.jsx(c,{onClick:w,className:f("ml-2",{"opacity-25":r.processing}),disabled:r.processing,children:"Save"})]})]}),e.jsxs(k,{isOpen:!!x,onClose:()=>l(null),children:[e.jsx(k.Content,{title:"Delete API Token",children:"Are you sure you would like to delete this API token?"}),e.jsxs(k.Footer,{children:[e.jsx(y,{onClick:()=>l(null),children:"Cancel"}),e.jsx(L,{onClick:M,className:f("ml-2",{"opacity-25":d.processing}),disabled:d.processing,children:"Delete"})]})]})]})}export{oe as default};
|