Files
pangolin/src/providers/UserProvider.tsx
vlalx d768bb163a I18n additionals (#125)
* New translation keys

* Updates in src/components

* Updates in src/providers

* remove lable in selector, not needed

---------

Co-authored-by: Lokowitz <marvinlokowitz@gmail.com>
2025-06-03 20:10:00 +02:00

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;