mirror of
https://github.com/gosticks/react-bootstrap-table2.git
synced 2026-06-28 21:20:04 +00:00
enhance clear filter story
This commit is contained in:
@@ -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 () => (
|
||||
|
||||
@@ -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()))
|
||||
}));
|
||||
|
||||
Reference in New Issue
Block a user