diff --git a/web/src/components/ButtonActionLoader.tsx b/web/src/components/ButtonActionLoader.tsx new file mode 100644 index 0000000..df703c7 --- /dev/null +++ b/web/src/components/ButtonActionLoader.tsx @@ -0,0 +1,35 @@ +"use client"; + +import { LoadingIcon } from "@/components/LoadingIcon"; +import { callServerPromise } from "@/components/callServerPromise"; +import { useRouter } from "next/navigation"; +import { useState } from "react"; + +export function ButtonAction({ + action, + children, + ...rest +}: { + action: () => Promise; + children: React.ReactNode; +}) { + const [pending, setPending] = useState(false); + const router = useRouter(); + + return ( + + ); +} diff --git a/web/src/components/DeploymentDisplay.tsx b/web/src/components/DeploymentDisplay.tsx index f193d45..1ac54da 100644 --- a/web/src/components/DeploymentDisplay.tsx +++ b/web/src/components/DeploymentDisplay.tsx @@ -1,3 +1,4 @@ +import { ButtonAction } from "@/components/ButtonActionLoader"; import { CodeBlock } from "@/components/CodeBlock"; import { Button } from "@/components/ui/button"; import { @@ -13,6 +14,7 @@ import { TableCell, TableRow } from "@/components/ui/table"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { getInputsFromWorkflow } from "@/lib/getInputsFromWorkflow"; import { getRelativeTime } from "@/lib/getRelativeTime"; +import { removePublicShareDeployment } from "@/server/curdDeploments"; import type { findAllDeployments } from "@/server/findAllRuns"; import { ExternalLink } from "lucide-react"; import { headers } from "next/headers"; @@ -136,7 +138,14 @@ export function DeploymentDisplay({ ) : ( -
+
+