Skip to content

Commit 7894e8d

Browse files
0xdevcollinsBenjtalkshowclaude
authored
Enhance submissions UX, add judge portal, and update blog features (#556)
* fix(submissions): improve link validation UX, banner display, and error toasts (#547) - Reconcile frontend link types with backend enum (github, demo, video, document, presentation, other) - Allow up to 5 "other" links per submission with smart type-picking on Add Link and duplicate guards on type change - Add 500-character cap and live counter on the optional Introduction field - Pass banner through initialData on submission edit so the saved banner displays - Add banner field to ParticipantSubmission so the type compiles - Set mock-fill participation type from myTeam to avoid INDIVIDUAL submissions while on a team - Switch submission error toasts to title + description with 8s duration so backend messages are readable - Update SubmissionLinksTab icon mapping for the new link types * fix(submissions): correct logo cropping and remove duplicate category badge on submission card (#549) - Logo overlay on banner uses object-contain so wordmark logos are not cropped - Render the category badge once instead of twice on the explore submissions card * feat(blog): add Boundless x Trustless Work hackathon post and fit cover images (#551) - Add content/blog/boundless-launches-first-hackathon-campaign.mdx for the May 13 hackathon launch announcement. - BlogCard and BlogPostDetails cover images use object-contain so the full banner is visible (previously object-cover cropped wider banners). - Update SHARE icons on the blog details page from the old brand color #99FF2D to the current brand primary #2eedaa. * feat(judge): dedicated judge portal, organizer invitations, completeness gate UX (#550) * feat: implement judge portal with submission evaluation, invitations, and score calculation workflows * feat: add countdown banner, support read-only score sliders, and integrate submission disqualification into grading modal --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * feat(hackathons): add "hidden until results" submission visibility mode (#555) Surfaces the new HIDDEN_UNTIL_RESULTS option (added in the nestjs PR) in the organizer settings tab. Reorders the three visibility options so the recommended "Shortlisted only" leads, the new "Hidden until results are announced" sits in the middle, and "All submissions" comes last. Rewrites the copy on the "All submissions" choice that incorrectly claimed disqualified projects would be shown -- they never were on the backend, and Phase 2 makes that an explicit guarantee. Aligns the form's default and API-fallback value with the backend default (ACCEPTED_SHORTLISTED, not ALL) so organizers don't see a misleading initial selection. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent b58a9e6 commit 7894e8d

2 files changed

Lines changed: 32 additions & 10 deletions

File tree

components/organization/hackathons/settings/SubmissionVisibilitySettingsTab.tsx

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ export default function SubmissionVisibilitySettingsTab({
4747
resolver: zodResolver(visibilitySettingsSchema),
4848
defaultValues: {
4949
submissionVisibility: SubmissionVisibility.PUBLIC,
50-
submissionStatusVisibility: SubmissionStatusVisibility.ALL,
50+
submissionStatusVisibility:
51+
SubmissionStatusVisibility.ACCEPTED_SHORTLISTED,
5152
},
5253
});
5354

@@ -61,7 +62,7 @@ export default function SubmissionVisibilitySettingsTab({
6162
response.data.submissionVisibility || SubmissionVisibility.PUBLIC,
6263
submissionStatusVisibility:
6364
response.data.submissionStatusVisibility ||
64-
SubmissionStatusVisibility.ALL,
65+
SubmissionStatusVisibility.ACCEPTED_SHORTLISTED,
6566
});
6667
}
6768
} catch (error) {
@@ -181,32 +182,52 @@ export default function SubmissionVisibilitySettingsTab({
181182
<FormItem className='flex items-center space-y-0 space-x-3 rounded-lg border border-gray-900 p-4'>
182183
<FormControl>
183184
<RadioGroupItem
184-
value={SubmissionStatusVisibility.ALL}
185+
value={
186+
SubmissionStatusVisibility.ACCEPTED_SHORTLISTED
187+
}
185188
/>
186189
</FormControl>
187190
<FormLabel className='cursor-pointer font-normal text-white'>
188-
<div className='font-medium'>All Submissions</div>
191+
<div className='font-medium'>
192+
Shortlisted only (recommended)
193+
</div>
189194
<div className='text-xs text-gray-400'>
190-
Show all projects (accepted, shortlisted, and
191-
rejected).
195+
Submissions stay hidden until you shortlist them.
196+
Disqualified projects are never shown.
192197
</div>
193198
</FormLabel>
194199
</FormItem>
195200
<FormItem className='flex items-center space-y-0 space-x-3 rounded-lg border border-gray-900 p-4'>
196201
<FormControl>
197202
<RadioGroupItem
198203
value={
199-
SubmissionStatusVisibility.ACCEPTED_SHORTLISTED
204+
SubmissionStatusVisibility.HIDDEN_UNTIL_RESULTS
200205
}
201206
/>
202207
</FormControl>
203208
<FormLabel className='cursor-pointer font-normal text-white'>
204209
<div className='font-medium'>
205-
Accepted/Shortlisted Only
210+
Hidden until results are announced
211+
</div>
212+
<div className='text-xs text-gray-400'>
213+
Submissions stay hidden from everyone (except the
214+
participants who made them and your team) until you
215+
publish results. Then only shortlisted projects
216+
appear.
206217
</div>
218+
</FormLabel>
219+
</FormItem>
220+
<FormItem className='flex items-center space-y-0 space-x-3 rounded-lg border border-gray-900 p-4'>
221+
<FormControl>
222+
<RadioGroupItem
223+
value={SubmissionStatusVisibility.ALL}
224+
/>
225+
</FormControl>
226+
<FormLabel className='cursor-pointer font-normal text-white'>
227+
<div className='font-medium'>All submissions</div>
207228
<div className='text-xs text-gray-400'>
208-
Only show projects that have been approved or
209-
shortlisted.
229+
Every submission is visible as soon as it&apos;s
230+
made. Disqualified projects are still hidden.
210231
</div>
211232
</FormLabel>
212233
</FormItem>

lib/api/hackathons.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ export enum SubmissionVisibility {
3232
export enum SubmissionStatusVisibility {
3333
ALL = 'ALL',
3434
ACCEPTED_SHORTLISTED = 'ACCEPTED_SHORTLISTED',
35+
HIDDEN_UNTIL_RESULTS = 'HIDDEN_UNTIL_RESULTS',
3536
}
3637

3738
export enum VenueType {

0 commit comments

Comments
 (0)