mirror of
https://github.com/fosrl/pangolin.git
synced 2026-02-03 00:29:10 +00:00
* New translation keys * Updates in src/components * Updates in src/providers * remove lable in selector, not needed --------- Co-authored-by: Lokowitz <marvinlokowitz@gmail.com>
41 lines
1006 B
TypeScript
41 lines
1006 B
TypeScript
"use client";
|
|
|
|
import UserContext from "@app/contexts/userContext";
|
|
import { GetUserResponse } from "@server/routers/user";
|
|
import { useState } from "react";
|
|
import { useTranslations } from "next-intl";
|
|
|
|
interface UserProviderProps {
|
|
children: React.ReactNode;
|
|
user: GetUserResponse;
|
|
}
|
|
|
|
export function UserProvider({ children, user: u }: UserProviderProps) {
|
|
const [user, setUser] = useState<GetUserResponse>(u);
|
|
|
|
const t = useTranslations();
|
|
|
|
const updateUser = (updatedUser: Partial<GetUserResponse>) => {
|
|
if (!user) {
|
|
throw new Error(t('userErrorNoUpdate'));
|
|
}
|
|
setUser((prev) => {
|
|
if (!prev) {
|
|
return prev;
|
|
}
|
|
return {
|
|
...prev,
|
|
...updatedUser
|
|
};
|
|
});
|
|
};
|
|
|
|
return (
|
|
<UserContext.Provider value={{ user: user, updateUser: updateUser }}>
|
|
{children}
|
|
</UserContext.Provider>
|
|
);
|
|
}
|
|
|
|
export default UserProvider;
|