Always show window controls, and open Linux settings in dialog

This commit is contained in:
Gregory Schier
2024-10-10 06:22:11 -07:00
parent 16e090b520
commit 250625fc0e
7 changed files with 101 additions and 46 deletions

View File

@@ -1,16 +1,31 @@
import { useMutation } from '@tanstack/react-query';
import { useDialog } from '../components/DialogContext';
import Settings from '../components/Settings/Settings';
import { invokeCmd } from '../lib/tauri';
import { useActiveWorkspace } from './useActiveWorkspace';
import { useAppRoutes } from './useAppRoutes';
import { useOsInfo } from './useOsInfo';
export function useOpenSettings() {
const routes = useAppRoutes();
const workspace = useActiveWorkspace();
const dialog = useDialog();
const { osType } = useOsInfo();
return useMutation({
mutationKey: ['open_settings'],
mutationFn: async () => {
if (workspace == null) return;
// HACK: Show settings in dialog on Linux until this is fixed: https://github.com/tauri-apps/tauri/issues/11171
if (osType === 'linux') {
dialog.show({
id: 'settings',
size: 'lg',
render: ({ hide }) => <Settings hide={hide} />,
});
return;
}
await invokeCmd('cmd_new_child_window', {
url: routes.paths.workspaceSettings({ workspaceId: workspace.id }),
label: 'settings',

View File

@@ -0,0 +1,9 @@
import { useIsFullscreen } from './useIsFullscreen';
import { useOsInfo } from './useOsInfo';
export function useStoplightsVisible() {
const platform = useOsInfo();
const fullscreen = useIsFullscreen();
const stoplightsVisible = platform?.osType === 'macos' && !fullscreen;
return stoplightsVisible;
}