UNPKG

@appbuckets/react-ui

Version:
78 lines (75 loc) 2 kB
import { __rest, __read, __assign } from 'tslib'; import * as React from 'react'; import clsx from 'clsx'; import { createShorthandFactory, useElementType, childrenUtils, } from '@appbuckets/react-ui-core'; import { useSharedClassName, useSplitStateClassName, } from '../utils/customHook.js'; import '../BucketTheme/BucketTheme.js'; import { useWithDefaultProps } from '../BucketTheme/BucketContext.js'; import TableCell from './TableCell.js'; /* -------- * Component Declare * -------- */ var TableRow = function (receivedProps) { var props = useWithDefaultProps('tableRow', receivedProps); var _a = useSharedClassName(props), className = _a.className, _b = _a.rest, active = _b.active, children = _b.children, cellAs = _b.cellAs, cells = _b.cells; _b.content; var disabled = _b.disabled, selectable = _b.selectable, rawRest = __rest(_b, [ 'active', 'children', 'cellAs', 'cells', 'content', 'disabled', 'selectable', ]); var _c = __read(useSplitStateClassName(rawRest), 2), stateClassName = _c[0], rest = _c[1]; var ElementType = useElementType(TableRow, receivedProps, props); var classes = clsx( { active: active, disabled: disabled, selectable: selectable }, 'row', stateClassName, className ); if (!childrenUtils.isNil(children)) { return React.createElement( ElementType, __assign({}, rest, { className: classes }), children ); } var cellsElements = Array.isArray(cells) && cells.map(function (cell) { return TableCell.create(cell, { autoGenerateKey: true, defaultProps: { as: cellAs }, }); }); return React.createElement( ElementType, __assign({}, rest, { className: classes }), cellsElements ); }; TableRow.displayName = 'TableRow'; TableRow.create = createShorthandFactory(TableRow, function (cells) { return { cells: cells }; }); export { TableRow as default };