Path: blob/main/components/dashboard/src/workspaces/DeleteWorkspaceModal.tsx
2500 views
/**1* Copyright (c) 2023 Gitpod GmbH. All rights reserved.2* Licensed under the GNU Affero General Public License (AGPL).3* See License.AGPL.txt in the project root for license information.4*/56import { FunctionComponent, useCallback } from "react";7import ConfirmationModal from "../components/ConfirmationModal";8import { useDeleteWorkspaceMutation } from "../data/workspaces/delete-workspace-mutation";9import { useToast } from "../components/toasts/Toasts";10import { Workspace } from "@gitpod/public-api/lib/gitpod/v1/workspace_pb";11import { fromWorkspaceName } from "./RenameWorkspaceModal";1213type Props = {14workspace: Workspace;15onClose(): void;16};17export const DeleteWorkspaceModal: FunctionComponent<Props> = ({ workspace, onClose }) => {18const deleteWorkspace = useDeleteWorkspaceMutation();19const { toast } = useToast();2021const handleConfirmation = useCallback(async () => {22try {23await deleteWorkspace.mutateAsync({ workspaceId: workspace.id });2425toast("Your workspace was deleted");26onClose();27} catch (e) {}28}, [deleteWorkspace, onClose, toast, workspace.id]);2930return (31<ConfirmationModal32title="Delete Workspace"33areYouSureText="Are you sure you want to delete this workspace?"34children={{35name: workspace.id,36description: fromWorkspaceName(workspace),37}}38buttonText="Delete Workspace"39warningText={deleteWorkspace.isError ? "There was a problem deleting your workspace." : undefined}40onClose={onClose}41onConfirm={handleConfirmation}42visible43/>44);45};464748