UNPKG

react-mui-table

Version:

A react component that takes data & style parameters, and renders a Material UI table.

105 lines (85 loc) 3.08 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _selectn = require('selectn'); var _selectn2 = _interopRequireDefault(_selectn); var _Table = require('material-ui/Table'); var _Avatar = require('material-ui/Avatar'); var _Avatar2 = _interopRequireDefault(_Avatar); var _person = require('material-ui/svg-icons/social/person'); var _person2 = _interopRequireDefault(_person); var _Checkbox = require('material-ui/Checkbox'); var _Checkbox2 = _interopRequireDefault(_Checkbox); var _ActionMenu = require('../ActionMenu'); var _ActionMenu2 = _interopRequireDefault(_ActionMenu); var _styles = require('../MaterialTable/styles'); var _styles2 = _interopRequireDefault(_styles); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var getAvatarSrc = function getAvatarSrc(avatar, item) { if (typeof avatar === 'function') { return avatar(item); } else if (typeof avatar === 'string') { return (0, _selectn2.default)(avatar, item); } return undefined; }; var TableBodyRow = function TableBodyRow(props) { var actions = props.actions, item = props.item, itemUniqueId = props.itemUniqueId, tableIdx = props.tableIdx, avatar = props.avatar, columns = props.columns, displayColumn = props.displayColumn, displayAvatar = props.displayAvatar, handleSelect = props.handleSelect, selections = props.selections, actionsEnabled = props.actionsEnabled; return _react2.default.createElement( _Table.TableRow, props, _react2.default.createElement( _Table.TableRowColumn, { style: _styles2.default.checkboxColumn }, _react2.default.createElement(_Checkbox2.default, { 'data-key': tableIdx, checked: selections[tableIdx], onCheck: handleSelect }) ), avatar && displayAvatar() && _react2.default.createElement( _Table.TableRowColumn, { style: _styles2.default.smallColumn }, _react2.default.createElement(_Avatar2.default, { src: getAvatarSrc(avatar, item), icon: _react2.default.createElement(_person2.default, null) }) ), columns.map(function (column) { if (!displayColumn(column)) return null; var columnValue = (0, _selectn2.default)(column.key, item); if (column.format) { columnValue = column.format(columnValue, item); } return _react2.default.createElement( _Table.TableRowColumn, { key: column.label, colSpan: column.colSpan }, _react2.default.createElement( 'span', null, columnValue || '' ) ); }), actionsEnabled && _react2.default.createElement( _Table.TableRowColumn, { style: _styles2.default.smallColumn }, _react2.default.createElement(_ActionMenu2.default, { actions: actions, item: item, itemId: item[itemUniqueId] }) ) ); }; exports.default = TableBodyRow;