Files
Homarr/src/components/Settings/SettingsMenu.tsx

62 lines
1.7 KiB
TypeScript
Raw Normal View History

2022-06-28 11:06:45 +02:00
import { ActionIcon, Title, Tooltip, Drawer, Tabs, ScrollArea } from '@mantine/core';
2022-06-07 08:21:03 +02:00
import { useHotkeys } from '@mantine/hooks';
import { useState } from 'react';
2022-06-07 08:21:03 +02:00
import { IconSettings } from '@tabler/icons';
2022-06-07 00:07:56 +00:00
import AdvancedSettings from './AdvancedSettings';
2022-06-07 08:21:03 +02:00
import CommonSettings from './CommonSettings';
2022-06-28 11:06:45 +02:00
import Credits from './Credits';
2022-04-27 03:12:17 +02:00
function SettingsMenu(props: any) {
return (
<Tabs defaultValue="Common">
<Tabs.List grow>
<Tabs.Tab value="Common">Common</Tabs.Tab>
<Tabs.Tab value="Customizations">Customizations</Tabs.Tab>
</Tabs.List>
<Tabs.Panel data-autofocus value="Common">
2022-06-28 11:06:45 +02:00
<ScrollArea style={{ height: '78vh' }} offsetScrollbars>
<CommonSettings />
</ScrollArea>
</Tabs.Panel>
<Tabs.Panel value="Customizations">
2022-06-28 11:06:45 +02:00
<ScrollArea style={{ height: '78vh' }} offsetScrollbars>
<AdvancedSettings />
</ScrollArea>
</Tabs.Panel>
2022-06-07 00:07:56 +00:00
</Tabs>
2022-04-27 03:12:17 +02:00
);
}
export function SettingsMenuButton(props: any) {
useHotkeys([['ctrl+L', () => setOpened(!opened)]]);
2022-04-27 03:12:17 +02:00
const [opened, setOpened] = useState(false);
return (
<>
<Drawer
size="xl"
2022-06-28 11:06:45 +02:00
padding="lg"
position="right"
2022-06-28 11:06:45 +02:00
title={<Title order={5}>Settings</Title>}
2022-04-27 03:12:17 +02:00
opened={props.opened || opened}
onClose={() => setOpened(false)}
>
<SettingsMenu />
2022-06-28 11:06:45 +02:00
<Credits />
</Drawer>
2022-04-27 03:12:17 +02:00
<ActionIcon
variant="default"
2022-05-14 21:42:11 +02:00
radius="md"
size="xl"
color="blue"
2022-04-27 03:12:17 +02:00
style={props.style}
onClick={() => setOpened(true)}
>
<Tooltip label="Settings">
<IconSettings />
2022-04-27 03:12:17 +02:00
</Tooltip>
</ActionIcon>
</>
);
}