From 963b8d669bb844e0844fd48f2663f23b1328bfac Mon Sep 17 00:00:00 2001 From: AllenFang Date: Sat, 24 Aug 2019 14:04:49 +0800 Subject: [PATCH] add story and docs for #1067 --- docs/columns.md | 4 + .../examples/search/searchable-column.js | 87 +++++++++++++++++++ .../stories/index.js | 2 + .../react-bootstrap-table2/src/header-cell.js | 3 +- 4 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 packages/react-bootstrap-table2-example/examples/search/searchable-column.js diff --git a/docs/columns.md b/docs/columns.md index 906536e..525ec4d 100644 --- a/docs/columns.md +++ b/docs/columns.md @@ -49,6 +49,7 @@ Available properties in a column object: * [editorRenderer](#editorRenderer) * [filter](#filter) * [filterValue](#filterValue) +* [searchable](#searchable) * [csvType](#csvType) * [csvFormatter](#csvFormatter) * [csvText](#csvText) @@ -917,6 +918,9 @@ A final `String` value you want to be filtered. } ``` +## column.searchable - [Boolean] +Default the column is searchable. Give `false` to disable search functionality on specified column. + ## column.csvType - [Object] Default is `String`. Currently, the available value is `String` and `Number`. If `Number` assigned, the cell value will not wrapped with double quote. diff --git a/packages/react-bootstrap-table2-example/examples/search/searchable-column.js b/packages/react-bootstrap-table2-example/examples/search/searchable-column.js new file mode 100644 index 0000000..dc9b293 --- /dev/null +++ b/packages/react-bootstrap-table2-example/examples/search/searchable-column.js @@ -0,0 +1,87 @@ +/* eslint react/prop-types: 0 */ +import React from 'react'; + +import BootstrapTable from 'react-bootstrap-table-next'; +import ToolkitProvider, { Search } from 'react-bootstrap-table2-toolkit'; +import Code from 'components/common/code-block'; +import { productsGenerator } from 'utils/common'; + +const { SearchBar } = Search; +const products = productsGenerator(); + +const columns = [{ + dataField: 'id', + text: 'Product ID' +}, { + dataField: 'name', + text: 'Product Name', + searchable: false +}, { + dataField: 'price', + text: 'Product Price', + searchable: false +}]; + +const sourceCode = `\ +import BootstrapTable from 'react-bootstrap-table-next'; +import ToolkitProvider, { Search } from 'react-bootstrap-table2-toolkit'; + +const { SearchBar } = Search; +const columns = [{ + dataField: 'id', + text: 'Product ID' +}, { + dataField: 'name', + text: 'Product Name', + searchable: false +}, { + dataField: 'price', + text: 'Product Price', + searchable: false +}]; + + + { + props => ( +
+

Input something at below input field:

+ +
+ +
+ ) + } +
+`; + +export default () => ( +
+ + { + props => ( +
+

Column name and price is unsearchable

+ +
+ +
+ ) + } +
+ { sourceCode } +
+); diff --git a/packages/react-bootstrap-table2-example/stories/index.js b/packages/react-bootstrap-table2-example/stories/index.js index 0dc7196..e9012a5 100644 --- a/packages/react-bootstrap-table2-example/stories/index.js +++ b/packages/react-bootstrap-table2-example/stories/index.js @@ -193,6 +193,7 @@ import DefaultCustomSearch from 'examples/search/default-custom-search'; import FullyCustomSearch from 'examples/search/fully-custom-search'; import SearchFormattedData from 'examples/search/search-formatted'; import CustomSearchValue from 'examples/search/custom-search-value'; +import SearchableColumn from 'examples/search/searchable-column'; // CSV import ExportCSV from 'examples/csv'; @@ -445,6 +446,7 @@ storiesOf('Table Search', module) .add('Clear Search Button', () => ) .add('Default Search Table', () => ) .add('Default Custom Search', () => ) + .add('Searchable Column', () => ) .add('Fully Custom Search', () => ) .add('Search Formatted Value', () => ) .add('Custom Search Value', () => ); diff --git a/packages/react-bootstrap-table2/src/header-cell.js b/packages/react-bootstrap-table2/src/header-cell.js index 18f69c0..f2b5106 100644 --- a/packages/react-bootstrap-table2/src/header-cell.js +++ b/packages/react-bootstrap-table2/src/header-cell.js @@ -161,7 +161,8 @@ HeaderCell.propTypes = { validator: PropTypes.func, filter: PropTypes.object, filterRenderer: PropTypes.func, - filterValue: PropTypes.func + filterValue: PropTypes.func, + searchable: PropTypes.bool }).isRequired, index: PropTypes.number.isRequired, onSort: PropTypes.func,