Skip to main content

QuestionDetailView

packages/engagement/components/organisms/QuestionDetailView.js · Tier: organism · Module: engagement · Rendering: Server Component

Purpose​

Renders the body of a civic consultation detail page: banner with status badge, description with a validation-threshold footer, objectives, the consultation period, the voting zone (or a staff / already-voted notice), vote statistics and the staff administration controls. The back button is owned by the page.

Props​

PropTypeRequiredDefaultDescription
questionobjectyes—Consultation payload from the engagement service.
tobjectyes—participation.questionDetail dictionary.
tOtpobjectyes—OTP dictionary (voting flow).
tCertobjectyes—Certificate dictionary (voting flow).
langstringyes—Locale.
staffbooleanyes—User is staff (not a citizen).
canManagebooleanyes—User can manage consultations.
accessTokenstringyes—Auth0 Bearer JWT for the client-side cert verification.

Composition​

  • Uses: molecules/engagement/VotingZone, molecules/engagement/CitizenOnlyNotice, molecules/engagement/QuestionStatusActions, molecules/engagement/EditQuestionButton, molecules/core/AdminSection, atoms/core/Icon.
  • Used by: the consultation detail page.

Internationalisation​

Copy from participation.questionDetail plus the OTP/cert dictionaries.

Accessibility​

Structured sections with headings; citizens get VotingZone, staff get CitizenOnlyNotice / admin actions.

molecules/engagement/VotingZone, organisms/engagement/QuestionsBrowser, organisms/engagement/CreateQuestionForm.