From 7c79b6498528a414a9813eed38a5140a5645c052 Mon Sep 17 00:00:00 2001 From: AllenFang Date: Sun, 20 Jan 2019 14:07:05 +0800 Subject: [PATCH] enhance clear filter story --- .../column-filter/clear-all-filters.js | 34 +++++++++++++++---- .../src/utils/common.js | 1 + 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/packages/react-bootstrap-table2-example/examples/column-filter/clear-all-filters.js b/packages/react-bootstrap-table2-example/examples/column-filter/clear-all-filters.js index e1acb62..3e2a25b 100644 --- a/packages/react-bootstrap-table2-example/examples/column-filter/clear-all-filters.js +++ b/packages/react-bootstrap-table2-example/examples/column-filter/clear-all-filters.js @@ -1,13 +1,14 @@ import React from 'react'; import BootstrapTable from 'react-bootstrap-table-next'; -import filterFactory, { textFilter } from 'react-bootstrap-table2-filter'; +import filterFactory, { textFilter, dateFilter } from 'react-bootstrap-table2-filter'; import Code from 'components/common/code-block'; -import { productsGenerator } from 'utils/common'; +import { stockGenerator } from 'utils/common'; -const products = productsGenerator(8); +const products = stockGenerator(8); let nameFilter; let priceFilter; +let stockDateFilter; const columns = [{ dataField: 'id', @@ -22,25 +23,36 @@ const columns = [{ }) }, { dataField: 'price', - text: 'Product Price', + text: 'Price', filter: textFilter({ getFilter: (filter) => { priceFilter = filter; } }) +}, { + dataField: 'inStockDate', + text: 'InStock Date', + formatter: cell => cell.toString(), + filter: dateFilter({ + getFilter: (filter) => { + stockDateFilter = filter; + } + }) }]; const handleClick = () => { nameFilter(''); priceFilter(''); + stockDateFilter(); }; const sourceCode = `\ import BootstrapTable from 'react-bootstrap-table-next'; -import filterFactory, { textFilter } from 'react-bootstrap-table2-filter'; +import filterFactory, { textFilter, dateFilter } from 'react-bootstrap-table2-filter'; let nameFilter; let priceFilter; +let stockDateFilter; const columns = [{ dataField: 'id', @@ -55,17 +67,27 @@ const columns = [{ }) }, { dataField: 'price', - text: 'Product Price', + text: 'Price', filter: textFilter({ getFilter: (filter) => { priceFilter = filter; } }) +}, { + dataField: 'inStockDate', + text: 'InStock Date', + formatter: cell => cell.toString(), + filter: dateFilter({ + getFilter: (filter) => { + stockDateFilter = filter; + } + }) }]; const handleClick = () => { nameFilter(''); priceFilter(''); + stockDateFilter(); }; export default () => ( diff --git a/packages/react-bootstrap-table2-example/src/utils/common.js b/packages/react-bootstrap-table2-example/src/utils/common.js index a9dff13..67b2f69 100644 --- a/packages/react-bootstrap-table2-example/src/utils/common.js +++ b/packages/react-bootstrap-table2-example/src/utils/common.js @@ -70,6 +70,7 @@ export const stockGenerator = (quantity = 5) => Array.from({ length: quantity }, (value, index) => ({ id: index, name: `Todo item ${index}`, + price: Math.floor((Math.random() * 2) + 1), inStockDate: new Date(startDate.getTime() + Math.random() * (endDate.getTime() - startDate.getTime())) }));