feat(teams): hide join/invite options for submitted teams

- Hide "Request to Join" button on browse page for submitted teams
- Hide "Invite Member" and "Join Requests" buttons on team detail for submitted teams
- Change "Submit Project" to "View Submission" for submitted teams
- Rename "Manage Members" to "View Members"
- Hide "Delete Team" for submitted teams

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Maulana Sodiqin
2025-11-29 16:08:05 +07:00
co-authored by Claude
parent 5e65942060
commit a9a1e5450b
3 changed files with 56 additions and 39 deletions
+6 -5
View File
@@ -199,18 +199,18 @@ const BrowseTeamsPage: FC = (): ReactElement => {
</div>
)}
<div className="flex-1 min-w-0">
<div className="flex items-center gap-2">
<h3 className="text-lg font-bold text-gray-900 dark:text-white line-clamp-2 leading-tight">
<div className="flex items-start gap-2">
<h3 className="text-lg font-bold text-gray-900 dark:text-white line-clamp-1 leading-tight flex-1 min-w-0">
{team.name}
</h3>
{team.has_submission && (
<span className="inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-400 shrink-0">
<span className="inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-400 shrink-0 mt-0.5">
<Icon icon="mdi:check-circle" className="text-sm" />
Submitted
</span>
)}
</div>
<div className="text-sm font-sans text-gray-600 dark:text-gray-400 flex gap-2">
<div className="text-sm font-sans text-gray-600 dark:text-gray-400 flex gap-2 mt-1">
<p className="truncate flex-1 min-w-0 flex items-center gap-x-1">
<Icon icon="mdi:map-marker" />{' '}
<span>{team.city}</span>
@@ -237,7 +237,8 @@ const BrowseTeamsPage: FC = (): ReactElement => {
) : (
<>
{myTeams.length === 0 &&
(team.member_count || 0) < 5 && (
(team.member_count || 0) < 5 &&
!team.has_submission && (
<Button
className="w-full"
onClick={() => handleJoinRequest(team.id)}