Skip to content

Commit 0d7da0a

Browse files
committed
feat: fix direction
1 parent 90424ba commit 0d7da0a

File tree

4 files changed

+25
-18
lines changed

4 files changed

+25
-18
lines changed

apps/frontend/src/components/layout/html.component.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
'use client';
22
import { FC, ReactNode, useEffect, useState } from 'react';
3-
import i18next from '@gitroom/react/translation/i18next';
3+
import { useTranslationSettings } from '@gitroom/react/translation/get.transation.service.client';
44

55
export const HtmlComponent: FC<{ className: string; children: ReactNode }> = (
66
props
77
) => {
88
const { className } = props;
9-
const [dir, setDir] = useState(i18next.dir());
9+
const settings = useTranslationSettings();
10+
const [dir, setDir] = useState(settings.dir());
1011

1112
useEffect(() => {
12-
i18next.on('languageChanged', (lng) => {
13-
setDir(i18next.dir());
13+
setDir(settings.dir());
14+
settings.on('languageChanged', (lng) => {
15+
setDir(settings.dir());
1416
});
1517
}, []);
1618

apps/frontend/src/middleware.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ export async function middleware(request: NextRequest) {
2424
: acceptLanguage.get(request.headers.get('Accept-Language'))) ||
2525
fallbackLng;
2626

27-
console.log(request.cookies.has(cookieName));
2827
const headers = new Headers(request.headers);
2928
headers.set(headerName, lng);
3029
if (

libraries/react-shared-libraries/src/translation/get.transation.service.client.ts

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,32 @@ import {
1010
fallbackLng,
1111
} from '@gitroom/react/translation/i18n.config';
1212
import { useVariables } from '@gitroom/react/helpers/variable.context';
13-
const runsOnServerSide = typeof window === 'undefined';
13+
1414
export function useT(ns?: string, options?: UseTranslationOptions<any>) {
1515
const { language } = useVariables();
1616
const [lng] = useCookie(cookieName, language || fallbackLng);
1717
if (typeof lng !== 'string') {
1818
throw new Error('useT is only available inside /app/[lng]');
1919
}
20-
const [activeLng, setActiveLng] = useState(i18next.resolvedLanguage);
2120
const { t } = useTranslation(ns, options);
21+
return t;
22+
}
23+
24+
export function useTranslationSettings() {
25+
const { language } = useVariables();
26+
const [lng] = useCookie(cookieName, language || fallbackLng);
27+
const [savedI18next, setSavedI18next] = useState(i18next);
28+
29+
if (typeof lng !== 'string') {
30+
throw new Error('useT is only available inside /app/[lng]');
31+
}
2232
useEffect(() => {
23-
if (activeLng === i18next.resolvedLanguage) return;
24-
setActiveLng(i18next.resolvedLanguage);
25-
}, [activeLng]);
26-
useEffect(() => {
27-
if (!lng || i18next.resolvedLanguage === lng) return;
28-
i18next.changeLanguage(lng);
33+
if (lng !== i18next.resolvedLanguage) {
34+
i18next.changeLanguage(lng).then(() => {
35+
setSavedI18next(i18next);
36+
});
37+
}
2938
}, [lng]);
30-
if (runsOnServerSide && i18next.resolvedLanguage !== lng) {
31-
i18next.changeLanguage(lng);
32-
}
33-
return t;
39+
40+
return savedI18next;
3441
}

libraries/react-shared-libraries/src/translation/i18next.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ i18next
1010
.use(LanguageDetector)
1111
.use(
1212
resourcesToBackend((language: any, namespace: any) => {
13-
console.log(namespace, language);
1413
return import(`./locales/${language}/${namespace}.json`);
1514
})
1615
)

0 commit comments

Comments
 (0)