mirror of
https://github.com/docmost/docmost.git
synced 2025-11-23 17:51:10 +10:00
feat: save language to locale column
This commit is contained in:
@ -1,7 +1,6 @@
|
||||
import { Group, Text, Select } from "@mantine/core";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { updateUser } from "../services/user-service";
|
||||
import { IUser } from "../types/user.types";
|
||||
import { useAtom } from "jotai";
|
||||
import { userAtom } from "../atoms/current-user-atom";
|
||||
import { useState } from "react";
|
||||
@ -26,11 +25,11 @@ function LanguageSwitcher() {
|
||||
const { t, i18n } = useTranslation();
|
||||
const [user, setUser] = useAtom(userAtom);
|
||||
const [language, setLanguage] = useState(
|
||||
user.settings?.preferences?.language || "en-US",
|
||||
user?.locale === "en" ? "en-US" : user.locale,
|
||||
);
|
||||
|
||||
const handleChange = async (value: string) => {
|
||||
const updatedUser = await updateUser({ language: value });
|
||||
const updatedUser = await updateUser({ locale: value });
|
||||
|
||||
setLanguage(value);
|
||||
setUser(updatedUser);
|
||||
@ -52,4 +51,3 @@ function LanguageSwitcher() {
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -1,11 +1,6 @@
|
||||
import { IWorkspace } from "@/features/workspace/types/workspace.types";
|
||||
|
||||
type IUserPreferences = {
|
||||
fullPageWidth: boolean;
|
||||
language: string;
|
||||
};
|
||||
|
||||
export interface IUser extends IUserPreferences {
|
||||
export interface IUser {
|
||||
id: string;
|
||||
name: string;
|
||||
email: string;
|
||||
@ -16,12 +11,14 @@ export interface IUser extends IUserPreferences {
|
||||
invitedById: string;
|
||||
lastLoginAt: string;
|
||||
lastActiveAt: Date;
|
||||
locale: string;
|
||||
createdAt: Date;
|
||||
updatedAt: Date;
|
||||
role: string;
|
||||
workspaceId: string;
|
||||
deactivatedAt: Date;
|
||||
deletedAt: Date;
|
||||
fullPageWidth: boolean; // used for update
|
||||
}
|
||||
|
||||
export interface ICurrentUser {
|
||||
@ -30,5 +27,7 @@ export interface ICurrentUser {
|
||||
}
|
||||
|
||||
export interface IUserSettings {
|
||||
preferences: IUserPreferences
|
||||
preferences: {
|
||||
fullPageWidth: boolean;
|
||||
};
|
||||
}
|
||||
|
||||
@ -13,7 +13,7 @@ export function UserProvider({ children }: React.PropsWithChildren) {
|
||||
if (data && data.user && data.workspace) {
|
||||
setCurrentUser(data);
|
||||
i18n.changeLanguage(
|
||||
data.user?.settings?.preferences?.language || "en-US",
|
||||
data.user.locale === "en" ? "en-US" : data.user.locale,
|
||||
);
|
||||
}
|
||||
}, [data, isLoading]);
|
||||
|
||||
Reference in New Issue
Block a user