diff --git a/app/routes/leagues/$leagueId.settings.tsx b/app/routes/leagues/$leagueId.settings.tsx index 4d06100..37e1eaf 100644 --- a/app/routes/leagues/$leagueId.settings.tsx +++ b/app/routes/leagues/$leagueId.settings.tsx @@ -258,6 +258,14 @@ export async function action(args: Route.ActionArgs) { return { error: "Only admins can assign team owners" }; } + // Check if user is already assigned to a team in this season + const teams = await findTeamsBySeasonId(season.id); + const userAlreadyHasTeam = teams.some(team => team.ownerId === userClerkId); + + if (userAlreadyHasTeam) { + return { error: "This user is already assigned to a team in this league" }; + } + try { await assignTeamOwner(teamId, userClerkId); return { success: true, message: "Owner assigned successfully" }; @@ -934,11 +942,20 @@ export default function LeagueSettings({ loaderData, actionData }: Route.Compone - {allUsers.map((user: any) => ( - - {user.displayName || user.username || user.email} - - ))} + {allUsers.map((user: any) => { + // Check if user already owns a team in this league + const userOwnsTeam = teams.some((t: any) => t.ownerId === user.clerkId); + return ( + + {user.username || user.email} + {userOwnsTeam && " (already in league)"} + + ); + })}