/**
* 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 (
);
}
}
// 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
);
}
}