mirror of
https://github.com/wukko/cobalt.git
synced 2025-04-29 22:14:26 +02:00
55 lines
1.9 KiB
Svelte
55 lines
1.9 KiB
Svelte
<script lang="ts">
|
|
import settings from "$lib/state/settings";
|
|
import { themeOptions } from "$lib/types/settings";
|
|
import { t, locales } from "$lib/i18n/translations";
|
|
|
|
import Switcher from "$components/buttons/Switcher.svelte";
|
|
import SettingsButton from "$components/buttons/SettingsButton.svelte";
|
|
import SettingsToggle from "$components/buttons/SettingsToggle.svelte";
|
|
import SettingsCategory from "$components/settings/SettingsCategory.svelte";
|
|
import SettingsDropdown from "$components/settings/SettingsDropdown.svelte";
|
|
|
|
const dropdownItems = () => {
|
|
return $locales.reduce((obj, lang) => {
|
|
return {
|
|
...obj,
|
|
[lang]: $t(`languages.${lang}`),
|
|
};
|
|
}, {});
|
|
};
|
|
</script>
|
|
|
|
<SettingsCategory sectionId="theme" title={$t("settings.theme")}>
|
|
<Switcher big={true} description={$t("settings.theme.description")}>
|
|
{#each themeOptions as value}
|
|
<SettingsButton
|
|
settingContext="appearance"
|
|
settingId="theme"
|
|
settingValue={value}
|
|
>
|
|
{$t(`settings.theme.${value}`)}
|
|
</SettingsButton>
|
|
{/each}
|
|
</Switcher>
|
|
</SettingsCategory>
|
|
|
|
<SettingsCategory sectionId="language" title={$t("settings.language")}>
|
|
<SettingsToggle
|
|
settingContext="appearance"
|
|
settingId="autoLanguage"
|
|
title={$t("settings.language.auto.title")}
|
|
description={$t("settings.language.auto.description")}
|
|
/>
|
|
|
|
<SettingsDropdown
|
|
title={$t("settings.language.preferred.title")}
|
|
description={$t("settings.language.preferred.description")}
|
|
items={dropdownItems()}
|
|
settingContext="appearance"
|
|
settingId="language"
|
|
selectedOption={$settings.appearance.language}
|
|
selectedTitle={$t(`languages.${$settings.appearance.language}`)}
|
|
disabled={$settings.appearance.autoLanguage}
|
|
/>
|
|
</SettingsCategory>
|