Skip to content

Commit

Permalink
feat-mobile: add lang and theme settings (#5434)
Browse files Browse the repository at this point in the history
* feat-mobile: add lang and theme settings

* feat-mobile: remove language change function

Co-authored-by: Begoña Alvarez <balvarez@boxfish.studio>
  • Loading branch information
paul-boegelsack and begonaalvarezd committed Dec 16, 2022
1 parent e232fa5 commit 84aec3d
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -1,12 +1,26 @@
import { SETTINGS_ICON_SVG } from '@lib/auxiliary/icon'
import features from '../../../../features/features'
import { ChangePasswordView } from '../../../../views/dashboard/drawers/profile/views/settings'
import { ChangePasswordView, LanguageView, ThemeView } from '../../../../views/dashboard/drawers/profile/views/settings'
import { SettingsRoute } from '../../../routers'
import { SettingsCategory } from '../enums'

const { security } = features.settings
const { general, security } = features.settings

export const SETTINGS_ROUTE_META = {
[SettingsRoute.Theme]: {
name: `views.settings.${SettingsRoute.Theme}.title`,
category: SettingsCategory.General,
enabled: general?.[SettingsRoute.Theme]?.enabled,
icon: SETTINGS_ICON_SVG[SettingsRoute.Theme],
view: ThemeView,
},
[SettingsRoute.Language]: {
name: `views.settings.${SettingsRoute.Language}.title`,
category: SettingsCategory.General,
enabled: general?.[SettingsRoute.Language]?.enabled,
icon: SETTINGS_ICON_SVG[SettingsRoute.Language],
view: LanguageView,
},
[SettingsRoute.ChangePassword]: {
name: `views.settings.${SettingsRoute.ChangePassword}.title`,
category: SettingsCategory.Security,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
<script lang="typescript">
import { appSettings } from '@core/app'
import { localize } from '@core/i18n'
import { Drawer } from '../../../../components'
import { SETTINGS_ROUTE_META } from '../../../../lib/contexts/dashboard'
Expand All @@ -21,6 +22,7 @@
let activeRouter: ProfileRouter | SettingsRouter = $profileRouter
$: $profileRoute, $settingsRoute, (setTitle(), setAllowBack(), setActiveRouter())
$: $appSettings.language, setTitle()
function setActiveRouter(): void {
if ($profileRoute === ProfileRoute.Settings) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<script lang="typescript">
import { Radio } from 'shared/components'
import { appSettings } from '@core/app'
import { SUPPORTED_LOCALES, setLanguage } from '@core/i18n'
let appLanguage: string = SUPPORTED_LOCALES[$appSettings.language]
$: languageList = Object.values(SUPPORTED_LOCALES).map((locale) => ({ value: locale, label: locale }))
$: appLanguage, setLanguage({ value: appLanguage })
</script>

<div class="flex flex-col overflow-y-auto">
{#each languageList as language}
<Radio value={language.value} bind:group={appLanguage} label={language.label} classes="p-2" />
{/each}
</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<script lang="typescript">
import { Radio, Text, Icon } from 'shared/components'
import { AppTheme, appSettings, shouldBeDarkMode } from '@core/app'
import { localize } from '@core/i18n'
let appTheme: AppTheme = $appSettings.theme
$: $appSettings.theme = appTheme
$: $appSettings.darkMode = shouldBeDarkMode($appSettings.theme)
</script>

<div class="flex flex-col">
<Radio value={'light'} bind:group={appTheme} label={localize('general.lightTheme')} classes="p-2" />
<Radio value={'dark'} bind:group={appTheme} label={localize('general.darkTheme')} classes="p-2" />
<Radio value={'system'} bind:group={appTheme} label={localize('general.systemTheme')} classes="p-2" />
{#if appTheme === 'system'}
<div class="flex flex-row items-center mb-5">
<Icon icon="info" classes="mr-3 fill-current text-black dark:text-white" />
<Text fontSize="14" lineHeight="5">{localize('views.settings.theme.advice')}</Text>
</div>
{/if}
</div>
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
export { default as ChangePasswordView } from './ChangePasswordView.svelte'
export { default as LanguageView } from './LanguageView.svelte'
export { default as ThemeView } from './ThemeView.svelte'
export { default as SettingsIndexView } from './SettingsIndexView.svelte'

0 comments on commit 84aec3d

Please sign in to comment.