Files
Homarr/src/components/WidgetsPositionSwitch/WidgetsPositionSwitch.tsx

63 lines
1.4 KiB
TypeScript
Raw Normal View History

2022-06-12 08:04:20 +02:00
import React, { useState } from 'react';
import { createStyles, Switch, Group } from '@mantine/core';
2022-08-22 09:50:54 +02:00
import { useTranslation } from 'next-i18next';
2022-06-12 08:04:20 +02:00
import { useConfig } from '../../tools/state';
const useStyles = createStyles((theme) => ({
root: {
position: 'relative',
'& *': {
cursor: 'pointer',
},
},
icon: {
pointerEvents: 'none',
position: 'absolute',
zIndex: 1,
top: 3,
},
iconLight: {
left: 4,
color: theme.white,
},
iconDark: {
right: 4,
color: theme.colors.gray[6],
},
}));
export function WidgetsPositionSwitch() {
const { config, setConfig } = useConfig();
const { classes, cx } = useStyles();
const defaultPosition = config?.settings?.widgetPosition || 'right';
const [widgetPosition, setWidgetPosition] = useState(defaultPosition);
2022-08-22 09:50:54 +02:00
const { t } = useTranslation('settings/general/widget-positions');
2022-06-12 08:04:20 +02:00
const toggleWidgetPosition = () => {
const position = widgetPosition === 'right' ? 'left' : 'right';
setWidgetPosition(position);
2022-06-12 16:58:48 +02:00
setConfig({
2022-06-12 08:04:20 +02:00
...config,
settings: {
...config.settings,
widgetPosition: position,
},
});
};
return (
<Group>
<div className={classes.root}>
2022-06-12 16:58:48 +02:00
<Switch
checked={widgetPosition === 'left'}
onChange={() => toggleWidgetPosition()}
size="md"
/>
2022-06-12 08:04:20 +02:00
</div>
2022-08-22 09:50:54 +02:00
{t('label')}
2022-06-12 08:04:20 +02:00
</Group>
);
}