aboutsummaryrefslogtreecommitdiffstats
path: root/apps/web/components/dashboard/lists/DeleteListButton.tsx
diff options
context:
space:
mode:
authorMohamed Bassem <me@mbassem.com>2024-04-19 00:09:27 +0100
committerGitHub <noreply@github.com>2024-04-19 00:09:27 +0100
commite0999f701cd1834c3d940113cd8dd5247c5fe95f (patch)
treec4169a564ecd3f933e711bcc8ef7db20532174ea /apps/web/components/dashboard/lists/DeleteListButton.tsx
parentdeba31ee010f785a9739fd4df8a64a3056c9593d (diff)
downloadkarakeep-e0999f701cd1834c3d940113cd8dd5247c5fe95f.tar.zst
feature: Nested lists (#110). Fixes #62
* feature: Add support for nested lists * prevent moving the parent to a subtree
Diffstat (limited to 'apps/web/components/dashboard/lists/DeleteListButton.tsx')
-rw-r--r--apps/web/components/dashboard/lists/DeleteListButton.tsx53
1 files changed, 0 insertions, 53 deletions
diff --git a/apps/web/components/dashboard/lists/DeleteListButton.tsx b/apps/web/components/dashboard/lists/DeleteListButton.tsx
deleted file mode 100644
index 774b79ac..00000000
--- a/apps/web/components/dashboard/lists/DeleteListButton.tsx
+++ /dev/null
@@ -1,53 +0,0 @@
-"use client";
-
-import { useRouter } from "next/navigation";
-import { ActionButton } from "@/components/ui/action-button";
-import ActionConfirmingDialog from "@/components/ui/action-confirming-dialog";
-import { Button } from "@/components/ui/button";
-import { toast } from "@/components/ui/use-toast";
-import { api } from "@/lib/trpc";
-import { Trash2 } from "lucide-react";
-
-import type { ZBookmarkList } from "@hoarder/shared/types/lists";
-
-export default function DeleteListButton({ list }: { list: ZBookmarkList }) {
- const router = useRouter();
-
- const listsInvalidationFunction = api.useUtils().lists.list.invalidate;
- const { mutate: deleteList, isPending } = api.lists.delete.useMutation({
- onSuccess: () => {
- listsInvalidationFunction();
- toast({
- description: `List "${list.icon} ${list.name}" is deleted!`,
- });
- router.push("/");
- },
- onError: () => {
- toast({
- variant: "destructive",
- description: `Something went wrong`,
- });
- },
- });
- return (
- <ActionConfirmingDialog
- title={`Delete ${list.icon} ${list.name}?`}
- description={`Are you sure you want to delete ${list.icon} ${list.name}?`}
- actionButton={() => (
- <ActionButton
- type="button"
- variant="destructive"
- loading={isPending}
- onClick={() => deleteList({ listId: list.id })}
- >
- Delete
- </ActionButton>
- )}
- >
- <Button className="mt-auto flex gap-2" variant="destructiveOutline">
- <Trash2 className="size-5" />
- <span className="hidden md:block">Delete List</span>
- </Button>
- </ActionConfirmingDialog>
- );
-}