Files
spacedrive/interface/app/$libraryId/settings/node/libraries/DeleteDialog.tsx
Brendan Allan 5faaa9f849 [ENG-1007] Per-page onboarding forms (#1256)
* useMultiZodForm

* fix imports

* handle obStore.data undefined

---------

Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>
2023-08-29 10:58:39 +00:00

45 lines
1.1 KiB
TypeScript

import { useQueryClient } from '@tanstack/react-query';
import { useBridgeMutation, usePlausibleEvent, useZodForm } from '@sd/client';
import { Dialog, UseDialogProps, useDialog } 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"
/>
);
}