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

Description

Date range picker pre-configured with common Bufdir reporting periods (quarterly, annual). Users can also pick a custom date range. Validates that the selected range has recorded activity data.

Feature: Bufdir Report Export

export-period-picker

Summaries

The Export Period Picker simplifies compliance reporting by providing staff with pre-configured Bufdir reporting periods — quarterly and annual — alongside a flexible custom date range option. This directly reduces human error in period selection, a common source of reporting inaccuracies that can affect funding claims and regulatory submissions. Because this component validates the selected range against actual recorded activity data before allowing export, it acts as a built-in quality gate that prevents the submission of empty or incomplete reports. As a shared component reused across multiple export features, it delivers this assurance consistently throughout the application, reducing the cost of maintaining reporting logic.

The Export Period Picker is a low-complexity shared component with no external dependencies, making it one of the lower-risk deliverables in the export pipeline. Its reuse across multiple features means that investing in thorough testing here pays dividends across the entire export workflow. Key test scenarios include preset selection (Q1–Q4 and full year), custom range input validation, and the data availability check that prevents exporting empty periods. Because it is shared, any changes post-release carry a wider blast radius — version carefully and communicate breaking changes to all consuming features.

Its lack of dependencies means it can be developed and tested in isolation early in the sprint, unblocking downstream export flows.

Export Period Picker is a shared mobile UI component that provides both preset and custom date range selection tailored to Bufdir reporting cycles. It exposes build() for initialisation, onPresetSelected(preset) for handling Q1–Q4 and full-year shortcuts, onCustomRangeSelected(start, end) for arbitrary range input, getSelectedPeriod() for retrieving the current selection, and validatePeriod(start, end) for checking whether the range contains recorded activity data. The validation logic should query the relevant activity data layer — ensure this call is async-safe and handles empty-result states gracefully with user-facing feedback. As a shared component consumed by multiple features, its interface must remain stable; prefer additive changes and avoid modifying existing method signatures.

No data model dependencies means it can be unit tested in full isolation.

Responsibilities

  • Display preset period options (Q1–Q4, full year)
  • Allow custom date range selection
  • Validate period against available data

Interfaces

build()
onPresetSelected(preset)
onCustomRangeSelected(start, end)
getSelectedPeriod()
validatePeriod(start, end)

Relationships

Dependents (1)

Components that depend on this component