miniflare
Version:
Fun, full-featured, fully-local simulator for Cloudflare Workers
1 lines • 2.84 kB
JavaScript
import{c as e,n as t,s as n,t as r,z as i}from"./useRouterState-DkU0JPAO.js";import{r as a}from"./button-cdxnqcgzwko8ooha-DW4HgSd6.js";import{a as o,i as s,n as c,r as l,t as u}from"./TableSelect-wq7D5M13.js";import{t as d}from"./Pencil.es-D4Vy81Ny.js";import{n as f}from"./dialog-oqh8l3l3zutpibxx-6QAIfPjB.js";import{t as p}from"./Breadcrumbs-D11-yw8F.js";import{Lt as m,Rt as h,c as g,l as _,lt as v,rt as y}from"./index-CkemaNd1.js";var b=i(n()),x=e(),S=m(`__root__`);function C(){let e=g.useParams(),n=g.useLoaderData(),i=g.useSearch(),m=h(),C=t(),w=S.useLoaderData(),T=r(),E=(0,b.useRef)(i.table),D=(0,b.useRef)(null),[O,k]=(0,b.useState)(i.table),[A,j]=(0,b.useState)(!1),[M,N]=(0,b.useState)(null),P=(0,b.useMemo)(()=>new _(e.databaseId),[e.databaseId]),F=(0,b.useMemo)(()=>y(w.workers,T.location.searchStr)?.bindings?.d1?.find(t=>t.id===e.databaseId)?.bindingName,[w.workers,T.location.searchStr,e.databaseId]),I=(0,b.useMemo)(()=>({databaseId:e.databaseId,type:`d1`}),[e.databaseId]),L=(0,b.useCallback)(e=>{k(e),E.current!==e&&(E.current=e,m({replace:!0,search:t=>({...t,table:e}),to:`.`}))},[m]),R=(0,b.useCallback)(async()=>{j(!0);try{await Promise.all([C.invalidate(),D.current?.refreshSchema(),new Promise(e=>setTimeout(e,250))])}finally{j(!1)}},[C]),z=(0,b.useCallback)(async()=>{await R(),m({replace:!0,search:e=>({...e,table:void 0}),to:`.`})},[R,m]),B=(0,b.useCallback)(()=>{O&&N({schemaName:`main`,tableName:O})},[O]),V=(0,b.useCallback)(()=>{N(null)},[]),H=(0,b.useCallback)(()=>{M&&(D.current?.closeTableTabs(M.schemaName,M.tableName),z())},[M,z]);return(0,x.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,x.jsxs)(p,{icon:v,title:`D1`,items:[(0,x.jsx)(`span`,{className:`flex items-center gap-1.5`,children:F&&F!==e.databaseId?(0,x.jsxs)(x.Fragment,{children:[F,(0,x.jsxs)(`span`,{className:`text-kumo-subtle`,children:[`(`,e.databaseId,`)`]})]}):e.databaseId},`database-id`),(0,x.jsx)(u,{selectedTable:i.table,studioRef:D,tables:n.tables},`table-selector`)],children:[(0,x.jsx)(`div`,{className:`flex-1`}),(0,x.jsx)(a,{"aria-label":`Refresh tables`,className:`disabled:cursor-progress`,disabled:A,onClick:R,shape:`square`,children:(0,x.jsx)(o,{className:A?`animate-spin`:void 0,size:14})}),(0,x.jsx)(c,{currentTable:O,driver:P}),(0,x.jsx)(a,{"aria-label":`Edit table schema`,disabled:!O,icon:d,onClick:()=>{O&&D.current?.openEditTableTab(`main`,O)},children:`Edit Schema`}),(0,x.jsx)(a,{"aria-label":`Delete table`,disabled:!O,icon:f,onClick:B,variant:`secondary-destructive`,children:`Delete Table`})]}),M&&(0,x.jsx)(l,{closeModal:V,driver:P,isOpen:!0,onSuccess:H,schemaName:M.schemaName,tableName:M.tableName}),(0,x.jsx)(`div`,{className:`flex-1 overflow-hidden bg-kumo-elevated`,children:(0,x.jsx)(s,{driver:P,initialTable:i.table,onTableChange:L,ref:D,resource:I},e.databaseId)})]})}export{C as component};