aboutsummaryrefslogtreecommitdiffstats
path: root/packages/renderer
diff options
context:
space:
mode:
Diffstat (limited to 'packages/renderer')
-rw-r--r--packages/renderer/src/components/ThemeProvider.tsx3
-rw-r--r--packages/renderer/src/i18n/loadRendererLoalization.ts27
-rw-r--r--packages/renderer/src/index.tsx9
3 files changed, 26 insertions, 13 deletions
diff --git a/packages/renderer/src/components/ThemeProvider.tsx b/packages/renderer/src/components/ThemeProvider.tsx
index 18dc2a8..581563b 100644
--- a/packages/renderer/src/components/ThemeProvider.tsx
+++ b/packages/renderer/src/components/ThemeProvider.tsx
@@ -30,10 +30,11 @@ import { useStore } from './StoreProvider';
30export default observer( 30export default observer(
31 ({ children }: { children: JSX.Element | JSX.Element[] }) => { 31 ({ children }: { children: JSX.Element | JSX.Element[] }) => {
32 const { 32 const {
33 shared: { shouldUseDarkColors }, 33 shared: { shouldUseDarkColors, writingDirection },
34 } = useStore(); 34 } = useStore();
35 35
36 const theme = createTheme({ 36 const theme = createTheme({
37 direction: writingDirection,
37 palette: { 38 palette: {
38 mode: shouldUseDarkColors ? 'dark' : 'light', 39 mode: shouldUseDarkColors ? 'dark' : 'light',
39 }, 40 },
diff --git a/packages/renderer/src/i18n/loadRendererLoalization.ts b/packages/renderer/src/i18n/loadRendererLoalization.ts
index b078aeb..4d7b84a 100644
--- a/packages/renderer/src/i18n/loadRendererLoalization.ts
+++ b/packages/renderer/src/i18n/loadRendererLoalization.ts
@@ -20,7 +20,7 @@
20 20
21import { FALLBACK_LOCALE, SophieRenderer } from '@sophie/shared'; 21import { FALLBACK_LOCALE, SophieRenderer } from '@sophie/shared';
22import i18next from 'i18next'; 22import i18next from 'i18next';
23import { autorun } from 'mobx'; 23import { reaction } from 'mobx';
24import { addDisposer } from 'mobx-state-tree'; 24import { addDisposer } from 'mobx-state-tree';
25import { initReactI18next } from 'react-i18next'; 25import { initReactI18next } from 'react-i18next';
26 26
@@ -68,17 +68,20 @@ export default function loadRendererLocalization(
68 } 68 }
69 69
70 await i18n.init(); 70 await i18n.init();
71 const disposeChangeLanguage = autorun(() => { 71
72 const { 72 const disposeChangeLanguage = reaction(
73 shared: { language }, 73 () => store.shared.language,
74 } = store; 74 (languageToSet) => {
75 if (i18n.language !== language) { 75 if (i18n.language !== languageToSet) {
76 log.debug('Setting language', language); 76 i18n.changeLanguage(languageToSet).catch((error) => {
77 i18n.changeLanguage(language).catch((error) => { 77 log.error('Failed to change language', error);
78 log.error('Failed to change language', error); 78 });
79 }); 79 }
80 } 80 },
81 }); 81 {
82 fireImmediately: true,
83 },
84 );
82 addDisposer(store, disposeChangeLanguage); 85 addDisposer(store, disposeChangeLanguage);
83 }; 86 };
84 87
diff --git a/packages/renderer/src/index.tsx b/packages/renderer/src/index.tsx
index 37116db..60ef714 100644
--- a/packages/renderer/src/index.tsx
+++ b/packages/renderer/src/index.tsx
@@ -56,6 +56,15 @@ if (isDevelopment) {
56 56
57loadRendererLocalization(store, ipc, isDevelopment); 57loadRendererLocalization(store, ipc, isDevelopment);
58 58
59const disposeSetHtmlLang = autorun(() => {
60 const {
61 shared: { language, writingDirection },
62 } = store;
63 document.documentElement.lang = language;
64 document.documentElement.dir = writingDirection;
65});
66addDisposer(store, disposeSetHtmlLang);
67
59const disposeSetTitle = autorun(() => { 68const disposeSetTitle = autorun(() => {
60 const titlePrefix = isDevelopment ? '[dev] ' : ''; 69 const titlePrefix = isDevelopment ? '[dev] ' : '';
61 const serviceTitle = store.settings.selectedService?.title; 70 const serviceTitle = store.settings.selectedService?.title;