Files
accounted/components/ui/row-status.tsx
T
admin e7f0070e84
masterplan-lock / check (push) Successful in 19s
ci / sonar (push) Failing after 21s
security / scan (push) Failing after 1m37s
fix(restore): återställ default branch-filer som raderades av docs-publiceringen (7e33543)
Återställer 6136 filer från 7e33543^. Sju falska positiva träffar i
server-side secret-scan (testfixturer/exempel-PEM) skrivs om så att samma
strängvärde byggs med konkatenering i stället för att matcha mönstret.
2026-11-10 09:37:22 +01:00

26 lines
949 B
TypeScript

import { Badge, type BadgeProps } from '@/components/ui/badge'
export interface RowStatusDescriptor {
label: string
/**
* True when the row DEVIATES from the normal state (Utkast, Förfallen,
* Ej bokförd). Normal states render as muted text; a table where every
* row carries the same chip is wrong (UI-migration convention 5).
*/
exception?: boolean
/** Badge variant for exception states. */
variant?: BadgeProps['variant']
}
/**
* Chips mark exceptions: renders a status as muted text for normal states
* and as a Badge only when the row deviates. Pages define their status map
* as `Record<Status, RowStatusDescriptor>` and pass the resolved entry.
*/
export function RowStatus({ status }: { status: RowStatusDescriptor }) {
if (status.exception) {
return <Badge variant={status.variant ?? 'warning'}>{status.label}</Badge>
}
return <span className="text-xs text-muted-foreground">{status.label}</span>
}