Files
client-web/src/components/common/tableActions.ts
T

19 lines
532 B
TypeScript

export interface TableAction {
key: string
label: string
disabled?: boolean
loading?: boolean
run: () => unknown
}
// Callers supply only permitted actions; disabled actions retain their place.
export function splitTableActions(actions: readonly TableAction[]) {
return actions.length > 3
? { visible: actions.slice(0, 2), overflow: actions.slice(2) }
: { visible: actions, overflow: [] }
}
export function runTableAction(action: TableAction) {
if (!action.disabled && !action.loading) return action.run()
}