import React, { useEffect, useState } from "react"; import TextInput from "@/components/TextInput"; import { CollectionIncludingMembersAndLinkCount } from "@linkwarden/types"; import { useRouter } from "next/router"; import usePermissions from "@/hooks/usePermissions"; import Modal from "../Modal"; import { Button } from "@/components/ui/button"; import { useTranslation } from "next-i18next"; import { useDeleteCollection } from "@linkwarden/router/collections"; import toast from "react-hot-toast"; import { Separator } from "../ui/separator"; type Props = { onClose: Function; activeCollection: CollectionIncludingMembersAndLinkCount; }; export default function DeleteCollectionModal({ onClose, activeCollection, }: Props) { const { t } = useTranslation(); const [collection, setCollection] = useState(activeCollection); const [submitLoader, setSubmitLoader] = useState(false); const router = useRouter(); const permissions = usePermissions(collection.id as number); useEffect(() => { setCollection(activeCollection); }, []); const deleteCollection = useDeleteCollection(); const submit = async () => { if (!submitLoader) { setSubmitLoader(true); if (!collection) return null; setSubmitLoader(true); const load = toast.loading(t("deleting_collection")); deleteCollection.mutateAsync(collection.id as number, { onSettled: (data, error) => { setSubmitLoader(false); toast.dismiss(load); if (error) { toast.error(error.message); } else { onClose(); toast.success(t("deleted")); router.push("/collections"); } }, }); } }; return (

{permissions === true ? t("delete_collection") : t("leave_collection")}

{permissions === true ? ( <> {t("collection_deletion_prompt")}
{t("warning")}: {t("deletion_warning")}
) : (

{t("leave_prompt")}

)}
); }