From 51ca4dd55f48463a1c5cd7871678d6e8ab83dea6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Maneiro?= <583546+oandregal@users.noreply.github.com> Date: Tue, 7 Nov 2023 19:05:36 +0100 Subject: [PATCH 1/7] Add reset filters button --- .../src/components/dataviews/filters.js | 12 ++++++++-- .../src/components/dataviews/reset-filters.js | 22 +++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 packages/edit-site/src/components/dataviews/reset-filters.js diff --git a/packages/edit-site/src/components/dataviews/filters.js b/packages/edit-site/src/components/dataviews/filters.js index 655bd83732293..3eb5314d0d5df 100644 --- a/packages/edit-site/src/components/dataviews/filters.js +++ b/packages/edit-site/src/components/dataviews/filters.js @@ -7,6 +7,8 @@ import { __ } from '@wordpress/i18n'; * Internal dependencies */ import { default as InFilter, OPERATOR_IN } from './in-filter'; +import ResetFilters from './reset-filters'; + const VALID_OPERATORS = [ OPERATOR_IN ]; export default function Filters( { fields, view, onChangeView } ) { @@ -34,7 +36,7 @@ export default function Filters( { fields, view, onChangeView } ) { } ); } ); - return view.visibleFilters?.map( ( fieldName ) => { + const visibleFilters = view.visibleFilters?.map( ( fieldName ) => { const visibleFiltersForField = filtersRegistered.filter( ( f ) => f.field === fieldName ); @@ -56,5 +58,11 @@ export default function Filters( { fields, view, onChangeView } ) { } return null; } ); - } ); + } ).filter( Boolean ); + + if ( visibleFilters.length > 0 ) { + visibleFilters.push( ); + } + + return visibleFilters; } diff --git a/packages/edit-site/src/components/dataviews/reset-filters.js b/packages/edit-site/src/components/dataviews/reset-filters.js new file mode 100644 index 0000000000000..ed7c6b97ee90a --- /dev/null +++ b/packages/edit-site/src/components/dataviews/reset-filters.js @@ -0,0 +1,22 @@ +/** + * WordPress dependencies + */ +import { Button } from '@wordpress/components'; +import { __ } from '@wordpress/i18n'; + +export default ( { onChangeView } ) => { + return ( + + ); +}; From f7f69376cf3d7de9d9ccd6547a604c98e566be06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Maneiro?= <583546+oandregal@users.noreply.github.com> Date: Wed, 8 Nov 2023 08:55:47 +0100 Subject: [PATCH 2/7] Set proper spacing/alignment for control --- .../src/components/dataviews/reset-filters.js | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/packages/edit-site/src/components/dataviews/reset-filters.js b/packages/edit-site/src/components/dataviews/reset-filters.js index ed7c6b97ee90a..b956ee07a09c8 100644 --- a/packages/edit-site/src/components/dataviews/reset-filters.js +++ b/packages/edit-site/src/components/dataviews/reset-filters.js @@ -1,22 +1,24 @@ /** * WordPress dependencies */ -import { Button } from '@wordpress/components'; +import { BaseControl, Button } from '@wordpress/components'; import { __ } from '@wordpress/i18n'; export default ( { onChangeView } ) => { return ( - + + + ); }; From 26c276f236371924520fd36bad6a609dff0d5fc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Maneiro?= <583546+oandregal@users.noreply.github.com> Date: Wed, 8 Nov 2023 10:23:56 +0100 Subject: [PATCH 3/7] Fix lint --- .../src/components/dataviews/filters.js | 44 ++++++++++--------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/packages/edit-site/src/components/dataviews/filters.js b/packages/edit-site/src/components/dataviews/filters.js index 3eb5314d0d5df..32e3377bf1863 100644 --- a/packages/edit-site/src/components/dataviews/filters.js +++ b/packages/edit-site/src/components/dataviews/filters.js @@ -36,29 +36,31 @@ export default function Filters( { fields, view, onChangeView } ) { } ); } ); - const visibleFilters = view.visibleFilters?.map( ( fieldName ) => { - const visibleFiltersForField = filtersRegistered.filter( - ( f ) => f.field === fieldName - ); + const visibleFilters = view.visibleFilters + ?.map( ( fieldName ) => { + const visibleFiltersForField = filtersRegistered.filter( + ( f ) => f.field === fieldName + ); - if ( visibleFiltersForField.length === 0 ) { - return null; - } - - return visibleFiltersForField.map( ( filter ) => { - if ( OPERATOR_IN === filter.operator ) { - return ( - - ); + if ( visibleFiltersForField.length === 0 ) { + return null; } - return null; - } ); - } ).filter( Boolean ); + + return visibleFiltersForField.map( ( filter ) => { + if ( OPERATOR_IN === filter.operator ) { + return ( + + ); + } + return null; + } ); + } ) + .filter( Boolean ); if ( visibleFilters.length > 0 ) { visibleFilters.push( ); From d78c2b252a7c55d0c9099d5f36c7a50419918216 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Maneiro?= <583546+oandregal@users.noreply.github.com> Date: Wed, 8 Nov 2023 11:17:42 +0100 Subject: [PATCH 4/7] Also reset search --- packages/edit-site/src/components/dataviews/reset-filters.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/edit-site/src/components/dataviews/reset-filters.js b/packages/edit-site/src/components/dataviews/reset-filters.js index b956ee07a09c8..088fbe9a5b02e 100644 --- a/packages/edit-site/src/components/dataviews/reset-filters.js +++ b/packages/edit-site/src/components/dataviews/reset-filters.js @@ -13,6 +13,7 @@ export default ( { onChangeView } ) => { onChangeView( ( currentView ) => ( { ...currentView, page: 1, + search: '', filters: [], } ) ); } } From ec9547f09cfaf1dc70909ea6e47b3c2586ffee31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Maneiro?= <583546+oandregal@users.noreply.github.com> Date: Wed, 8 Nov 2023 11:23:15 +0100 Subject: [PATCH 5/7] Disable reset button if no filters active --- packages/edit-site/src/components/dataviews/filters.js | 4 +++- packages/edit-site/src/components/dataviews/reset-filters.js | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/edit-site/src/components/dataviews/filters.js b/packages/edit-site/src/components/dataviews/filters.js index 32e3377bf1863..c14c257ac5322 100644 --- a/packages/edit-site/src/components/dataviews/filters.js +++ b/packages/edit-site/src/components/dataviews/filters.js @@ -63,7 +63,9 @@ export default function Filters( { fields, view, onChangeView } ) { .filter( Boolean ); if ( visibleFilters.length > 0 ) { - visibleFilters.push( ); + visibleFilters.push( + + ); } return visibleFilters; diff --git a/packages/edit-site/src/components/dataviews/reset-filters.js b/packages/edit-site/src/components/dataviews/reset-filters.js index 088fbe9a5b02e..68b5c17590c97 100644 --- a/packages/edit-site/src/components/dataviews/reset-filters.js +++ b/packages/edit-site/src/components/dataviews/reset-filters.js @@ -4,10 +4,11 @@ import { BaseControl, Button } from '@wordpress/components'; import { __ } from '@wordpress/i18n'; -export default ( { onChangeView } ) => { +export default ( { view, onChangeView } ) => { return (