SettingsTable

PROPS
items: T[]
columns: {key: key of T, title: string, render: (key of T) => jsx.component, sortable: boolean | sortFn, width?: number}[]
primaryAction?: {action: (item: T) => void, label: string, type...}
deleteAction?: {action: (item: T) => void, label: string, type...}
extraActions?: {actim: T) => void, label: string, type...}[]
renderHeader: (visibleItems: T[], allItems: T[]) => jsx.component | string
renderEmptyState: (visibleItems: T[], allItems: T[]) => jsx.component
renderAddButton: (visibleItems: T[], allItems: T[]) => jsx.component
onSearch?: text => T[]
onRowHover?: (event: MouseEvent, item: T) => void

SPEC
renders columns correctly
renders primary action and activates on row click
renders primary action and activates on actions menu
searches items
...