mirror of
https://github.com/Shadowfita/docmost.git
synced 2025-11-10 04:22:00 +10:00
* feat: support i18n * feat: wip support i18n * feat: complete space translation * feat: complete page translation * feat: update space translation * feat: update workspace translation * feat: update group translation * feat: update workspace translation * feat: update page translation * feat: update user translation * chore: update pnpm-lock * feat: add query translation * refactor: merge to single file * chore: remove necessary code * feat: save language to BE * fix: only load current language * feat: save language to locale column * fix: cleanups * add language menu to preferences page * new translations * translate editor * Translate editor placeholders * translate space selection component --------- Co-authored-by: Philip Okugbe <phil@docmost.com> Co-authored-by: Philip Okugbe <16838612+Philipinho@users.noreply.github.com>
50 lines
1.1 KiB
TypeScript
50 lines
1.1 KiB
TypeScript
import {
|
|
Group,
|
|
Text,
|
|
useMantineColorScheme,
|
|
Select,
|
|
MantineColorScheme,
|
|
} from "@mantine/core";
|
|
import { useTranslation } from "react-i18next";
|
|
|
|
export default function AccountTheme() {
|
|
const { t } = useTranslation();
|
|
|
|
return (
|
|
<Group justify="space-between" wrap="nowrap" gap="xl">
|
|
<div>
|
|
<Text size="md">{t("Theme")}</Text>
|
|
<Text size="sm" c="dimmed">
|
|
{t("Choose your preferred color scheme.")}
|
|
</Text>
|
|
</div>
|
|
|
|
<ThemeSwitcher />
|
|
</Group>
|
|
);
|
|
}
|
|
|
|
function ThemeSwitcher() {
|
|
const { t } = useTranslation();
|
|
const { colorScheme, setColorScheme } = useMantineColorScheme();
|
|
|
|
const handleChange = (value: MantineColorScheme) => {
|
|
setColorScheme(value);
|
|
};
|
|
|
|
return (
|
|
<Select
|
|
label={t("Select theme")}
|
|
data={[
|
|
{ value: "light", label: t("Light") },
|
|
{ value: "dark", label: t("Dark") },
|
|
{ value: "auto", label: t("System settings") },
|
|
]}
|
|
value={colorScheme}
|
|
onChange={handleChange}
|
|
allowDeselect={false}
|
|
checkIconPosition="right"
|
|
/>
|
|
);
|
|
}
|