From 51fbb1e8c2fc7f27b8bc723e892ccdd33b1dd6fe Mon Sep 17 00:00:00 2001 From: AllenFang Date: Sun, 12 Apr 2020 14:39:11 +0800 Subject: [PATCH 1/2] fix #1324 --- .../examples/column-filter/filter-hooks.js | 14 +++++++++-- .../react-bootstrap-table2-filter/README.md | 25 +++++++++++++++++++ .../src/context.js | 5 +++- .../src/contexts/index.js | 1 + 4 files changed, 42 insertions(+), 3 deletions(-) diff --git a/packages/react-bootstrap-table2-example/examples/column-filter/filter-hooks.js b/packages/react-bootstrap-table2-example/examples/column-filter/filter-hooks.js index db3b2bf9e..18dc82df2 100644 --- a/packages/react-bootstrap-table2-example/examples/column-filter/filter-hooks.js +++ b/packages/react-bootstrap-table2-example/examples/column-filter/filter-hooks.js @@ -41,16 +41,26 @@ const columns = [{ }) }]; - +function afterFilter(newResult, newFilters) { + console.log(newResult); + console.log(newFilters); +} + + `; +function afterFilter(newResult, newFilters) { + console.log(newResult); + console.log(newFilters); +} + export default () => (
{ sourceCode }
diff --git a/packages/react-bootstrap-table2-filter/README.md b/packages/react-bootstrap-table2-filter/README.md index 7d83e1fb7..697aa9f99 100644 --- a/packages/react-bootstrap-table2-filter/README.md +++ b/packages/react-bootstrap-table2-filter/README.md @@ -361,3 +361,28 @@ Default filter is rendered inside the table column header, but you can choose to filterPosition="bottom" /> ``` + +## Configuration + +`filterFactory` is a factory function for initializing some internal config. Below is available options for `filterFactory`: + +### afterFilter +This hook function will be called with two arguments(new filter result and filter object) when filtering completed. + +```js +function afterFilter(newResult, newFilters) { + console.log(newResult); + console.log(newFilters); +} + +export default () => ( +
+ +
+); +``` \ No newline at end of file diff --git a/packages/react-bootstrap-table2-filter/src/context.js b/packages/react-bootstrap-table2-filter/src/context.js index 64f2d195f..c48779282 100644 --- a/packages/react-bootstrap-table2-filter/src/context.js +++ b/packages/react-bootstrap-table2-filter/src/context.js @@ -95,8 +95,11 @@ export default ( } doFilter(props, ignoreEmitDataChange = false) { - const { dataChangeListener, data, columns } = props; + const { dataChangeListener, data, columns, filter } = props; const result = filters(data, columns, _)(this.currFilters, this.clearFilters); + if (filter.afterFilter) { + filter.afterFilter(result, this.currFilters); + } this.data = result; if (dataChangeListener && !ignoreEmitDataChange) { this.isEmitDataChange = true; diff --git a/packages/react-bootstrap-table2/src/contexts/index.js b/packages/react-bootstrap-table2/src/contexts/index.js index 9ebaaa43c..68c74e086 100644 --- a/packages/react-bootstrap-table2/src/contexts/index.js +++ b/packages/react-bootstrap-table2/src/contexts/index.js @@ -302,6 +302,7 @@ const withContext = Base => { ...baseProps } ref={ n => this.filterContext = n } data={ rootProps.getData() } + filter={ this.props.filter.options || {} } dataChangeListener={ this.props.dataChangeListener } > From 54df96c60fe14b4926a032db5dae3ea1702d8325 Mon Sep 17 00:00:00 2001 From: AllenFang Date: Sun, 12 Apr 2020 14:40:40 +0800 Subject: [PATCH 2/2] fix #1312 --- docs/columns.md | 1 + packages/react-bootstrap-table2/src/cell-event-delegater.js | 3 ++- packages/react-bootstrap-table2/src/row/event-delegater.js | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/columns.md b/docs/columns.md index 5636c26ac..1749b8916 100644 --- a/docs/columns.md +++ b/docs/columns.md @@ -437,6 +437,7 @@ You can assign any [HTML Event](https://www.w3schools.com/tags/ref_eventattribut * onMouseEnter * onMouseLeave * onContextMenu +* onAuxClick ```js { diff --git a/packages/react-bootstrap-table2/src/cell-event-delegater.js b/packages/react-bootstrap-table2/src/cell-event-delegater.js index 689f2c117..62c77c382 100644 --- a/packages/react-bootstrap-table2/src/cell-event-delegater.js +++ b/packages/react-bootstrap-table2/src/cell-event-delegater.js @@ -5,7 +5,8 @@ const events = [ 'onDoubleClick', 'onMouseEnter', 'onMouseLeave', - 'onContextMenu' + 'onContextMenu', + 'onAuxClick' ]; export default ExtendBase => diff --git a/packages/react-bootstrap-table2/src/row/event-delegater.js b/packages/react-bootstrap-table2/src/row/event-delegater.js index a6a1a1f93..d98a0dafd 100644 --- a/packages/react-bootstrap-table2/src/row/event-delegater.js +++ b/packages/react-bootstrap-table2/src/row/event-delegater.js @@ -6,7 +6,8 @@ const events = [ 'onDoubleClick', 'onMouseEnter', 'onMouseLeave', - 'onContextMenu' + 'onContextMenu', + 'onAuxClick' ]; export default ExtendBase =>