aboutsummaryrefslogtreecommitdiff
path: root/src/app/(main)/teams/TeamProvider.tsx
blob: cea416142777851f7c975a071dc29b468d835504 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
'use client';
import { Loading } from '@umami/react-zen';
import { createContext, type ReactNode } from 'react';
import { useTeamQuery } from '@/components/hooks/queries/useTeamQuery';
import type { Team } from '@/generated/prisma/client';

export const TeamContext = createContext<Team>(null);

export function TeamProvider({ teamId, children }: { teamId?: string; children: ReactNode }) {
  const { data: team, isLoading, isFetching } = useTeamQuery(teamId);

  if (isFetching && isLoading) {
    return <Loading placement="absolute" />;
  }

  if (!team) {
    return null;
  }

  return <TeamContext.Provider value={team}>{children}</TeamContext.Provider>;
}