diff --git a/.claude/settings.local.json b/.claude/settings.local.json
index db48442..2ae7a49 100644
--- a/.claude/settings.local.json
+++ b/.claude/settings.local.json
@@ -11,7 +11,9 @@
"Bash(ren:*)",
"Bash(npx supabase:*)",
"Bash(libs/service/src/types/supabase.ts)",
- "Bash(npx nx build:*)"
+ "Bash(npx nx build:*)",
+ "Bash(git add:*)",
+ "Bash(git commit:*)"
],
"deny": [],
"ask": []
diff --git a/apps/hackathon/src/app/teams/[teamId]/page.tsx b/apps/hackathon/src/app/teams/[teamId]/page.tsx
index 572f495..6d46602 100644
--- a/apps/hackathon/src/app/teams/[teamId]/page.tsx
+++ b/apps/hackathon/src/app/teams/[teamId]/page.tsx
@@ -369,29 +369,34 @@ const TeamDashboardPage: FC = (): ReactElement => {
Team Management
- setShowInviteModal(true)}
- disabled={!canInvite}
- >
-
- Invite Member{' '}
- {!canInvite && `(${members.length}/${MAX_TEAM_MEMBERS})`}
-
- setShowJoinRequestsModal(true)}
- >
- Join
- Requests
- {pendingJoinRequests.length > 0 && (
-
- {pendingJoinRequests.length}
-
- )}
-
+ {/* Hide invite/join management after submission */}
+ {!team.has_submission && (
+ <>
+ setShowInviteModal(true)}
+ disabled={!canInvite}
+ >
+
+ Invite Member{' '}
+ {!canInvite && `(${members.length}/${MAX_TEAM_MEMBERS})`}
+
+ setShowJoinRequestsModal(true)}
+ >
+ Join
+ Requests
+ {pendingJoinRequests.length > 0 && (
+
+ {pendingJoinRequests.length}
+
+ )}
+
+ >
+ )}
@@ -404,7 +409,7 @@ const TeamDashboardPage: FC = (): ReactElement => {
icon="mdi:account-group"
className="inline-block mr-2"
/>
- Manage Members
+ View Members
@@ -413,20 +418,29 @@ const TeamDashboardPage: FC = (): ReactElement => {
Team Chat
-
-
-
- Submit Project
-
-
+ {team.has_submission ? (
+
+
+
+ View Submission
+
+
+ ) : (
+
+
+
+ Submit Project
+
+
+ )}
- {!canInvite && members.length >= MAX_TEAM_MEMBERS && (
+ {!team.has_submission && !canInvite && members.length >= MAX_TEAM_MEMBERS && (
Maximum team size reached ({MAX_TEAM_MEMBERS} members)
)}
- {/* Danger Zone - Only show when leader is alone */}
- {members.length === 1 && (
+ {/* Danger Zone - Only show when leader is alone and no submission */}
+ {members.length === 1 && !team.has_submission && (
Danger Zone
diff --git a/apps/hackathon/src/app/teams/browse/page.tsx b/apps/hackathon/src/app/teams/browse/page.tsx
index 688a5f1..8fef126 100644
--- a/apps/hackathon/src/app/teams/browse/page.tsx
+++ b/apps/hackathon/src/app/teams/browse/page.tsx
@@ -199,18 +199,18 @@ const BrowseTeamsPage: FC = (): ReactElement => {
)}
-
-
+
+
{team.name}
{team.has_submission && (
-
+
Submitted
)}
-
+
{' '}
{team.city}
@@ -237,7 +237,8 @@ const BrowseTeamsPage: FC = (): ReactElement => {
) : (
<>
{myTeams.length === 0 &&
- (team.member_count || 0) < 5 && (
+ (team.member_count || 0) < 5 &&
+ !team.has_submission && (
handleJoinRequest(team.id)}