Files
Homarr/components/Settings/SettingsMenu.tsx

84 lines
2.2 KiB
TypeScript
Raw Normal View History

2022-04-27 20:10:51 +02:00
import { ActionIcon, Group, Modal, Switch, Title, Text, Tooltip, TextInput } from '@mantine/core';
2022-04-27 03:12:17 +02:00
import { showNotification } from '@mantine/notifications';
import { motion } from 'framer-motion';
import { CSSProperties, useEffect, useState } from 'react';
import { Mail, Settings as SettingsIcon, X } from 'tabler-icons-react';
import { useConfig } from '../../tools/state';
2022-04-27 03:12:17 +02:00
import SaveConfigComponent from '../Config/SaveConfig';
function SettingsMenu(props: any) {
const { config, setConfig } = useConfig();
2022-04-27 03:12:17 +02:00
return (
2022-04-27 20:10:51 +02:00
<Group direction="column" grow>
<TextInput
label="Search bar querry url"
defaultValue={config.settings.searchUrl}
onChange={(e) =>
2022-04-27 03:12:17 +02:00
setConfig({
...config,
settings: {
...config.settings,
2022-04-27 20:10:51 +02:00
searchUrl: e.target.value,
},
})
}
/>
<Group direction="column">
2022-04-27 20:10:51 +02:00
<Switch
onChange={(e) =>
2022-04-27 20:10:51 +02:00
setConfig({
...config,
settings: {
...config.settings,
searchBar: e.currentTarget.checked,
},
})
}
checked={config.settings.searchBar}
2022-04-27 20:10:51 +02:00
label="Enable search bar"
/>
</Group>
2022-04-27 03:12:17 +02:00
<SaveConfigComponent />
<Text
style={{
alignSelf: 'center',
fontSize: '0.75rem',
textAlign: 'center',
color: '#a0aec0',
}}
>
tip: You can upload your config file by dragging and dropping it into the page
</Text>
</Group>
);
}
export function SettingsMenuButton(props: any) {
const [opened, setOpened] = useState(false);
return (
<>
<Modal
size="md"
2022-04-27 03:12:17 +02:00
title={<Title order={3}>Settings</Title>}
opened={props.opened || opened}
onClose={() => setOpened(false)}
>
<SettingsMenu />
</Modal>
<ActionIcon
variant="default"
radius="xl"
size="xl"
color="blue"
2022-04-27 03:12:17 +02:00
style={props.style}
onClick={() => setOpened(true)}
>
<Tooltip label="Settings">
<SettingsIcon />
2022-04-27 03:12:17 +02:00
</Tooltip>
</ActionIcon>
</>
);
}