From 80a82707ec8eceeef083d6ff7e33b5af6866c7f9 Mon Sep 17 00:00:00 2001 From: Collins Ikechukwu Date: Fri, 15 May 2026 08:55:41 +0100 Subject: [PATCH] feat(hackathons): add "hidden until results" submission visibility mode 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) --- .../SubmissionVisibilitySettingsTab.tsx | 41 ++++++++++++++----- lib/api/hackathons.ts | 1 + 2 files changed, 32 insertions(+), 10 deletions(-) diff --git a/components/organization/hackathons/settings/SubmissionVisibilitySettingsTab.tsx b/components/organization/hackathons/settings/SubmissionVisibilitySettingsTab.tsx index 8bf72f289..5644e48ad 100644 --- a/components/organization/hackathons/settings/SubmissionVisibilitySettingsTab.tsx +++ b/components/organization/hackathons/settings/SubmissionVisibilitySettingsTab.tsx @@ -47,7 +47,8 @@ export default function SubmissionVisibilitySettingsTab({ resolver: zodResolver(visibilitySettingsSchema), defaultValues: { submissionVisibility: SubmissionVisibility.PUBLIC, - submissionStatusVisibility: SubmissionStatusVisibility.ALL, + submissionStatusVisibility: + SubmissionStatusVisibility.ACCEPTED_SHORTLISTED, }, }); @@ -61,7 +62,7 @@ export default function SubmissionVisibilitySettingsTab({ response.data.submissionVisibility || SubmissionVisibility.PUBLIC, submissionStatusVisibility: response.data.submissionStatusVisibility || - SubmissionStatusVisibility.ALL, + SubmissionStatusVisibility.ACCEPTED_SHORTLISTED, }); } } catch (error) { @@ -181,14 +182,18 @@ export default function SubmissionVisibilitySettingsTab({ -
All Submissions
+
+ Shortlisted only (recommended) +
- Show all projects (accepted, shortlisted, and - rejected). + Submissions stay hidden until you shortlist them. + Disqualified projects are never shown.
@@ -196,17 +201,33 @@ export default function SubmissionVisibilitySettingsTab({
- Accepted/Shortlisted Only + Hidden until results are announced +
+
+ Submissions stay hidden from everyone (except the + participants who made them and your team) until you + publish results. Then only shortlisted projects + appear.
+
+ + + + + + +
All submissions
- Only show projects that have been approved or - shortlisted. + Every submission is visible as soon as it's + made. Disqualified projects are still hidden.
diff --git a/lib/api/hackathons.ts b/lib/api/hackathons.ts index 4adef112d..2a998257d 100644 --- a/lib/api/hackathons.ts +++ b/lib/api/hackathons.ts @@ -32,6 +32,7 @@ export enum SubmissionVisibility { export enum SubmissionStatusVisibility { ALL = 'ALL', ACCEPTED_SHORTLISTED = 'ACCEPTED_SHORTLISTED', + HIDDEN_UNTIL_RESULTS = 'HIDDEN_UNTIL_RESULTS', } export enum VenueType {