@baseplate-dev/project-builder-web
Version:
Web interface for constructing project builder JSON
3 lines (2 loc) • 3.04 kB
JavaScript
import{i}from"./_virtual___federation_fn_import-DOo8C-zl.js";import{j as e}from"./jsx-runtime-D_zvdyIk.js";import{c as j,H as p,L as v}from"./index-G5ZRloOW.js";import{l as b,r as g}from"./index-DiAhmW9l.js";import{E as y}from"./enum-info-form-DtiBedQX.js";import{u as E}from"./use-enum-form-b35DnR3I.js";const{Button:f,Dialog:D,DialogClose:C,DialogContent:N,DialogFooter:w,DialogHeader:S,DialogTitle:F,DialogTrigger:I,useControlledState:k}=await i("@baseplate-dev/ui-components");function B({enumKey:s,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:s,onSubmitSuccess(){a(!1)}});return e.jsxs(D,{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(C,{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 i("@baseplate-dev/project-builder-lib"),{useProjectDefinition:T}=await i("@baseplate-dev/project-builder-lib/web"),{Button:H,useConfirmDialog:L}=await i("@baseplate-dev/ui-components"),{useNavigate:z}=await i("@tanstack/react-router");function A({className:s,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:j("flex items-center justify-between",s),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(p,{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 i("@tanstack/react-router");function W(){const{enumDefinition:s}=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:s})}),e.jsx("div",{className:"mb-(--action-bar-height) flex flex-1 overflow-y-auto",children:e.jsx(M,{})})]},s.id)}export{W as component};
//# sourceMappingURL=route-CC1svkk2.js.map