umami/src/app/(main)/teams/[teamId]/TeamProvider.tsx
2024-02-05 23:59:33 -08:00

29 lines
766 B
TypeScript

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