0.4.1 • Published 2 years ago

@ctablex/core v0.4.1

Weekly downloads
15
License
MIT
Repository
github
Last release
2 years ago

ctablex

NPM version NPM downloads codecov

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/core

Usage

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>
  );
}

live demo, source code

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.

0.4.1

2 years ago

0.4.0

2 years ago

0.3.0

3 years ago

0.2.1

4 years ago

0.2.0

4 years ago

0.1.0

4 years ago

0.0.1

4 years ago