diff --git a/app/components/tournament/InfoBanner.tsx b/app/components/tournament/InfoBanner.tsx index 42b5ac40f..29aee5fa4 100644 --- a/app/components/tournament/InfoBanner.tsx +++ b/app/components/tournament/InfoBanner.tsx @@ -2,6 +2,7 @@ import { Link, useLoaderData, useLocation } from "remix"; import { DiscordIcon } from "~/components/icons/Discord"; import { TwitterIcon } from "~/components/icons/Twitter"; import { resolveTournamentFormatString } from "~/core/tournament/bracket"; +import { tournamentHasStarted } from "~/core/tournament/utils"; import { FindTournamentByNameForUrlI } from "~/services/tournament"; import { getLogInUrl } from "~/utils"; import { useUser } from "~/utils/hooks"; @@ -109,6 +110,31 @@ function InfoBannerActionButton() { const user = useUser(); const location = useLocation(); + const isAlreadyInATeamButNotCaptain = data.teams + .flatMap((team) => team.members) + .filter(({ captain }) => !captain) + .some(({ member }) => member.id === user?.id); + if (isAlreadyInATeamButNotCaptain) return null; + + const alreadyRegistered = data.teams + .flatMap((team) => team.members) + .some(({ member }) => member.id === user?.id); + if (alreadyRegistered) { + return ( + + Manage roster + + ); + } + + if (tournamentHasStarted(data.brackets)) { + return null; + } + if (!user) { return (