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)"}
+
+ );
+ })}