35 lines
817 B
TypeScript
35 lines
817 B
TypeScript
"use client";
|
|
|
|
import { createContext, useContext, useState, ReactNode } from "react";
|
|
|
|
interface UserInfo {
|
|
firstName: string;
|
|
lastName: string;
|
|
teamName: string;
|
|
}
|
|
|
|
interface UserContextType {
|
|
userInfo: UserInfo | null;
|
|
setUserInfo: (userInfo: UserInfo | null) => void;
|
|
}
|
|
|
|
const UserContext = createContext<UserContextType | undefined>(undefined);
|
|
|
|
export function UserProvider({ children }: { children: ReactNode }) {
|
|
const [userInfo, setUserInfo] = useState<UserInfo | null>(null);
|
|
|
|
return (
|
|
<UserContext.Provider value={{ userInfo, setUserInfo }}>
|
|
{children}
|
|
</UserContext.Provider>
|
|
);
|
|
}
|
|
|
|
export function useUser() {
|
|
const context = useContext(UserContext);
|
|
if (context === undefined) {
|
|
throw new Error("useUser must be used within a UserProvider");
|
|
}
|
|
return context;
|
|
}
|