@baseplate-dev/project-builder-web
Version:
Web interface for constructing project builder JSON
3 lines (2 loc) • 3.05 kB
JavaScript
import{i as s}from"./_virtual___federation_fn_import-C4el_tlG.js";import{j as e}from"./jsx-runtime-D_zvdyIk.js";import{c as p,H as j,L as v}from"./index--XHV4ygU.js";import{l as b,m as g}from"./index-BsqYBobW.js";import{E as y}from"./enum-info-form-icdWs1EM.js";import{u as E}from"./use-enum-form-TZs3gWw7.js";const{Button:f,Dialog:C,DialogClose:D,DialogContent:N,DialogFooter:w,DialogHeader:S,DialogTitle:F,DialogTrigger:I,useControlledState:k}=await s("@baseplate-dev/ui-components");function B({enumKey:i,open:t,onOpenChange:o,asChild:r,children:l}){const[c,a]=k(t,o,!1),{form:{control:d,reset:u},onSubmit:n,defaultValues:m,isSavingDefinition:h}=E({enumKey:i,onSubmitSuccess(){a(!1)}});return e.jsxs(C,{open:c,onOpenChange:x=>{a(x),x||u(m)},children:[e.jsx(I,{asChild:r,children:l}),e.jsx(N,{"aria-describedby":void 0,children:e.jsxs("form",{onSubmit:n,className:"space-y-4",children:[e.jsx(S,{children:e.jsx(F,{children:"Edit Enum Info"})}),e.jsx(y,{control:d}),e.jsxs(w,{children:[e.jsx(D,{asChild:!0,children:e.jsx(f,{variant:"secondary",children:"Cancel"})}),e.jsx(f,{type:"submit",disabled:h,children:"Save"})]})]})})]})}const{FeatureUtils:O,modelEnumEntityType:R}=await s("@baseplate-dev/project-builder-lib"),{useProjectDefinition:T}=await s("@baseplate-dev/project-builder-lib/web"),{Button:H,useConfirmDialog:L}=await s("@baseplate-dev/ui-components"),{useNavigate:z}=await s("@tanstack/react-router");function A({className:i,enumDefinition:t}){const{definition:o,saveDefinitionWithFeedbackSync:r,isSavingDefinition:l}=T(),c=z(),{requestConfirm:a}=L(),d=u=>{r(n=>{n.enums=n.enums?.filter(m=>m.id!==u)},{onSuccess:()=>{c({to:"/data/enums"}).catch(b)}})};return e.jsxs("div",{className:p("flex items-center justify-between",i),children:[e.jsxs("div",{children:[e.jsx(B,{enumKey:R.keyFromId(t.id),asChild:!0,children:e.jsxs("button",{className:"group flex items-center space-x-2 hover:cursor-pointer",type:"button",title:"Edit Enum Info",children:[e.jsx("h1",{children:t.name}),e.jsx(j,{className:"invisible size-4 group-hover:visible"})]})}),t.featureRef&&e.jsx("div",{className:"text-xs text-muted-foreground",children:O.getFeatureById(o,t.featureRef)?.name})]}),e.jsx("div",{className:"flex gap-8",children:e.jsxs(H,{variant:"outline",size:"icon",onClick:()=>{a({title:"Confirm delete",content:`Are you sure you want to delete ${t.name}?`,buttonConfirmVariant:"destructive",buttonConfirmText:"Delete",onConfirm:()=>{d(t.id)}})},disabled:l,children:[e.jsx(v,{className:"text-destructive"}),e.jsx("div",{className:"sr-only",children:"Delete Enum"})]})})]})}const{Outlet:M}=await s("@tanstack/react-router"),W=function(){const{enumDefinition:t}=g.useLoaderData();return e.jsxs("div",{className:"relative flex h-full flex-1 flex-col overflow-hidden",children:[e.jsx("div",{className:"mx-4 max-w-7xl space-y-4 border-b py-4",children:e.jsx(A,{enumDefinition:t})}),e.jsx("div",{className:"mb-(--action-bar-height) flex flex-1 overflow-y-auto",children:e.jsx(M,{})})]},t.id)};export{W as component};
//# sourceMappingURL=route-DS9DLZDJ.js.map