Skip to content

FE: ModeTab (two-axis picker) + SubmissionModelTab (mode-conditional fields) #599

Description

@0xdevcollins

Context

Part of the Bounty Configure (Host a Bounty) milestone. This is the net-new UI with no hackathon analog: the two-axis mode picker and the mode-conditional submission settings that drive all six combinations. Uses the plain taxonomy (claimType / entryType, see #317).

Tasks

  • components/organization/bounties/new/tabs/ModeTab.tsx: a two-axis picker for entryType (Open / Application (light) / Application (full)) x claimType (Single claim / Competition); for a Competition, let the organizer choose single vs multiple winners (1-3 prize positions). Shows the resulting plain label.
  • components/organization/bounties/new/tabs/SubmissionModelTab.tsx: render fields conditionally per the matrix below. For a Competition, force submissionVisibility = HIDDEN_UNTIL_DEADLINE (read-only).
  • tabs/schemas/modeSchema.ts, tabs/schemas/submissionModelSchema.ts: Zod rules mirroring the backend gate.

Mode -> field matrix (authoritative, from the publish gate)

Field Open + single claim Open + competition App (light) + single claim App (light) + competition App (full) + single claim App (full) + competition
entryType OPEN OPEN APPLICATION_LIGHT APPLICATION_LIGHT APPLICATION_FULL APPLICATION_FULL
claimType SINGLE_CLAIM COMPETITION SINGLE_CLAIM COMPETITION SINGLE_CLAIM COMPETITION
submissionVisibility ORGANIZER_ONLY HIDDEN (forced) ORGANIZER_ONLY HIDDEN (forced) ORGANIZER_ONLY HIDDEN (forced)
reputationMinimum required hidden hidden hidden hidden hidden
applicationWindowCloseAt hidden hidden required required required required
maxApplicants hidden required (>=2) optional optional optional optional
shortlistSize hidden hidden optional required (>=2) optional required (>=2)
submissionDeadline required required required required required required
Prize tiers (winners) 1 1-3 1 1-3 1 1-3

Acceptance criteria

  • Each combination shows / hides the correct fields.
  • The client blocks invalid combinations before publish (parity with the server gate).

References

  • Gate: boundless-nestjs src/modules/escrow-contract/integrations/bounty-publish.service.ts

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions