/* eslint no-restricted-syntax: 0 */ import React from 'react'; import PropTypes from 'prop-types'; import BootstrapTable from 'react-bootstrap-table-next'; import Code from 'components/common/code-block'; import { productsGenerator } from 'utils/common'; const products = productsGenerator(5); const columns = [{ dataField: 'id', text: 'Product ID' }, { dataField: 'name', text: 'Product Name', sort: true }, { dataField: 'price', text: 'Product Price', sort: true }]; const sourceCode = `\ import BootstrapTable from 'react-bootstrap-table-next'; const columns = [{ dataField: 'id', text: 'Product ID', }, { dataField: 'name', text: 'Product Name', filter: textFilter() }, { dataField: 'price', text: 'Product Price', filter: textFilter() }]; const RemoteSort = props => (
{ sourceCode }
); class Container extends React.Component { constructor(props) { super(props); this.state = { data: products }; } handleTableChange = (type, { sortField, sortOrder, data }) => { setTimeout(() => { let result; if (sortOrder === 'asc') { result = data.sort((a, b) => { if (a[sortField] > b[sortField]) { return 1; } else if (b[sortField] > a[sortField]) { return -1; } return 0; }); } else { result = data.sort((a, b) => { if (a[sortField] > b[sortField]) { return -1; } else if (b[sortField] > a[sortField]) { return 1; } return 0; }); } this.setState(() => ({ data: result })); }, 2000); } render() { return ( ); } } `; const RemoteSort = props => (
{ sourceCode }
); RemoteSort.propTypes = { data: PropTypes.array.isRequired, onTableChange: PropTypes.func.isRequired }; class Container extends React.Component { constructor(props) { super(props); this.state = { data: products }; } handleTableChange = (type, { sortField, sortOrder, data }) => { setTimeout(() => { let result; if (sortOrder === 'asc') { result = data.sort((a, b) => { if (a[sortField] > b[sortField]) { return 1; } else if (b[sortField] > a[sortField]) { return -1; } return 0; }); } else { result = data.sort((a, b) => { if (a[sortField] > b[sortField]) { return -1; } else if (b[sortField] > a[sortField]) { return 1; } return 0; }); } this.setState(() => ({ data: result })); }, 2000); } render() { return ( ); } } export default Container;