Skip to content
This repository was archived by the owner on Jan 13, 2022. It is now read-only.

facebookarchive/fixed-data-table

Repository files navigation

Project Status: 🚨 Unmaintained 🚨

This project is no longer maintained. We will not be accepting pull requests, addressing issues, nor making future releases.

Alternatives


Fixed Data Tables for React

FixedDataTable is a React component for building and presenting data in a flexible, powerful way. It supports standard table features, like headers, columns, rows, header groupings, and both fixed-position and scrolling columns.

The table was designed to handle thousands of rows of data without sacrificing performance. Scrolling smoothly is a first-class goal of FixedDataTable and it's architected in a way to allow for flexibility and extensibility.

Features of FixedDataTable:

  • Fixed headers and footer
  • Both fixed and scrollable columns
  • Handling huge amounts of data
  • Variable row heights (with adaptive scroll positions)
  • Column resizing
  • Performant scrolling
  • Customizable styling
  • Jumping to a row or column
  • Controlled scroll API allows touch support

Things the FixedDataTable doesn't do:

  • FixedDataTable does not provide a layout reflow mechanism or calculate content layout information such as width and height of the cell contents. The developer has to provide the layout information to the table instead.
  • FixedDataTable does not handle sorting of data. Instead it allows the developer to supply data getters that can be sort-, filter-, or tail-loading-aware.
  • FixedDataTable does not fetch the data (see above)

Getting started

Install fixed-data-table using npm.

npm install fixed-data-table

Add the default stylesheet dist/fixed-data-table.css, then import it into any module.

Basic Example

importReactfrom'react';importReactDOMfrom'react-dom';import{Table,Column,Cell}from'fixed-data-table';// Table data as a list of array.constrows=[['a1','b1','c1'],['a2','b2','c2'],['a3','b3','c3'],// .... and more];// Render your tableReactDOM.render(<TablerowHeight={50}rowsCount={rows.length}width={5000}height={5000}headerHeight={50}><Columnheader={<Cell>Col 1</Cell>}cell={<Cell>Column 1 static content</Cell>}width={2000}/><Columnheader={<Cell>Col 2</Cell>}cell={<MyCustomCellmySpecialProp="column2"/>}width={1000}/><Columnheader={<Cell>Col 3</Cell>}cell={({rowIndex, ...props})=>(<Cell{...props}> Data for column 3: {rows[rowIndex][2]}</Cell>)}width={2000}/></Table>,document.getElementById('example'));

Contributions

Use GitHub issues for requests.

We actively welcome pull requests; learn how to contribute.

Changelog

Changes are tracked as GitHub releases.

License

FixedDataTable is BSD-licensed. We also provide an additional patent grant.

About

A React table component designed to allow presenting thousands of rows of data.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 41