Skip to content

useTableIterator ​

Composable for card/list (iterator) layout components. Wires up item actions, formatting, and the header key map for a single row item in a non-table view.

File: vue/src/js/hooks/table/useTableIterator.js


Props Factory ​

js
import { makeTableIteratorProps } from '@/hooks/table/useTableIterator'
PropTypeDefaultDescription
nameString''Module name used for i18n and permissions
titlePrefixString''Prefix added before the item title
titleKeyString'name'The item property used as the display title
itemObject{}The row data object
headersObject{}Column definitions keyed by column key
iteratorOptionsObject{}Additional iterator display options
rowActionsArray[]Per-item action definitions

Emits ​

EventPayloadDescription
click-action(item, action)Forwarded from itemAction — parent handles the action
edit-item(item)Forwarded from editItem — parent handles the edit

Usage ​

js
import useTableIterator, { makeTableIteratorProps } from '@/hooks/table/useTableIterator'

const props = defineProps(makeTableIteratorProps())
const emit = defineEmits(['click-action', 'edit-item'])

const { headersWithKeys, itemHasAction, formatValue, id } = useTableIterator(props, { emit })

Returns ​

NameTypeDescription
idStringUnique instance ID for the iterator
headersWithKeysComputedRef<Object>Headers object re-keyed by header.key for fast lookup
itemHasAction(action) => BooleanWhether an action should be shown for the current props.item
formatValue(value, header) => anyFormat a cell value using the column's formatter

Notes ​

  • itemAction and editItem emit events upward rather than handling them directly — the parent DataTable or iterator container owns the action logic.
  • useTableIterator is used by card-view and list-view layout components that render each row outside of v-data-table.

See Also ​