Files
spacedrive/interface/app/$libraryId/settings/node/libraries/DeleteDialog.tsx
Vítor Vasconcellos 7cd0556f15 [ENG-1928] Update to tauri 2.0.1 stable (#2752)
* Update to tauri 2.0.0 stable
 - Update a some othe dependencies
 - Autoformat rust and toml files

* Fix clippy complain

* Update tauri 2.0.1
 - Update rspc
 - Update some frontend files due changes in rspc
 - Update some frontend build dependencies

* Revert babel update

* Fix code typing typing and style + a couple of bugs

* More type fixes
2024-10-05 21:17:30 +00:00

57 lines
1.3 KiB
TypeScript

import { useQueryClient } from '@tanstack/react-query';
import { useNavigate } from 'react-router';
import { useBridgeMutation, usePlausibleEvent, useZodForm } from '@sd/client';
import { Dialog, useDialog, UseDialogProps } from '@sd/ui';
import { useLocale } from '~/hooks';
import { usePlatform } from '~/util/Platform';
interface Props extends UseDialogProps {
libraryUuid: string;
}
export default function DeleteLibraryDialog(props: Props) {
const { t } = useLocale();
const submitPlausibleEvent = usePlausibleEvent();
const queryClient = useQueryClient();
const platform = usePlatform();
const navigate = useNavigate();
const deleteLib = useBridgeMutation('library.delete');
const form = useZodForm();
const onSubmit = form.handleSubmit(async () => {
try {
await deleteLib.mutateAsync(props.libraryUuid);
queryClient.invalidateQueries(['library.list']);
if (platform.refreshMenuBar) platform.refreshMenuBar();
submitPlausibleEvent({
event: {
type: 'libraryDelete'
}
});
navigate('/');
} catch (e) {
alert(`Failed to delete library: ${e}`);
}
});
return (
<Dialog
form={form}
onSubmit={onSubmit}
dialog={useDialog(props)}
title={t('delete_library')}
closeLabel={t('close')}
description={t('delete_library_description')}
ctaDanger
ctaLabel={t('delete')}
/>
);
}