0.6.5 • Published 5 months ago
@ctablex/core v0.6.5
ctablex
Featureable, flexible and powerful react table. ctablex will not hold you back and let you customize table UI and behavior. ctablex name is the combination of table and ctx (context).
Install
yarn add @ctablex/coreUsage
import React from 'react';
import {
DataTable,
Columns,
Column,
Table,
} from '@ctablex/core';
const data = [
id: '1',
name: 'Gloves',
price: 544,
count: 5,
},
{
id: '2',
name: 'Salad',
price: 601,
count: 6,
},
{
id: '3',
name: 'Keyboard',
price: 116,
count: 1,
},
];
export function MyTable() {
return (
<DataTable data={data}>
<Columns>
<Column header="Name" accessor="name" />
<Column header="Price" accessor="price" />
<Column header="Count" accessor="count" />
</Columns>
<Table />
</DataTable>
);
}The Table component
The Table/TableHeader/HeaderRow/TableBody/Rows/Row components have default children. so when you write <Table />, it's equal to you write the following codes:
<Table>
<TableHeader>
<HeaderRow>
<Columns />
</HeaderRow>
</TableHeader>
<TableBody>
<Rows>
<Row>
<Columns />
</Row>
</Rows>
</TableBody>
</Table>The Columns component
You can assume <Columns /> component somehow renders Columns' children defined in the first part (definition part).
<DataTable data={data}>
<Columns>
{/* begin children definition */}
<Column header="Name" accessor="name" />
<Column header="Price" accessor="price" />
<Column header="Count" accessor="count" />
{/* end children definition */}
</Columns>
<TableBody>
<Rows>
<Row>
<Columns />
</Row>
</Rows>
</TableBody>
</DataTable>is equal to
<DataTable data={data}>
<TableBody>
<Rows>
<Row>
<Column header="Name" accessor="name" />
<Column header="Price" accessor="price" />
<Column header="Count" accessor="count" />
</Row>
</Rows>
</TableBody>
</DataTable>Changelog
Please read the changelog here.
License
This project is licensed under the terms of the Apache License 2.0.