2023-01-06 01:07:09 +09:00
|
|
|
import { Badge, Button, Menu } from '@mantine/core';
|
2022-12-04 18:20:25 +01:00
|
|
|
import { useDisclosure } from '@mantine/hooks';
|
|
|
|
|
import { IconInfoCircle, IconMenu2, IconSettings } from '@tabler/icons';
|
2022-12-20 11:34:07 +09:00
|
|
|
import { useTranslation } from 'next-i18next';
|
2023-01-06 01:07:09 +09:00
|
|
|
import { useColorTheme } from '../../../tools/color';
|
2022-12-04 18:45:14 +01:00
|
|
|
import { AboutModal } from '../../About/AboutModal';
|
2022-12-04 18:20:25 +01:00
|
|
|
import { SettingsDrawer } from '../../Settings/SettingsDrawer';
|
|
|
|
|
import { ColorSchemeSwitch } from './SettingsMenu/ColorSchemeSwitch';
|
|
|
|
|
|
2022-12-20 15:21:36 +09:00
|
|
|
export function SettingsMenu({ newVersionAvailable }: { newVersionAvailable: string }) {
|
2022-12-04 18:20:25 +01:00
|
|
|
const [drawerOpened, drawer] = useDisclosure(false);
|
2022-12-20 11:34:07 +09:00
|
|
|
const { t } = useTranslation('common');
|
2022-12-04 18:45:14 +01:00
|
|
|
const [aboutModalOpened, aboutModal] = useDisclosure(false);
|
2023-01-06 01:07:09 +09:00
|
|
|
const { primaryColor, secondaryColor } = useColorTheme();
|
2022-12-04 18:20:25 +01:00
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<>
|
2023-01-02 01:44:24 +09:00
|
|
|
<Menu width={250}>
|
|
|
|
|
<Menu.Target>
|
2023-01-06 01:07:09 +09:00
|
|
|
<Button variant="white" radius="md" color={secondaryColor} style={{ height: 43 }}>
|
2023-01-02 01:44:24 +09:00
|
|
|
<IconMenu2 />
|
2023-01-06 01:07:09 +09:00
|
|
|
</Button>
|
2023-01-02 01:44:24 +09:00
|
|
|
</Menu.Target>
|
|
|
|
|
<Menu.Dropdown>
|
|
|
|
|
<ColorSchemeSwitch />
|
|
|
|
|
<Menu.Divider />
|
|
|
|
|
<Menu.Item icon={<IconSettings strokeWidth={1.2} size={18} />} onClick={drawer.open}>
|
|
|
|
|
{t('sections.settings')}
|
|
|
|
|
</Menu.Item>
|
|
|
|
|
<Menu.Item
|
|
|
|
|
icon={<IconInfoCircle strokeWidth={1.2} size={18} />}
|
|
|
|
|
rightSection={
|
|
|
|
|
newVersionAvailable && (
|
|
|
|
|
<Badge variant="light" color="blue">
|
|
|
|
|
New
|
|
|
|
|
</Badge>
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
onClick={() => aboutModal.open()}
|
|
|
|
|
>
|
|
|
|
|
{t('about')}
|
|
|
|
|
</Menu.Item>
|
|
|
|
|
</Menu.Dropdown>
|
|
|
|
|
</Menu>
|
2022-12-20 15:21:36 +09:00
|
|
|
<SettingsDrawer
|
|
|
|
|
opened={drawerOpened}
|
|
|
|
|
closeDrawer={drawer.close}
|
|
|
|
|
newVersionAvailable={newVersionAvailable}
|
|
|
|
|
/>
|
|
|
|
|
<AboutModal
|
|
|
|
|
opened={aboutModalOpened}
|
|
|
|
|
closeModal={aboutModal.close}
|
|
|
|
|
newVersionAvailable={newVersionAvailable}
|
|
|
|
|
/>
|
2022-12-04 18:20:25 +01:00
|
|
|
</>
|
|
|
|
|
);
|
2022-12-20 15:21:36 +09:00
|
|
|
}
|