Files
spacedrive/interface/app/$libraryId/settings/node/libraries/DeleteDialog.tsx
T
jakeandameer2468 cc6466a5d0 [ENG-1283, ENG-1284, partially ENG-1303] Fix MacOS window bar showing when full-screen (#1582)
* fix(UI): remove the swift code that was causing the top bar to show when the window is maximized

* fix(UI): limit the keybind handler to the `$libraryId` layout

The keybind handler is how we get MacOS menu bar events to the front-end, and to navigate to the settings page correctly we need the current library UUID. We should hide/disable the settings button (and any future buttons that require a library/certain state - e.g. during onboarding) from the menu bar.

* chore(swift): remove unused function

* fix(UI): git didn't detect hook rename

* fix(deps): revert tauri version downgrade

Was probably caused by a bad merge

* fix(UI): remove rounding of window borders on macos

This was allowing the borders to still show on MacOS, despite the app being fully maximized. This doesn't impact non-maximized styling of the app, as we have native window decorations enabled within the Tauri config (well, that's my best guess as to why this fixes the issue).

* fix(UI): conditionally enable/disable menu items on macos

This is dependent on whether a library is present or not. If there's no library, we disable things such as copy/paste/select all.

* fix(UI): try and conditionally show the border radius

I think some cached files aren't being rebuilt correctly as this *should* work fine, it uses the same conditions as the traffic lights do to determine if we're fullscreen or not.

* remove copy/select all/paste as they have uses outside of the explorer

* feat(UI): overhaul native macos menu

* fix: add toast for quick rescan and free up the ctrl+r keybind

* more menu rearrangements

* update menu further

* add comment about rounded edges

* some polish

* add working overview redirect

* fix(UI): correct border edges when non-maximized, and full corners when maximized

* cleanup event handling

* add media view and disable non-working buttons

* fix(UI): raise sidebar on fullscreen to prevent empty corner

* adjust settings padding when maximized on macos

* failed sidebar animation

* rm old stuff

* fix(UI): better transitions (i'm learning!)

* add comment about why new library is disabled during onboarding

* make the settings page static and `pt-6`

* add mock-up library selector in menu

* `maximized` -> `fullScreen`

* fix animation when fullscreening

* clippy

* change animation to 300ms

---------

Co-authored-by: ameer2468 <33054370+ameer2468@users.noreply.github.com>
2023-10-21 11:57:04 +00:00

49 lines
1.2 KiB
TypeScript

import { useQueryClient } from '@tanstack/react-query';
import { useBridgeMutation, usePlausibleEvent, useZodForm } from '@sd/client';
import { Dialog, useDialog, UseDialogProps } from '@sd/ui';
import { usePlatform } from '~/util/Platform';
interface Props extends UseDialogProps {
libraryUuid: string;
}
export default function DeleteLibraryDialog(props: Props) {
const submitPlausibleEvent = usePlausibleEvent();
const queryClient = useQueryClient();
const platform = usePlatform();
const deleteLib = useBridgeMutation('library.delete');
const form = useZodForm();
const onSubmit = form.handleSubmit(async () => {
try {
await deleteLib.mutateAsync(props.libraryUuid);
queryClient.invalidateQueries(['library.list']);
platform.refreshMenuBar && platform.refreshMenuBar();
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"
/>
);
}