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
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
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 forentryType(Open / Application (light) / Application (full)) xclaimType(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, forcesubmissionVisibility = 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)
Acceptance criteria
References
boundless-nestjssrc/modules/escrow-contract/integrations/bounty-publish.service.ts