fosrl.pangolin/src/providers/OrgUserProvider.tsx

45 lines
1 KiB
TypeScript
Raw Normal View History

2024-11-10 21:19:41 -05:00
"use client";
import OrgUserContext from "@app/contexts/orgUserContext";
import { GetOrgUserResponse } from "@server/routers/user";
import { useState } from "react";
interface OrgUserProviderProps {
children: React.ReactNode;
orgUser: GetOrgUserResponse | null;
}
export function OrgUserProvider({
children,
orgUser: serverOrgUser,
}: OrgUserProviderProps) {
const [orgUser, setOrgUser] = useState<GetOrgUserResponse | null>(
serverOrgUser
);
const updateOrgUser = (updateOrgUser: Partial<GetOrgUserResponse>) => {
if (!orgUser) {
throw new Error("No org to update");
}
setOrgUser((prev) => {
if (!prev) {
return prev;
}
return {
...prev,
...updateOrgUser,
};
});
};
return (
<OrgUserContext.Provider value={{ orgUser, updateOrgUser }}>
{children}
</OrgUserContext.Provider>
);
}
export default OrgUserProvider;