Files
alrahma_web_client/src/pages/flags/flagRowUtils.ts
T
2026-04-25 00:00:10 -04:00

49 lines
1.8 KiB
TypeScript

import { incidentLabel } from './incidentLabels'
import type { IncidentFlagRow, IncidentLogRow } from '../../api/flags'
export function formatIncidentDatetime(iso?: string | null): string {
if (!iso) return ''
const d = new Date(iso)
if (Number.isNaN(d.getTime())) return String(iso)
const mm = String(d.getMonth() + 1).padStart(2, '0')
const dd = String(d.getDate()).padStart(2, '0')
const yyyy = d.getFullYear()
const hh = String(d.getHours()).padStart(2, '0')
const min = String(d.getMinutes()).padStart(2, '0')
return `${mm}-${dd}-${yyyy} ${hh}:${min}`
}
export function lastUpdaterCell(flag: IncidentFlagRow): string {
const st = flag.flag_state
if (st === 'Open') {
return String(flag.updated_by_open_name ?? flag.updated_by_open ?? 'N/A')
}
if (st === 'Closed') {
return String(flag.updated_by_closed_name ?? flag.updated_by_closed ?? 'N/A')
}
if (st === 'Canceled') {
return String(flag.updated_by_canceled_name ?? flag.updated_by_canceled ?? 'N/A')
}
return 'N/A'
}
export function descriptionForFlag(flag: IncidentFlagRow): string {
const st = flag.flag_state
if (st === 'Open') return flag.open_description ?? 'N/A'
if (st === 'Closed') return flag.close_description ?? 'N/A'
if (st === 'Canceled') return flag.cancel_description ?? 'N/A'
return 'N/A'
}
export function descriptionForLog(log: IncidentLogRow): string {
const st = log.flag_state
if (st === 'Open' && log.open_description) return String(log.open_description)
if (st === 'Closed' && log.close_description) return String(log.close_description)
if (st === 'Canceled' && log.cancel_description) return String(log.cancel_description)
return 'N/A'
}
export function incidentTypeLabel(flagKey: string | undefined): string {
return incidentLabel(flagKey)
}