import React from 'react' import _ from 'lodash' import namor from 'namor' import CodeHighlight from './components/codeHighlight' import ReactTable from '../src/index' export default () => { const data = _.map(_.range(1000), d => { return { firstName: namor.generate({ words: 1, numLen: 0 }), lastName: namor.generate({ words: 1, numLen: 0 }), age: Math.floor(Math.random() * 30), visits: Math.floor(Math.random() * 100) } }) const columns = [{ header: 'Name', columns: [{ header: 'First Name', accessor: 'firstName' }, { header: 'Last Name', id: 'lastName', accessor: d => d.lastName }] }, { header: 'Info', columns: [{ header: 'Age', accessor: 'age', aggregate: vals => _.round(_.mean(vals)), render: row => { return {row.aggregated ? `${row.value} (avg)` : row.value} }, filterMethod: (filter, row) => (filter.value == `${row[filter.id]} (avg)`) }, { header: 'Visits', accessor: 'visits', aggregate: vals => _.sum(vals), hideFilter: true }] }] return (
{ return (
You can put any component you want here, even another React Table!

{ return (
It even has access to the row data: {() => JSON.stringify(row, null, 2)}
) }} />
) }} />

Tip: Hold shift when sorting to multi-sort!
{() => getCode()}
) } function getCode () { return ` const columns = [{ header: 'Name', columns: [{ header: 'First Name', accessor: 'firstName' }, { header: 'Last Name', id: 'lastName', accessor: d => d.lastName }] }, { header: 'Info', columns: [{ header: 'Age', accessor: 'age', aggregate: vals => _.round(_.mean(vals)), render: row => { return {row.aggregated ? \`\${row.value} (avg)\` : row.value} }, filterMethod: (filter, row) => (filter.value == \`\${row[filter.id]} (avg)\`) }, { header: 'Visits', accessor: 'visits', aggregate: vals => _.sum(vals), hideFilter: true }] }] return ( { return (
You can put any component you want here, even another React Table!

{ return (
It even has access to the row data: {() => JSON.stringify(row, null, 2)}
) }} />
) }} /> ) ` }