feat: show teams

This commit is contained in:
2025-03-17 19:26:09 +01:00
parent 3441e405a6
commit 054508cf6a
7 changed files with 60 additions and 11 deletions

View File

@@ -5,9 +5,10 @@ import {
useEffect,
useState,
} from "react";
import { currentUser, logout, User } from "./api";
import { apiAuth, currentUser, logout, User } from "./api";
import { Login } from "./Login";
import Header from "./Header";
import { Team } from "./types";
export interface SessionProviderProps {
children: ReactNode;
@@ -15,11 +16,13 @@ export interface SessionProviderProps {
export interface Session {
user: User | null;
teams: Team[] | null;
onLogout: () => void;
}
const sessionContext = createContext<Session>({
user: null,
teams: null,
onLogout: () => {},
});
@@ -27,6 +30,7 @@ export function SessionProvider(props: SessionProviderProps) {
const { children } = props;
const [user, setUser] = useState<User | null>(null);
const [teams, setTeams] = useState<Team[]>();
const [err, setErr] = useState<unknown>(null);
const [loading, setLoading] = useState(false);
@@ -44,8 +48,14 @@ export function SessionProvider(props: SessionProviderProps) {
.finally(() => setLoading(false));
}
async function loadTeam() {
const teams: Team[] = await apiAuth("player/me/teams", null, "GET");
if (teams) setTeams(teams);
}
useEffect(() => {
loadUser();
setTimeout(() => loadTeam(), 1500);
}, []);
function onLogin(user: User) {
@@ -77,7 +87,7 @@ export function SessionProvider(props: SessionProviderProps) {
content = <Login onLogin={onLogin} />;
} else
content = (
<sessionContext.Provider value={{ user, onLogout }}>
<sessionContext.Provider value={{ user, teams, onLogout }}>
{children}
</sessionContext.Provider>
);