Files
spacedrive/interface/app/$libraryId/settings/node/libraries/DeleteDialog.tsx
Utku fd8c0f87b3 [ENG-1067] Update phosphor to new package & update sort imports (#1330)
* ianvs > trivago

* @phosphor-icons/react > phosphor-react
2023-09-11 15:26:44 +00:00

45 lines
1.1 KiB
TypeScript

import { useQueryClient } from '@tanstack/react-query';
import { useBridgeMutation, usePlausibleEvent, useZodForm } from '@sd/client';
import { Dialog, useDialog, UseDialogProps } from '@sd/ui';
interface Props extends UseDialogProps {
libraryUuid: string;
}
export default function DeleteLibraryDialog(props: Props) {
const submitPlausibleEvent = usePlausibleEvent();
const queryClient = useQueryClient();
const deleteLib = useBridgeMutation('library.delete');
const form = useZodForm();
const onSubmit = form.handleSubmit(async () => {
try {
await deleteLib.mutateAsync(props.libraryUuid);
queryClient.invalidateQueries(['library.list']);
submitPlausibleEvent({
event: {
type: 'libraryDelete'
}
});
} catch (e) {
alert(`Failed to delete library: ${e}`);
}
});
return (
<Dialog
form={form}
onSubmit={onSubmit}
dialog={useDialog(props)}
title="Delete Library"
description="Deleting a library will permanently the database, the files themselves will not be deleted."
ctaDanger
ctaLabel="Delete"
/>
);
}