@ministryofjustice/hmpps-digital-prison-reporting-frontend
Version:
The Digital Prison Reporting Frontend contains templates and code to help display data effectively in UI applications.
32 lines (25 loc) • 855 B
text/typescript
import { AsyncSummary } from '../../types/UserReports'
import DataTableBuilder from '../DataTableBuilder/DataTableBuilder'
import { DataTable } from '../DataTableBuilder/types'
export default class SummaryDataTableBuilder extends DataTableBuilder {
private summary: AsyncSummary
constructor(summary: AsyncSummary, sections?: Array<string>) {
const columns = summary.fields
.filter((field) => !sections || !sections.includes(field.name))
.map((field) => field.name)
const fields = summary.fields.map((field) => ({
...field,
calculated: false,
sortable: false,
defaultsort: false,
mandatory: true,
visible: true,
}))
super(fields, true)
this.summary = summary
this.columns = columns
}
buildSummaryTable(): DataTable {
return super.buildTable(this.summary.data)
}
}