diff --git a/frontend/src/components/resources/build/config.tsx b/frontend/src/components/resources/build/config.tsx index b1b7817e3..d5cc2fc81 100644 --- a/frontend/src/components/resources/build/config.tsx +++ b/frontend/src/components/resources/build/config.tsx @@ -105,6 +105,7 @@ export const BuildConfig = ({ selected={id} onSelect={(builder_id) => set({ builder_id })} disabled={disabled} + align="end" /> ), diff --git a/frontend/src/components/resources/build/index.tsx b/frontend/src/components/resources/build/index.tsx index 3cb3715e1..7cde32495 100644 --- a/frontend/src/components/resources/build/index.tsx +++ b/frontend/src/components/resources/build/index.tsx @@ -17,6 +17,7 @@ import { Card, CardHeader } from "@ui/card"; import { cn } from "@lib/utils"; import { useState } from "react"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@ui/tabs"; +import { ResourceComponents } from ".."; const useBuild = (id?: string) => useRead("ListBuilds", {}).data?.find((d) => d.id === id); @@ -33,6 +34,20 @@ const ConfigOrDeployments = ({ id }: { id: string }) => { (deployment) => deployment.info.build_id === id ); const deploymentsDisabled = (deployments?.length || 0) === 0; + const titleOther = ( + + + Config + + + Deployments + + + ); return ( { className="grid gap-4" > - - - Config - - - Deployments - - - } - /> +
- - Config - - - Deployments - - - } + titleOther={titleOther} + actions={} >
diff --git a/frontend/src/components/resources/common.tsx b/frontend/src/components/resources/common.tsx index 8d42e96e1..54be821db 100644 --- a/frontend/src/components/resources/common.tsx +++ b/frontend/src/components/resources/common.tsx @@ -108,7 +108,7 @@ export const ResourceSelector = ({ {!disabled && } - + { +export const NewResource = ({ + type, + server_id, + build_id, +}: { + type: UsableResource; + server_id?: string; + build_id?: string; +}) => { const nav = useNavigate(); const { mutateAsync } = useWrite(`Create${type}`); const [name, setName] = useState(""); const type_display = type === "ServerTemplate" ? "server-template" : type.toLowerCase(); + const config = + type === "Deployment" + ? { + server_id, + image: build_id ?? { type: "Build", params: { build_id } }, + } + : type === "Repo" + ? { server_id } + : {}; return ( { - const id = (await mutateAsync({ name, config: {} }))._id?.$oid!; + const id = (await mutateAsync({ name, config }))._id?.$oid!; nav(`/${usableResourcePath(type)}/${id}`); }} enabled={!!name} diff --git a/frontend/src/components/resources/deployment/index.tsx b/frontend/src/components/resources/deployment/index.tsx index d38f84cb7..9a481c1f7 100644 --- a/frontend/src/components/resources/deployment/index.tsx +++ b/frontend/src/components/resources/deployment/index.tsx @@ -103,7 +103,9 @@ export const DeploymentComponents: RequiredResourceComponents = { Dashboard: DeploymentsChart, - New: () => , + New: ({ server_id, build_id }) => ( + + ), Table: ({ search }) => { const deployments = useRead("ListDeployments", {}).data; diff --git a/frontend/src/components/resources/deployment/log.tsx b/frontend/src/components/resources/deployment/log.tsx index 1665a8c5e..53255eed0 100644 --- a/frontend/src/components/resources/deployment/log.tsx +++ b/frontend/src/components/resources/deployment/log.tsx @@ -174,12 +174,12 @@ const Log = ({ useEffect(scroll, [_log]); return ( <> -
+