User Interface medium complexity Shared Component mobile
1
Dependencies
0
Dependents
0
Entities
0
Integrations

Description

A reusable summary screen inserted as the final step of every activity or report wizard. Lists all entered values in a readable table so the user can review before committing. Prevents accidental submissions and supports users who need to double-check their work.

Feature: Cognitive Accessibility

confirm-before-submit-screen

Summaries

The Confirm Before Submit Screen is a critical quality gate that prevents costly data entry mistakes before they reach the backend. By presenting a full, readable summary of everything the user has entered — with the ability to go back and correct any field — the product dramatically reduces erroneous submissions, which otherwise require staff time to investigate and correct. This is especially valuable in activity tracking and reporting contexts where data accuracy is central to the organization's operations. The screen also supports users who need additional review time, reinforcing the product's inclusive design principles and building user trust in the submission process.

Rated medium complexity due to its role as the terminal step in every wizard flow and its dependency on the wizard-progress-indicator component. It must be integrated with each wizard individually, which means delivery effort scales with the number of wizard flows in scope. The buildSummaryRows(fields) function must handle all field types and formats across different wizards, requiring close collaboration with feature teams to enumerate all field schemas. The navigateToStep(stepIndex) deep-link capability requires that wizard navigation state is preserved correctly — this interaction with wizard state management should be tested carefully for each wizard.

No auto-advance behavior is permitted; only explicit user confirmation or edit actions trigger navigation.

ConfirmBeforeSubmitScreen accepts wizardData (Map), onConfirm (VoidCallback), and onEdit (Function(int stepIndex)). buildSummaryRows(fields) transforms the wizardData map into a list of labeled FieldSummaryRow widgets, delegating value formatting to formatFieldValue(key, value), which applies type-aware formatting (dates, numbers, booleans, enums). navigateToStep(stepIndex) invokes the parent wizard's navigation controller to deep-link back to a specific step for corrections while preserving all other entered data. This component depends on wizard-progress-indicator to render the step counter consistently.

The screen intentionally exposes only two actions — Edit and Confirm — enforcing the no-auto-advance constraint at the widget level. Integration tests should cover round-trip edit-and-return scenarios for each wizard type.

Responsibilities

  • Render a human-readable summary of all wizard fields
  • Provide Edit and Confirm actions only — no auto-advance
  • Support deep-linking back to specific wizard steps for corrections

Interfaces

ConfirmBeforeSubmitScreen({wizardData, onConfirm, onEdit})
buildSummaryRows(fields)
navigateToStep(stepIndex)
formatFieldValue(key, value)

Relationships

Dependencies (1)

Components this component depends on