UNPKG

@crave/farmblocks-table

Version:

A component for rendering data tables.

25 lines 905 B
import React, { useCallback } from "react"; import { TR, TD } from "../components.styled"; const defaultCellComponents = {}; const defaultPlaceholders = {}; export default (({ columns, keyProp, rowComponent: Row = TR, cellComponents = defaultCellComponents, placeholders = defaultPlaceholders } = {}) => useCallback((row, index) => /*#__PURE__*/React.createElement(Row, { key: row[keyProp] || index, $rowData: row, $rowIndex: index }, columns.map((columnName, columnIndex) => { const Cell = cellComponents[columnName] || cellComponents.$default || TD; const content = row[columnName] || placeholders[columnName] || placeholders.$default; return /*#__PURE__*/React.createElement(Cell, { key: columnName, $rowData: row, $rowIndex: index, $columnName: columnName, $columnIndex: columnIndex }, content); })), [columns, keyProp, Row, cellComponents, placeholders]));