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 (