feat: calendar display for latest submissions

This commit is contained in:
2025-05-21 14:26:35 +02:00
parent a6dfab47d5
commit 369cf0b727
5 changed files with 306 additions and 5 deletions

View File

@@ -5,7 +5,7 @@ import {
useEffect,
useState,
} from "react";
import { apiAuth, currentUser, logout, User } from "./api";
import { apiAuth, currentUser, loadPlayers, logout, User } from "./api";
import { Login } from "./Login";
import Header from "./Header";
import { Team } from "./types";
@@ -23,6 +23,7 @@ export interface Session {
user: User | null;
teams: TeamState | null;
setTeams: (teams: TeamState) => void;
players: User[] | null;
onLogout: () => void;
}
@@ -30,6 +31,7 @@ const sessionContext = createContext<Session>({
user: null,
teams: null,
setTeams: () => {},
players: null,
onLogout: () => {},
});
@@ -38,6 +40,7 @@ export function SessionProvider(props: SessionProviderProps) {
const [user, setUser] = useState<User | null>(null);
const [teams, setTeams] = useState<TeamState | null>(null);
const [players, setPlayers] = useState<User[] | null>(null);
const [err, setErr] = useState<unknown>(null);
const [loading, setLoading] = useState(false);
@@ -66,6 +69,9 @@ export function SessionProvider(props: SessionProviderProps) {
useEffect(() => {
loadTeam();
}, [user]);
useEffect(() => {
teams && loadPlayers(teams?.activeTeam).then((data) => setPlayers(data));
}, [teams]);
function onLogin(user: User) {
setUser(user);
@@ -96,7 +102,9 @@ export function SessionProvider(props: SessionProviderProps) {
content = <Login onLogin={onLogin} />;
} else
content = (
<sessionContext.Provider value={{ user, teams, setTeams, onLogout }}>
<sessionContext.Provider
value={{ user, teams, setTeams, players, onLogout }}
>
{children}
</sessionContext.Provider>
);