PageSourceSearch

https://cloud.dict8ion.ai/build/assets/APITokenManager.d9468682.js

js dict8ion.ai collected 2026-10-05 14:20:44 UTC 5,038 bytes, 1 lines download raw bytes

1import{u as O,f as k,r as y,b as L,a as t,F as E,j as e}from"./app.c9201d71.js";import{c as v}from"./index.0579b088.js";import{A as R}from"./ActionMessage.0098d194.js";import{A as Y}from"./ActionSection.912aa45f.js";import{C as D}from"./Checkbox.e7c44e05.js";import{C as x}from"./ConfirmationModal.2c9dcdf4.js";import{D as q}from"./DangerButton.eef81744.js";import{D as i}from"./DialogModal.b7f2bb95.js";import{F as z}from"./FormSection.384901a2.js";import{I as G}from"./InputError.3fea637a.js";import{I as F}from"./InputLabel.bfbaa356.js";import{P as m}from"./PrimaryButton.9bbb1135.js";import{T as H}from"./TextInput.fb9ac2fe.js";import{S as T}from"./SecondaryButton.e0dead7a.js";import{S as J}from"./SectionBorder.f82f9198.js";import"./transition.acf5e87a.js";import"./SectionTitle.753247b4.js";import"./Modal.59c9d62c.js";function me({tokens:C,availablePermissions:o,defaultPermissions:P}){var A,N,S;const d=O(),r=k({name:"",permissions:P}),n=k({permissions:[]}),p=k({}),[I,u]=y.exports.useState(!1),[h,l]=y.exports.useState(null),[g,c]=y.exports.useState(null),b=L();function w(){r.post(d("api-tokens.store"),{preserveScroll:!0,onSuccess:()=>{u(!0),r.reset()}})}function B(s){n.setData("permissions",s.abilities),l(s)}function M(){!h||n.put(d("api-tokens.update",[h]),{preserveScroll:!0,preserveState:!0,onSuccess:()=>l(null)})}function j(s){c(s)}function _(){!g||p.delete(d("api-tokens.destroy",[g]),{preserveScroll:!0,preserveState:!0,onSuccess:()=>c(null)})}return t("div",{children:[t(z,{onSubmit:w,title:"Create API Token",description:"API tokens allow third-party services to authenticate with our application on your behalf.",renderActions:()=>t(E,{children:[e(R,{on:r.recentlySuccessful,className:"mr-3",children:"Created."}),e(m,{className:v({"opacity-25":r.processing}),disabled:r.processing,children:"Create"})]}),children:[t("div",{className:"col-span-6 sm:col-span-4",children:[e(F,{htmlFor:"name",children:"Name"}),e(H,{id:"name",type:"text",className:"mt-1 block w-full",value:r.data.name,onChange:s=>r.setData("name",s.currentTarget.value),autoFocus:!0}),e(G,{message:r.errors.name,className:"mt-2"})]}),o.length>0&&t("div",{className:"col-span-6",children:[e(F,{htmlFor:"permissions",children:"Permissions"}),e("div",{className:"mt-2 grid grid-cols-1 md:grid-cols-2 gap-4",children:o.map(s=>e("div",{children:t("label",{className:"flex items-center",children:[e(D,{value:s,checked:r.data.permissions.includes(s),onChange:a=>{r.data.permissions.includes(a.currentTarget.value)?r.setData("permissions",r.data.permissions.filter(f=>f!==a.currentTarget.value)):r.setData("permissions",[a.currentTarget.value,...r.data.permissions])}}),e("span",{className:"ml-2 text-sm text-gray-600",children:s})]})},s))})]})]}),C.length>0?t("div",{children:[e(J,{}),e("div",{className:"mt-10 sm:mt-0",children:e(Y,{title:"Manage API Tokens",description:"You may delete any of your existing tokens if they are no longer needed.",children:e("div",{className:"space-y-6",children:C.map(s=>t("div",{className:"flex items-center justify-between",children:[e("div",{children:s.name}),t("div",{className:"flex items-center",children:[s.last_used_ago&&t("div",{className:"text-sm text-gray-400",children:["Last used ",s.last_used_ago]}),o.length>0?e(m,{className:"cursor-pointer ml-6 text-sm text-gray-400 underline",onClick:()=>B(s),children:"Permissions"}):null,e(m,{className:"cursor-pointer ml-6 text-sm text-red-500",onClick:()=>j(s),children:"Delete"})]})]},s.id))})})})]}):null,t(i,{isOpen:I,onClose:()=>u(!1),children:[t(i.Content,{title:"API Token",children:[e("div",{children:"Please copy your new API token. For your security, it won't be shown again."}),e("div",{className:"mt-4 bg-gray-100 px-4 py-2 rounded font-mono text-sm text-gray-500",children:(S=(N=(A=b.props)==null?void 0:A.jetstream)==null?void 0:N.flash)==null?void 0:S.token})]}),e(i.Footer,{children:e(T,{onClick:()=>u(!1),children:"Close"})})]}),t(i,{isOpen:!!h,onClose:()=>l(null),children:[e(i.Content,{title:"API Token Permissions",children:e("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:o.map(s=>e("div",{children:t("label",{className:"flex items-center",children:[e(D,{value:s,checked:n.data.permissions.includes(s),onChange:a=>{n.data.permissions.includes(a.currentTarget.value)?n.setData("permissions",n.data.permissions.filter(f=>f!==a.currentTarget.value)):n.setData("permissions",[a.currentTarget.value,...n.data.permissions])}}),e("span",{className:"ml-2 text-sm text-gray-600",children:s})]})},s))})}),t(i.Footer,{children:[e(T,{onClick:()=>l(null),children:"Cancel"}),e(m,{onClick:M,className:v("ml-2",{"opacity-25":n.processing}),disabled:n.processing,children:"Save"})]})]}),t(x,{isOpen:!!g,onClose:()=>c(null),children:[e(x.Content,{title:"Delete API Token",children:"Are you sure you would like to delete this API token?"}),t(x.Footer,{children:[e(T,{onClick:()=>c(null),children:"Cancel"}),e(q,{onClick:_,className:v("ml-2",{"opacity-25":p.processing}),disabled:p.processing,children:"Delete"})]})]})]})}export{me 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.