2.0.2 • Published 4 years ago

@trendmicro/react-table v2.0.2

Weekly downloads
415
License
MIT
Repository
github
Last release
4 years ago

react-table build status Coverage Status

NPM

React Table

Demo: https://trendmicro-frontend.github.io/react-table

Version 1.x is no longer maintained by 2019/12/06

Friendly reminder Please migrate to 2+ asap.

Installation

  1. Install the latest version of react and react-table:

    npm install --save react @trendmicro/react-table @trendmicro/react-paginations
  2. At this point you can import @trendmicro/react-table and its styles in your application as follows:

    import TableTemplate, { TableWrapper, TableHeader, TableBody, TableRow, TableCell, TableHeaderCell } from '@trendmicro/react-table';

Usage

Table Template

<TableTemplate
    hoverable
    useFixedHeader
    columns={columns}
    data={data}
    width={500}
/>

Custom render

<TableWrapper
    columns={columns}
    data={data}
    width={800}
    height={320}
>
    {({ cells, data, loader, emptyBody, tableWidth }) => {
        return (
            <Fragment>
                <TableHeader>
                    <TableRow>
                        {
                            cells.map((cell, index) => {
                                const key = `table_header_cell_${index}`;
                                const {
                                    title,
                                    width: cellWidth,
                                } = cell;
                                return (
                                    <TableHeaderCell
                                        key={key}
                                        width={cellWidth}
                                    >
                                        { title }
                                    </TableHeaderCell>
                                );
                            })
                        }
                    </TableRow>
                </TableHeader>
                <TableBody>
                    <Scrollbars
                        style={{
                            width: tableWidth
                        }}
                    >
                        {
                            data.map((row, index) => {
                                const rowKey = `table_row${index}`;
                                return (
                                    <TableRow key={rowKey}>
                                        {
                                            cells.map((cell, index) => {
                                                const key = `${rowKey}_cell${index}`;
                                                const cellValue = _get(row, cell.dataKey);
                                                return (
                                                    <TableCell
                                                        key={key}
                                                        width={cell.width}
                                                    >
                                                        { typeof cell.render === 'function' ? cell.render(cellValue, row, index) : cellValue }
                                                    </TableCell>
                                                );
                                            })
                                        }
                                    </TableRow>
                                );
                            })
                        }
                    </Scrollbars>
                </TableBody>
            </Fragment>
        );
    }}
</TableWrapper>

API

Properties

TableWrapper

NameTypeDefaultDescription
minimalistBooleanfalseSpecify whether the table should not be bordered.
columnsObject[][]The columns config of table, see Column below for details.
dataObject[][]Data record array to be rendered.
emptyRenderFunction() => { return 'No Data'; }Empty content render function.
emptyTextString'No Data'The text when data is null.
heightNumberThe height of the table.
loadingBooleanfalseWhether table is loading.
loaderRenderFunctionLoading content render function.
widthNumber(required)The width of the table.

TableHeaderCell

NameTypeDefaultDescription
widthNumber(required)The width of the table.

TableCell

NameTypeDefaultDescription
widthNumber(required)The width of the table.

TableTemplate

NameTypeDefaultDescription
minimalistBooleanfalseSpecify whether the table should not be bordered.
columnsObject[][]The columns config of table, see Column below for details.
dataObject[][]Data record array to be rendered.
emptyRenderFunction() => { return 'No Data'; }Empty content render function.
emptyTextString'No Data'The text when data is null.
heightNumberThe height of the table.
hideHeaderBooleanfalseWhether table head is hiden.
hoverableBooleanfalseWhether use row hover style.
loadingBooleanfalseWhether table is loading.
loaderRenderFunctionLoading content render function.
useFixedHeaderBooleanfalseWhether table head is fixed.
widthNumber(required)The width of the table.

Column

NameTypeDefaultDescription
titleReact Node or Function(): React NodeTitle of this column.
dataKeyStringDisplay field of the data record.
widthString or Number150Width of the specific proportion calculation according to the width of the columns.
renderFunction(value, record, rowIndex)The render function of cell, has two params: the text of this cell, the record of this row, it's return a react node.

License

MIT

2.0.2

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

1.0.1-alpha.2

6 years ago

1.0.0-alpha.2

6 years ago

1.0.1-alpha.1

6 years ago

1.0.0-alpha.1

6 years ago

1.0.0-alpha

6 years ago

0.9.0

6 years ago

0.8.4

6 years ago

0.8.3

6 years ago

0.8.2

6 years ago

0.7.4

6 years ago

0.8.1

6 years ago

0.8.0

6 years ago

0.7.3

6 years ago

0.7.2

7 years ago

0.7.1

7 years ago

0.7.0

7 years ago

0.6.1

7 years ago

0.5.6

7 years ago

0.5.5

7 years ago

0.5.4

7 years ago

0.5.3

7 years ago

0.5.2

7 years ago

0.5.1

7 years ago

0.5.0

7 years ago

0.4.9

7 years ago

0.4.8

7 years ago

0.4.7

7 years ago

0.4.6

7 years ago

0.4.5

7 years ago

0.4.3

7 years ago

0.4.2

7 years ago

0.4.1

7 years ago

0.4.0

7 years ago

0.3.9

7 years ago

0.3.8

7 years ago

0.3.7

7 years ago

0.3.6

7 years ago

0.3.4

7 years ago

0.3.3

7 years ago

0.3.2

7 years ago

0.3.1

7 years ago

0.3.0

7 years ago

0.2.2

7 years ago

0.2.1

7 years ago

0.2.0

7 years ago

0.1.0

7 years ago