/** * The tests are based on tests from types/fixed-data-table */ import * as React from "react"; import { Table, Cell, Column, CellProps } from "fixed-data-table-2"; // create your Table class MyTable1 extends React.Component { render() { return ( // add columns
); } } // create your Columns class MyTable2 extends React.Component { render() { return ( Basic content} width={200} />
); } } // provide Custom Data interface MyTable3State { myTableData: Array<{ name: string }>; } class MyTable3 extends React.Component<{}, MyTable3State> { state = { myTableData: [ { name: "Rylan" }, { name: "Amelia" }, { name: "Estevan" }, { name: "Florence" }, { name: "Tressa" }, ] }; render() { return ( Name} cell={(props) => ( {this.state.myTableData[props.rowIndex].name} )} width={200} />
); } } // Create Reusable Cells interface RowData { [field: string]: string; } interface MyCellProps extends CellProps { field: string; myData: RowData[]; } class MyTextCell extends React.Component { render() { const { rowIndex, field, myData } = this.props; return ( {myData[rowIndex!][field]} ); } } class MyLinkCell extends React.Component { render() { const { rowIndex, field, myData } = this.props; const link: string = myData[rowIndex!][field]; return ( {link} ); } } interface MyTable4State { tableData: RowData[]; } class MyTable4 extends React.Component<{}, MyTable4State> { state = { tableData: [ { name: "Rylan", email: "Angelita_Weimann42@gmail.com" }, { name: "Amelia", email: "Dexter.Trantow57@hotmail.com" }, { name: "Estevan", email: "Aimee7@hotmail.com" }, { name: "Florence", email: "Jarrod.Bernier13@yahoo.com" }, { name: "Tressa", email: "Yadira1@hotmail.com" } ] }; render() { return ( { ["name", "email"].map(field => {field}} cell={ } width={200} /> ) }
); } } // Listen for events class MyTable5 extends React.Component { render() { return ( { }} onScrollEnd={(x: number, y: number) => { }} onContentHeightChange={(newHeight: number) => { }} onRowClick={(event: React.SyntheticEvent
, rowIndex: number) => { }} onRowDoubleClick={(event: React.SyntheticEvent
, rowIndex: number) => { }} onRowMouseDown={(event: React.SyntheticEvent
, rowIndex: number) => { }} onRowMouseEnter={(event: React.SyntheticEvent
, rowIndex: number) => { }} onRowMouseLeave={(event: React.SyntheticEvent
, rowIndex: number) => { }} onColumnResizeEndCallback={(newColumnWidth: number, columnKey: string) => { }}> // add columns
); } }