Commit 54c36bf
authored
feat(hackathons): owner submission visibility, team UX, organizer teams page (#552)
Submission visibility on the public submissions tab
- Surface the user's own submission first on the hackathon submissions tab, regardless of submissionStatusVisibility setting. Team members (non-leader) see their team's submission too.
Find Team tab UX
- Stop replacing the whole tab with MyTeamView when the user has a team. Render MyTeamView at the top and the open-teams list below.
- Filter the user's own team out of the "Other Teams" list to avoid duplication.
- Wire the team count badge on the team-formation tab.
Team details
- New /hackathons/[slug]/teams/[teamId] page with team header, members list (clickable links to profiles), roles needed, leader card, and contact card.
- TeamCard click opens the team details page in a new tab.
- MyTeamView team name is now a clickable link to the same page.
- Add useTeam hook + query key.
Organizer submissions page
- Replace raw Buttons on review actions with BoundlessButton (default / outline / destructive) so colors come from the design system.
- Remove the "Before Deadline" gating on the Approve action; backend organizer override now allows it.
Organizer participants page
- Add Solo Participants and Teams metric cards next to the existing Total Participants and Total Submissions cards.
Organizer submissions page
- Add a metric strip with Total / Solo / Team Submissions sourced from the statistics endpoint.
Organizer Teams page (new)
- New route /organizations/[id]/hackathons/[hackathonId]/teams.
- Stats (Total / Open / Submitted / Not submitted), search by team or leader (server-side), status and submission filters (client-side), server-side pagination matching the participants page pattern, click to view team details in a new tab.
- Add "Teams" entry to the existing organizer hackathon sidebar (HackathonSidebar.tsx).
Image fit fixes for cropped logos/banners
- SubmissionCard banner and logo overlay use object-contain (banner was object-cover, cropping wordmarks and tall banners).
- /me/hackathons/submissions: banner, logo overlay, and small table thumbnail all use object-contain.
- ProjectSidebarHeader logo uses object-contain.
Type changes
- lib/api/hackathons/teams.ts Team interface gains optional hasSubmission flag.1 parent 8f1c753 commit 54c36bf
16 files changed
Lines changed: 853 additions & 64 deletions
File tree
- app
- (landing)
- hackathons/[slug]
- components/tabs
- contents
- submissions
- teams
- teams/[teamId]
- organizations/[id]/hackathons/[hackathonId]
- participants
- submissions
- teams
- me/hackathons/submissions
- components
- organization/hackathons
- details
- submissions
- project-details/project-sidebar
- hooks/hackathon
- lib/api/hackathons
Lines changed: 13 additions & 10 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
88 | 88 | | |
89 | 89 | | |
90 | 90 | | |
91 | | - | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
92 | 94 | | |
93 | 95 | | |
94 | 96 | | |
| |||
99 | 101 | | |
100 | 102 | | |
101 | 103 | | |
102 | | - | |
103 | | - | |
104 | | - | |
105 | | - | |
106 | | - | |
107 | | - | |
108 | | - | |
109 | | - | |
110 | 104 | | |
111 | 105 | | |
112 | 106 | | |
| |||
129 | 123 | | |
130 | 124 | | |
131 | 125 | | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
132 | 133 | | |
133 | 134 | | |
134 | | - | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
135 | 138 | | |
136 | 139 | | |
137 | 140 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
94 | 94 | | |
95 | 95 | | |
96 | 96 | | |
97 | | - | |
| 97 | + | |
98 | 98 | | |
99 | 99 | | |
100 | 100 | | |
| |||
Lines changed: 8 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
186 | 186 | | |
187 | 187 | | |
188 | 188 | | |
189 | | - | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
190 | 197 | | |
191 | 198 | | |
192 | 199 | | |
| |||
Lines changed: 32 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
| |||
14 | 15 | | |
15 | 16 | | |
16 | 17 | | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
17 | 28 | | |
18 | 29 | | |
19 | 30 | | |
| |||
32 | 43 | | |
33 | 44 | | |
34 | 45 | | |
35 | | - | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
36 | 58 | | |
37 | 59 | | |
38 | 60 | | |
| |||
70 | 92 | | |
71 | 93 | | |
72 | 94 | | |
73 | | - | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
74 | 99 | | |
75 | 100 | | |
76 | 101 | | |
| |||
81 | 106 | | |
82 | 107 | | |
83 | 108 | | |
84 | | - | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
85 | 113 | | |
86 | 114 | | |
87 | 115 | | |
| |||
Lines changed: 18 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
18 | 21 | | |
19 | 22 | | |
20 | 23 | | |
| |||
46 | 49 | | |
47 | 50 | | |
48 | 51 | | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
49 | 63 | | |
50 | 64 | | |
51 | 65 | | |
| |||
55 | 69 | | |
56 | 70 | | |
57 | 71 | | |
58 | | - | |
59 | | - | |
60 | | - | |
61 | | - | |
62 | 72 | | |
63 | 73 | | |
64 | 74 | | |
| |||
105 | 115 | | |
106 | 116 | | |
107 | 117 | | |
| 118 | + | |
108 | 119 | | |
109 | 120 | | |
110 | 121 | | |
| |||
159 | 170 | | |
160 | 171 | | |
161 | 172 | | |
| 173 | + | |
| 174 | + | |
162 | 175 | | |
163 | 176 | | |
164 | 177 | | |
| |||
0 commit comments