import { useVegaWallet } from '@vegaprotocol/wallet';
import compact from 'lodash/compact';
import first from 'lodash/first';
import { useTeamsQuery } from './__generated__/Teams';
import { useTeam } from './use-team';
import { useTeams } from './use-teams';
import { areTeamGames, useGames } from './use-games';

export const useMyTeam = () => {
  const { pubKey } = useVegaWallet();
  const { data: teams } = useTeams();

  const { data: maybeMyTeam } = useTeamsQuery({
    variables: {
      partyId: pubKey,
    },
    skip: !pubKey,
    fetchPolicy: 'cache-and-network',
  });

  const team = first(compact(maybeMyTeam?.teams?.edges.map((n) => n.node)));
  const rank = teams.findIndex((t) => t.teamId === team?.teamId) + 1;
  const { stats } = useTeam(team?.teamId);
  const { data: games } = useGames(team?.teamId);

  return { team, stats, games: areTeamGames(games) ? games : undefined, rank };
};