Report History List Item Widget
Component Detail
Description
Card widget representing a single past Bufdir report entry. Displays the reporting period, generation timestamp, generating user name, and action controls for re-download and re-export.
report-history-list-item
Summaries
The Report History List Item delivers immediate operational value by giving coordinators and administrators a clear, at-a-glance record of every Bufdir report ever submitted for their organisation. By surfacing the reporting period, who generated it, and when, it eliminates time-consuming manual record-keeping and reduces the risk of duplicate or missed submissions. The built-in re-download and re-export actions mean staff can recover lost files or fulfil auditor requests in seconds rather than raising support tickets, directly lowering administrative overhead and strengthening compliance posture with Bufdir requirements.
This is a low-complexity UI widget with no upstream service dependencies of its own, making it a safe early-sprint deliverable. Development effort is minimal — a single stateless card layout driven by data passed from the parent list. The main scheduling consideration is coordinating completion after the Report History Service and data models are stable, since the widget's fields map directly to the bufdir-report-record schema. Testing scope covers date formatting edge cases, long user names, and responsive rendering on both web and mobile.
No separate deployment step is required beyond the parent feature release.
Implemented as a stateless Flutter widget, Report History List Item receives a bufdir-report-record model via its build(context) constructor and renders period labels using formatPeriodLabel(from, to) and a human-readable timestamp via formatGeneratedAt(timestamp). Re-download triggers onRedownloadTapped(), which should be wired to the parent screen's signed-URL resolver. Re-export emits onReexportTapped() for the parent to delegate to the Report Re-export Coordinator service. No internal state management is needed.
Execution contexts are frontend and mobile, so ensure date formatting utilities handle locale differences and that action callbacks are null-safe for read-only display contexts.
Responsibilities
- Display report period range (from/to dates)
- Show generation date and generating user
- Render re-download link/button
- Emit events for re-export action
Interfaces
build(context)
onRedownloadTapped()
onReexportTapped()
formatPeriodLabel(from, to)
formatGeneratedAt(timestamp)