Refactors useLocale (#908)
* Removes unused component * Refactors useLocale We don't need to pass the locale prop everywhere * Fixes syntax error * Adds warning for missing localeProps * Simplify i18n utils * Update components/I18nLanguageHandler.tsx Co-authored-by: Mihai C <34626017+mihaic195@users.noreply.github.com> * Type fixes Co-authored-by: Mihai C <34626017+mihaic195@users.noreply.github.com>
This commit is contained in:
1 parent
7dd6fdde7a
commit
cfd70172f0
35 files changed
+366
-440
No files matched your search
+10
-25
@@ -15,7 +15,7 @@ export function getLocaleFromHeaders(req: IncomingMessage): string {
|
||||
|
||||
export const getOrSetUserLocaleFromHeaders = async (req: IncomingMessage): Promise<string> => {
|
||||
const session = await getSession({ req });
|
||||
const preferredLocale = parser.pick(i18n.locales, req.headers["accept-language"]) as Maybe<string>;
|
||||
const preferredLocale = getLocaleFromHeaders(req);
|
||||
|
||||
if (session?.user?.id) {
|
||||
const user = await prisma.user.findUnique({
|
||||
@@ -31,32 +31,17 @@ export const getOrSetUserLocaleFromHeaders = async (req: IncomingMessage): Promi
|
||||
return user.locale;
|
||||
}
|
||||
|
||||
if (preferredLocale) {
|
||||
await prisma.user.update({
|
||||
where: {
|
||||
id: session.user.id,
|
||||
},
|
||||
data: {
|
||||
locale: preferredLocale,
|
||||
},
|
||||
});
|
||||
} else {
|
||||
await prisma.user.update({
|
||||
where: {
|
||||
id: session.user.id,
|
||||
},
|
||||
data: {
|
||||
locale: i18n.defaultLocale,
|
||||
},
|
||||
});
|
||||
}
|
||||
await prisma.user.update({
|
||||
where: {
|
||||
id: session.user.id,
|
||||
},
|
||||
data: {
|
||||
locale: preferredLocale,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
if (preferredLocale) {
|
||||
return preferredLocale;
|
||||
}
|
||||
|
||||
return i18n.defaultLocale;
|
||||
return preferredLocale;
|
||||
};
|
||||
|
||||
interface localeType {
|
||||
|
||||
+1
-10
@@ -1,19 +1,10 @@
|
||||
import { useTranslation } from "next-i18next";
|
||||
|
||||
type LocaleProp = {
|
||||
localeProp: string;
|
||||
};
|
||||
|
||||
export const useLocale = (props: LocaleProp) => {
|
||||
export const useLocale = () => {
|
||||
const { i18n, t } = useTranslation("common");
|
||||
|
||||
if (i18n.language !== props.localeProp) {
|
||||
i18n.changeLanguage(props.localeProp);
|
||||
}
|
||||
|
||||
return {
|
||||
i18n,
|
||||
locale: props.localeProp,
|
||||
t,
|
||||
};
|
||||
};
|
||||
Reference in new issue
Block a user