diff --git a/apps/dashboard/src/@3rdweb-sdk/react/hooks/useEngine.ts b/apps/dashboard/src/@3rdweb-sdk/react/hooks/useEngine.ts index 7b8b32d7f25..38ff4e93829 100644 --- a/apps/dashboard/src/@3rdweb-sdk/react/hooks/useEngine.ts +++ b/apps/dashboard/src/@3rdweb-sdk/react/hooks/useEngine.ts @@ -261,27 +261,26 @@ export function useEngineRemoveFromDashboard() { }); } -export interface RemoveCloudHostedInput { - instanceId: string; +export interface DeleteCloudHostedInput { + deploymentId: string; reason: "USING_SELF_HOSTED" | "TOO_EXPENSIVE" | "MISSING_FEATURES" | "OTHER"; feedback: string; } -export function useEngineRemoveCloudHosted() { +export function useEngineDeleteCloudHosted() { const { user } = useLoggedInUser(); const queryClient = useQueryClient(); return useMutation({ mutationFn: async ({ - instanceId, + deploymentId, reason, feedback, - }: RemoveCloudHostedInput) => { + }: DeleteCloudHostedInput) => { const res = await fetch( - `${THIRDWEB_API_HOST}/v1/engine/${instanceId}/remove-cloud-hosted`, + `${THIRDWEB_API_HOST}/v2/engine/deployments/${deploymentId}/infrastructure/delete`, { method: "POST", - headers: { "Content-Type": "application/json", }, diff --git a/apps/dashboard/src/components/engine/engine-instances-table.tsx b/apps/dashboard/src/components/engine/engine-instances-table.tsx index 18e949a3817..92ccfb59440 100644 --- a/apps/dashboard/src/components/engine/engine-instances-table.tsx +++ b/apps/dashboard/src/components/engine/engine-instances-table.tsx @@ -2,6 +2,7 @@ import { Spinner } from "@/components/ui/Spinner/Spinner"; import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; +import { Checkbox, CheckboxWithLabel } from "@/components/ui/checkbox"; import { Dialog, DialogContent, @@ -13,12 +14,12 @@ import { Input } from "@/components/ui/input"; import { Textarea } from "@/components/ui/textarea"; import { ToolTipLabel } from "@/components/ui/tooltip"; import { + type DeleteCloudHostedInput, type EditEngineInstanceInput, type EngineInstance, - type RemoveCloudHostedInput, + useEngineDeleteCloudHosted, useEngineEditInstance, type useEngineInstances, - useEngineRemoveCloudHosted, useEngineRemoveFromDashboard, } from "@3rdweb-sdk/react/hooks/useEngine"; import { FormControl, Radio, RadioGroup } from "@chakra-ui/react"; @@ -28,8 +29,8 @@ import { TWTable } from "components/shared/TWTable"; import { useTrack } from "hooks/analytics/useTrack"; import { CircleAlertIcon, + InfoIcon, PencilIcon, - SendIcon, Trash2Icon, TriangleAlertIcon, } from "lucide-react"; @@ -37,6 +38,7 @@ import Link from "next/link"; import { type ReactNode, useState } from "react"; import { useForm } from "react-hook-form"; import { toast } from "sonner"; +import invariant from "tiny-invariant"; import { FormLabel } from "tw-components"; interface EngineInstancesTableProps { @@ -132,7 +134,7 @@ export const EngineInstancesTable: React.FC = ({ return ( <> = ({ }, { icon: , - text: "Remove", + text: "Delete", onClick: (instance) => { trackEvent({ category: "engine", @@ -257,7 +259,7 @@ const EditModal = (props: {