Files
umami/src/app/(main)/teams/[teamId]/TeamProvider.tsx
2024-02-08 18:44:28 -08:00

30 lines
773 B
TypeScript

'use client';
import { createContext, ReactNode, useEffect } from 'react';
import { useTeam, useModified } from 'components/hooks';
import { Loading } from 'react-basics';
export const TeamContext = createContext(null);
export function TeamProvider({ teamId, children }: { teamId?: string; children: ReactNode }) {
const { modified } = useModified(`teams`);
const { data: team, isLoading, isFetching, refetch } = useTeam(teamId);
useEffect(() => {
if (teamId && modified) {
refetch();
}
}, [teamId, modified]);
if (isFetching && isLoading) {
return <Loading position="page" />;
}
if (teamId && !team) {
return null;
}
return <TeamContext.Provider value={team}>{children}</TeamContext.Provider>;
}
export default TeamProvider;