Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move filter UI into a toggle-able panel to improve experience on narrow viewports/containers #63203

Conversation

jorgefilipecosta
Copy link
Member

Fixes: #60696

Adds a button to toggle the filter visibility. The button also shows the number of filters applied on the corner.

Screenshot

Screenshot 2024-07-05 at 17 54 22 Screenshot 2024-07-05 at 17 54 12

Testing Instructions

I verified a button to toggle the filter visibility was available and worked as expected.
I verified that the count shown on the button matched the number of filters enabled and if there are no filters, the count is not shown.

@jorgefilipecosta jorgefilipecosta added the [Type] Enhancement A suggestion for improvement. label Jul 5, 2024
Copy link

github-actions bot commented Jul 5, 2024

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: jorgefilipecosta <jorgefilipecosta@git.wordpress.org>
Co-authored-by: ntsekouras <ntsekouras@git.wordpress.org>
Co-authored-by: jameskoster <jameskoster@git.wordpress.org>
Co-authored-by: youknowriad <youknowriad@git.wordpress.org>
Co-authored-by: jasmussen <joen@git.wordpress.org>
Co-authored-by: SaxonF <saxonafletcher@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

Copy link

github-actions bot commented Jul 5, 2024

Size Change: +725 B (+0.04%)

Total Size: 1.77 MB

Filename Size Change
build/edit-site/index.min.js 215 kB +273 B (+0.13%)
build/edit-site/posts-rtl.css 6.96 kB +116 B (+1.7%)
build/edit-site/posts.css 6.97 kB +115 B (+1.68%)
build/edit-site/style-rtl.css 12.3 kB +109 B (+0.89%)
build/edit-site/style.css 12.3 kB +112 B (+0.92%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 951 B
build/annotations/index.min.js 2.26 kB
build/api-fetch/index.min.js 2.31 kB
build/autop/index.min.js 2.12 kB
build/blob/index.min.js 579 B
build/block-directory/index.min.js 7.29 kB
build/block-directory/style-rtl.css 1.01 kB
build/block-directory/style.css 1.01 kB
build/block-editor/content-rtl.css 4.56 kB
build/block-editor/content.css 4.56 kB
build/block-editor/default-editor-styles-rtl.css 394 B
build/block-editor/default-editor-styles.css 394 B
build/block-editor/index.min.js 255 kB
build/block-editor/style-rtl.css 16.3 kB
build/block-editor/style.css 16.3 kB
build/block-library/blocks/archives/editor-rtl.css 61 B
build/block-library/blocks/archives/editor.css 60 B
build/block-library/blocks/archives/style-rtl.css 90 B
build/block-library/blocks/archives/style.css 90 B
build/block-library/blocks/audio/editor-rtl.css 149 B
build/block-library/blocks/audio/editor.css 151 B
build/block-library/blocks/audio/style-rtl.css 132 B
build/block-library/blocks/audio/style.css 132 B
build/block-library/blocks/audio/theme-rtl.css 134 B
build/block-library/blocks/audio/theme.css 134 B
build/block-library/blocks/avatar/editor-rtl.css 115 B
build/block-library/blocks/avatar/editor.css 115 B
build/block-library/blocks/avatar/style-rtl.css 104 B
build/block-library/blocks/avatar/style.css 104 B
build/block-library/blocks/button/editor-rtl.css 310 B
build/block-library/blocks/button/editor.css 310 B
build/block-library/blocks/button/style-rtl.css 538 B
build/block-library/blocks/button/style.css 538 B
build/block-library/blocks/buttons/editor-rtl.css 336 B
build/block-library/blocks/buttons/editor.css 336 B
build/block-library/blocks/buttons/style-rtl.css 328 B
build/block-library/blocks/buttons/style.css 328 B
build/block-library/blocks/calendar/style-rtl.css 240 B
build/block-library/blocks/calendar/style.css 240 B
build/block-library/blocks/categories/editor-rtl.css 132 B
build/block-library/blocks/categories/editor.css 131 B
build/block-library/blocks/categories/style-rtl.css 152 B
build/block-library/blocks/categories/style.css 152 B
build/block-library/blocks/code/editor-rtl.css 53 B
build/block-library/blocks/code/editor.css 53 B
build/block-library/blocks/code/style-rtl.css 121 B
build/block-library/blocks/code/style.css 121 B
build/block-library/blocks/code/theme-rtl.css 122 B
build/block-library/blocks/code/theme.css 122 B
build/block-library/blocks/columns/editor-rtl.css 108 B
build/block-library/blocks/columns/editor.css 108 B
build/block-library/blocks/columns/style-rtl.css 420 B
build/block-library/blocks/columns/style.css 420 B
build/block-library/blocks/comment-author-avatar/editor-rtl.css 124 B
build/block-library/blocks/comment-author-avatar/editor.css 124 B
build/block-library/blocks/comment-content/style-rtl.css 90 B
build/block-library/blocks/comment-content/style.css 90 B
build/block-library/blocks/comment-template/style-rtl.css 200 B
build/block-library/blocks/comment-template/style.css 199 B
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/comments-pagination-numbers/editor.css 121 B
build/block-library/blocks/comments-pagination/editor-rtl.css 221 B
build/block-library/blocks/comments-pagination/editor.css 211 B
build/block-library/blocks/comments-pagination/style-rtl.css 234 B
build/block-library/blocks/comments-pagination/style.css 231 B
build/block-library/blocks/comments-title/editor-rtl.css 75 B
build/block-library/blocks/comments-title/editor.css 75 B
build/block-library/blocks/comments/editor-rtl.css 832 B
build/block-library/blocks/comments/editor.css 832 B
build/block-library/blocks/comments/style-rtl.css 632 B
build/block-library/blocks/comments/style.css 631 B
build/block-library/blocks/cover/editor-rtl.css 668 B
build/block-library/blocks/cover/editor.css 669 B
build/block-library/blocks/cover/style-rtl.css 1.62 kB
build/block-library/blocks/cover/style.css 1.6 kB
build/block-library/blocks/details/editor-rtl.css 65 B
build/block-library/blocks/details/editor.css 65 B
build/block-library/blocks/details/style-rtl.css 86 B
build/block-library/blocks/details/style.css 86 B
build/block-library/blocks/embed/editor-rtl.css 314 B
build/block-library/blocks/embed/editor.css 314 B
build/block-library/blocks/embed/style-rtl.css 419 B
build/block-library/blocks/embed/style.css 419 B
build/block-library/blocks/embed/theme-rtl.css 133 B
build/block-library/blocks/embed/theme.css 133 B
build/block-library/blocks/file/editor-rtl.css 326 B
build/block-library/blocks/file/editor.css 326 B
build/block-library/blocks/file/style-rtl.css 278 B
build/block-library/blocks/file/style.css 279 B
build/block-library/blocks/file/view.min.js 324 B
build/block-library/blocks/footnotes/style-rtl.css 198 B
build/block-library/blocks/footnotes/style.css 197 B
build/block-library/blocks/form-input/editor-rtl.css 229 B
build/block-library/blocks/form-input/editor.css 229 B
build/block-library/blocks/form-input/style-rtl.css 342 B
build/block-library/blocks/form-input/style.css 342 B
build/block-library/blocks/form-submission-notification/editor-rtl.css 344 B
build/block-library/blocks/form-submission-notification/editor.css 341 B
build/block-library/blocks/form-submit-button/style-rtl.css 69 B
build/block-library/blocks/form-submit-button/style.css 69 B
build/block-library/blocks/form/view.min.js 470 B
build/block-library/blocks/freeform/editor-rtl.css 2.6 kB
build/block-library/blocks/freeform/editor.css 2.6 kB
build/block-library/blocks/gallery/editor-rtl.css 955 B
build/block-library/blocks/gallery/editor.css 958 B
build/block-library/blocks/gallery/style-rtl.css 1.71 kB
build/block-library/blocks/gallery/style.css 1.71 kB
build/block-library/blocks/gallery/theme-rtl.css 108 B
build/block-library/blocks/gallery/theme.css 108 B
build/block-library/blocks/group/editor-rtl.css 344 B
build/block-library/blocks/group/editor.css 344 B
build/block-library/blocks/group/style-rtl.css 103 B
build/block-library/blocks/group/style.css 103 B
build/block-library/blocks/group/theme-rtl.css 79 B
build/block-library/blocks/group/theme.css 79 B
build/block-library/blocks/heading/style-rtl.css 188 B
build/block-library/blocks/heading/style.css 188 B
build/block-library/blocks/html/editor-rtl.css 346 B
build/block-library/blocks/html/editor.css 347 B
build/block-library/blocks/image/editor-rtl.css 894 B
build/block-library/blocks/image/editor.css 892 B
build/block-library/blocks/image/style-rtl.css 1.59 kB
build/block-library/blocks/image/style.css 1.59 kB
build/block-library/blocks/image/theme-rtl.css 137 B
build/block-library/blocks/image/theme.css 137 B
build/block-library/blocks/image/view.min.js 1.65 kB
build/block-library/blocks/latest-comments/style-rtl.css 355 B
build/block-library/blocks/latest-comments/style.css 354 B
build/block-library/blocks/latest-posts/editor-rtl.css 186 B
build/block-library/blocks/latest-posts/editor.css 183 B
build/block-library/blocks/latest-posts/style-rtl.css 509 B
build/block-library/blocks/latest-posts/style.css 510 B
build/block-library/blocks/list/style-rtl.css 107 B
build/block-library/blocks/list/style.css 107 B
build/block-library/blocks/loginout/style-rtl.css 61 B
build/block-library/blocks/loginout/style.css 61 B
build/block-library/blocks/media-text/editor-rtl.css 304 B
build/block-library/blocks/media-text/editor.css 303 B
build/block-library/blocks/media-text/style-rtl.css 516 B
build/block-library/blocks/media-text/style.css 515 B
build/block-library/blocks/more/editor-rtl.css 427 B
build/block-library/blocks/more/editor.css 427 B
build/block-library/blocks/navigation-link/editor-rtl.css 663 B
build/block-library/blocks/navigation-link/editor.css 664 B
build/block-library/blocks/navigation-link/style-rtl.css 192 B
build/block-library/blocks/navigation-link/style.css 191 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 295 B
build/block-library/blocks/navigation-submenu/editor.css 294 B
build/block-library/blocks/navigation/editor-rtl.css 2.18 kB
build/block-library/blocks/navigation/editor.css 2.19 kB
build/block-library/blocks/navigation/style-rtl.css 2.25 kB
build/block-library/blocks/navigation/style.css 2.23 kB
build/block-library/blocks/navigation/view.min.js 1.03 kB
build/block-library/blocks/nextpage/editor-rtl.css 392 B
build/block-library/blocks/nextpage/editor.css 392 B
build/block-library/blocks/page-list/editor-rtl.css 378 B
build/block-library/blocks/page-list/editor.css 378 B
build/block-library/blocks/page-list/style-rtl.css 175 B
build/block-library/blocks/page-list/style.css 175 B
build/block-library/blocks/paragraph/editor-rtl.css 236 B
build/block-library/blocks/paragraph/editor.css 236 B
build/block-library/blocks/paragraph/style-rtl.css 341 B
build/block-library/blocks/paragraph/style.css 340 B
build/block-library/blocks/post-author/style-rtl.css 175 B
build/block-library/blocks/post-author/style.css 176 B
build/block-library/blocks/post-comments-form/editor-rtl.css 96 B
build/block-library/blocks/post-comments-form/editor.css 96 B
build/block-library/blocks/post-comments-form/style-rtl.css 527 B
build/block-library/blocks/post-comments-form/style.css 528 B
build/block-library/blocks/post-content/editor-rtl.css 74 B
build/block-library/blocks/post-content/editor.css 74 B
build/block-library/blocks/post-content/style-rtl.css 79 B
build/block-library/blocks/post-content/style.css 79 B
build/block-library/blocks/post-date/style-rtl.css 62 B
build/block-library/blocks/post-date/style.css 62 B
build/block-library/blocks/post-excerpt/editor-rtl.css 71 B
build/block-library/blocks/post-excerpt/editor.css 71 B
build/block-library/blocks/post-excerpt/style-rtl.css 155 B
build/block-library/blocks/post-excerpt/style.css 155 B
build/block-library/blocks/post-featured-image/editor-rtl.css 729 B
build/block-library/blocks/post-featured-image/editor.css 726 B
build/block-library/blocks/post-featured-image/style-rtl.css 341 B
build/block-library/blocks/post-featured-image/style.css 341 B
build/block-library/blocks/post-navigation-link/style-rtl.css 215 B
build/block-library/blocks/post-navigation-link/style.css 214 B
build/block-library/blocks/post-template/editor-rtl.css 99 B
build/block-library/blocks/post-template/editor.css 98 B
build/block-library/blocks/post-template/style-rtl.css 399 B
build/block-library/blocks/post-template/style.css 398 B
build/block-library/blocks/post-terms/style-rtl.css 96 B
build/block-library/blocks/post-terms/style.css 96 B
build/block-library/blocks/post-time-to-read/style-rtl.css 70 B
build/block-library/blocks/post-time-to-read/style.css 70 B
build/block-library/blocks/post-title/style-rtl.css 100 B
build/block-library/blocks/post-title/style.css 100 B
build/block-library/blocks/preformatted/style-rtl.css 125 B
build/block-library/blocks/preformatted/style.css 125 B
build/block-library/blocks/pullquote/editor-rtl.css 134 B
build/block-library/blocks/pullquote/editor.css 134 B
build/block-library/blocks/pullquote/style-rtl.css 342 B
build/block-library/blocks/pullquote/style.css 342 B
build/block-library/blocks/pullquote/theme-rtl.css 167 B
build/block-library/blocks/pullquote/theme.css 167 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 121 B
build/block-library/blocks/query-pagination-numbers/editor.css 118 B
build/block-library/blocks/query-pagination/editor-rtl.css 220 B
build/block-library/blocks/query-pagination/editor.css 208 B
build/block-library/blocks/query-pagination/style-rtl.css 287 B
build/block-library/blocks/query-pagination/style.css 283 B
build/block-library/blocks/query-title/style-rtl.css 64 B
build/block-library/blocks/query-title/style.css 64 B
build/block-library/blocks/query/editor-rtl.css 452 B
build/block-library/blocks/query/editor.css 451 B
build/block-library/blocks/query/view.min.js 958 B
build/block-library/blocks/quote/style-rtl.css 238 B
build/block-library/blocks/quote/style.css 238 B
build/block-library/blocks/quote/theme-rtl.css 221 B
build/block-library/blocks/quote/theme.css 225 B
build/block-library/blocks/read-more/style-rtl.css 138 B
build/block-library/blocks/read-more/style.css 138 B
build/block-library/blocks/rss/editor-rtl.css 101 B
build/block-library/blocks/rss/editor.css 101 B
build/block-library/blocks/rss/style-rtl.css 288 B
build/block-library/blocks/rss/style.css 287 B
build/block-library/blocks/search/editor-rtl.css 193 B
build/block-library/blocks/search/editor.css 193 B
build/block-library/blocks/search/style-rtl.css 672 B
build/block-library/blocks/search/style.css 671 B
build/block-library/blocks/search/theme-rtl.css 113 B
build/block-library/blocks/search/theme.css 113 B
build/block-library/blocks/search/view.min.js 475 B
build/block-library/blocks/separator/editor-rtl.css 100 B
build/block-library/blocks/separator/editor.css 100 B
build/block-library/blocks/separator/style-rtl.css 248 B
build/block-library/blocks/separator/style.css 248 B
build/block-library/blocks/separator/theme-rtl.css 195 B
build/block-library/blocks/separator/theme.css 195 B
build/block-library/blocks/shortcode/editor-rtl.css 286 B
build/block-library/blocks/shortcode/editor.css 286 B
build/block-library/blocks/site-logo/editor-rtl.css 806 B
build/block-library/blocks/site-logo/editor.css 803 B
build/block-library/blocks/site-logo/style-rtl.css 218 B
build/block-library/blocks/site-logo/style.css 218 B
build/block-library/blocks/site-tagline/editor-rtl.css 87 B
build/block-library/blocks/site-tagline/editor.css 87 B
build/block-library/blocks/site-tagline/style-rtl.css 65 B
build/block-library/blocks/site-tagline/style.css 65 B
build/block-library/blocks/site-title/editor-rtl.css 123 B
build/block-library/blocks/site-title/editor.css 123 B
build/block-library/blocks/site-title/style-rtl.css 90 B
build/block-library/blocks/site-title/style.css 90 B
build/block-library/blocks/social-link/editor-rtl.css 338 B
build/block-library/blocks/social-link/editor.css 338 B
build/block-library/blocks/social-links/editor-rtl.css 676 B
build/block-library/blocks/social-links/editor.css 675 B
build/block-library/blocks/social-links/style-rtl.css 1.51 kB
build/block-library/blocks/social-links/style.css 1.5 kB
build/block-library/blocks/spacer/editor-rtl.css 346 B
build/block-library/blocks/spacer/editor.css 346 B
build/block-library/blocks/spacer/style-rtl.css 48 B
build/block-library/blocks/spacer/style.css 48 B
build/block-library/blocks/table-of-contents/style-rtl.css 83 B
build/block-library/blocks/table-of-contents/style.css 83 B
build/block-library/blocks/table/editor-rtl.css 394 B
build/block-library/blocks/table/editor.css 394 B
build/block-library/blocks/table/style-rtl.css 640 B
build/block-library/blocks/table/style.css 639 B
build/block-library/blocks/table/theme-rtl.css 152 B
build/block-library/blocks/table/theme.css 152 B
build/block-library/blocks/tag-cloud/editor-rtl.css 63 B
build/block-library/blocks/tag-cloud/editor.css 63 B
build/block-library/blocks/tag-cloud/style-rtl.css 266 B
build/block-library/blocks/tag-cloud/style.css 265 B
build/block-library/blocks/template-part/editor-rtl.css 393 B
build/block-library/blocks/template-part/editor.css 393 B
build/block-library/blocks/template-part/theme-rtl.css 113 B
build/block-library/blocks/template-part/theme.css 113 B
build/block-library/blocks/term-description/style-rtl.css 126 B
build/block-library/blocks/term-description/style.css 126 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B
build/block-library/blocks/text-columns/editor.css 95 B
build/block-library/blocks/text-columns/style-rtl.css 165 B
build/block-library/blocks/text-columns/style.css 165 B
build/block-library/blocks/verse/style-rtl.css 98 B
build/block-library/blocks/verse/style.css 98 B
build/block-library/blocks/video/editor-rtl.css 541 B
build/block-library/blocks/video/editor.css 542 B
build/block-library/blocks/video/style-rtl.css 192 B
build/block-library/blocks/video/style.css 192 B
build/block-library/blocks/video/theme-rtl.css 134 B
build/block-library/blocks/video/theme.css 134 B
build/block-library/classic-rtl.css 179 B
build/block-library/classic.css 179 B
build/block-library/common-rtl.css 1.1 kB
build/block-library/common.css 1.1 kB
build/block-library/editor-elements-rtl.css 75 B
build/block-library/editor-elements.css 75 B
build/block-library/editor-rtl.css 11.9 kB
build/block-library/editor.css 11.9 kB
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/index.min.js 217 kB
build/block-library/reset-rtl.css 472 B
build/block-library/reset.css 472 B
build/block-library/style-rtl.css 14.7 kB
build/block-library/style.css 14.7 kB
build/block-library/theme-rtl.css 702 B
build/block-library/theme.css 707 B
build/block-serialization-default-parser/index.min.js 1.12 kB
build/block-serialization-spec-parser/index.min.js 2.87 kB
build/blocks/index.min.js 52.4 kB
build/commands/index.min.js 16.1 kB
build/commands/style-rtl.css 955 B
build/commands/style.css 952 B
build/components/index.min.js 224 kB
build/components/style-rtl.css 12.1 kB
build/components/style.css 12.1 kB
build/compose/index.min.js 12.9 kB
build/core-commands/index.min.js 2.81 kB
build/core-data/index.min.js 73.1 kB
build/customize-widgets/index.min.js 11 kB
build/customize-widgets/style-rtl.css 1.35 kB
build/customize-widgets/style.css 1.35 kB
build/data-controls/index.min.js 641 B
build/data/index.min.js 8.98 kB
build/date/index.min.js 18 kB
build/deprecated/index.min.js 458 B
build/dom-ready/index.min.js 325 B
build/dom/index.min.js 4.65 kB
build/edit-post/classic-rtl.css 578 B
build/edit-post/classic.css 580 B
build/edit-post/index.min.js 12.6 kB
build/edit-post/style-rtl.css 2.31 kB
build/edit-post/style.css 2.31 kB
build/edit-widgets/index.min.js 17.7 kB
build/edit-widgets/style-rtl.css 4.2 kB
build/edit-widgets/style.css 4.2 kB
build/editor/index.min.js 100 kB
build/editor/style-rtl.css 9.34 kB
build/editor/style.css 9.33 kB
build/element/index.min.js 4.83 kB
build/escape-html/index.min.js 537 B
build/format-library/index.min.js 8.07 kB
build/format-library/style-rtl.css 476 B
build/format-library/style.css 476 B
build/hooks/index.min.js 1.54 kB
build/html-entities/index.min.js 445 B
build/i18n/index.min.js 3.58 kB
build/interactivity/debug.min.js 16.5 kB
build/interactivity/file.min.js 447 B
build/interactivity/image.min.js 1.78 kB
build/interactivity/index.min.js 13.4 kB
build/interactivity/navigation.min.js 1.16 kB
build/interactivity/query.min.js 742 B
build/interactivity/router.min.js 2.8 kB
build/interactivity/search.min.js 615 B
build/is-shallow-equal/index.min.js 526 B
build/keyboard-shortcuts/index.min.js 1.31 kB
build/keycodes/index.min.js 1.46 kB
build/list-reusable-blocks/index.min.js 2.16 kB
build/list-reusable-blocks/style-rtl.css 846 B
build/list-reusable-blocks/style.css 846 B
build/media-utils/index.min.js 2.92 kB
build/modules/importmap-polyfill.min.js 12.3 kB
build/notices/index.min.js 946 B
build/nux/index.min.js 1.59 kB
build/nux/style-rtl.css 749 B
build/nux/style.css 745 B
build/patterns/index.min.js 7.36 kB
build/patterns/style-rtl.css 687 B
build/patterns/style.css 685 B
build/plugins/index.min.js 1.81 kB
build/preferences-persistence/index.min.js 2.06 kB
build/preferences/index.min.js 2.9 kB
build/preferences/style-rtl.css 554 B
build/preferences/style.css 554 B
build/primitives/index.min.js 829 B
build/priority-queue/index.min.js 1.54 kB
build/private-apis/index.min.js 1.01 kB
build/react-i18n/index.min.js 630 B
build/react-refresh-entry/index.min.js 9.47 kB
build/react-refresh-runtime/index.min.js 6.76 kB
build/redux-routine/index.min.js 2.69 kB
build/reusable-blocks/index.min.js 2.54 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/rich-text/index.min.js 10.1 kB
build/router/index.min.js 1.96 kB
build/server-side-render/index.min.js 1.94 kB
build/shortcode/index.min.js 1.4 kB
build/style-engine/index.min.js 2.03 kB
build/token-list/index.min.js 581 B
build/url/index.min.js 3.85 kB
build/vendors/react-dom.min.js 41.7 kB
build/vendors/react-jsx-runtime.min.js 560 B
build/vendors/react.min.js 4.02 kB
build/viewport/index.min.js 965 B
build/warning/index.min.js 250 B
build/widgets/index.min.js 7.19 kB
build/widgets/style-rtl.css 1.16 kB
build/widgets/style.css 1.16 kB
build/wordcount/index.min.js 1.03 kB

compressed-size-action

@jorgefilipecosta jorgefilipecosta added the Needs Design Feedback Needs general design feedback. label Jul 9, 2024
@jasmussen
Copy link
Contributor

The button does suggest a drop-down. I also believe we had a dropdown design for filters somewhere, though there were likely complexity reasons for this. IMO this seems okay to me, as it improves the situation, but I'll defer to Jay or others!

@jameskoster
Copy link
Contributor

Thanks @jorgefilipecosta, this looks like a good start.

One quick change would be to ensure the panel is closed by default, rather than open. We might also try opening by default when filters are applied, but I don't feel as strongly about that part.

Given the visibility is now toggleable I think we can contain the filter UI within a dedicated row beneath .dataviews-filters__view-actions (we should probably rename that class too :D).

That structural change would decrease the likelihood of wrapping on narrow containers. In other words this:

Screenshot 2024-07-12 at 12 13 25

Instead of this:

Screenshot 2024-07-12 at 12 05 11

@jorgefilipecosta jorgefilipecosta force-pushed the update/Move-filter-UI-into-a-toggle-able-panel-to-improve-experience-on-narrow-viewports-containers branch from e657486 to 1cd016e Compare July 16, 2024 11:03
@jorgefilipecosta
Copy link
Member Author

Hi @jameskoster, the changes you suggested were implemented.

@ntsekouras
Copy link
Contributor

ntsekouras commented Jul 16, 2024

It feels a bit weird that we have to click the toggle to then be presented with the add filter button, no? This is in the cases where no filter is active.

Additionally should the text|global search be taken into account the active filters badge?

@ntsekouras
Copy link
Contributor

There is one more nuance with openedFilter. This was added initially to in order to open the filter when we add it for the first time. With these changes, if we add a filter and then toggle the filter visibility, it still opens the last inserted filter.

@jameskoster
Copy link
Contributor

It feels a bit weird that we have to click the toggle to then be presented with the add filter button, no? This is in the cases where no filter is active.

Yes, I think that's a good point. When no filters are set the filter button could expose the 'Add filter' menu instead. Here's the flow:

add-filter

Once filters are added it behaves like a toggle for the panel.

@jorgefilipecosta jorgefilipecosta force-pushed the update/Move-filter-UI-into-a-toggle-able-panel-to-improve-experience-on-narrow-viewports-containers branch from 8f603d2 to 87a5f74 Compare July 17, 2024 16:55
@jorgefilipecosta
Copy link
Member Author

There is one more nuance with openedFilter. This was added initially to in order to open the filter when we add it for the first time. With these changes, if we add a filter and then toggle the filter visibility, it still opens the last inserted filter.

Hi @ntsekouras, I think this issue is fixed.

Yes, I think that's a good point. When no filters are set the filter button could expose the 'Add filter' menu instead. Here's the flow:

Hi @jameskoster, the solution you suggested was implemented, let me know if it looks as expected.

(the end to end tests are not updated yet, but if we agree on this solution I will do the update on this PR)

@@ -111,7 +119,7 @@ export default function DataViews< Item >( {
>
<HStack
justify="start"
className="dataviews-filters__container"
className="dataviews-search__container"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess we won't need the hstack now.. We need to verify though if it has visual side effects..

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, we can remove hstack but I needed to add a small, a small CSS rule to make the search still expand.
The search input also got a little bit bigger but I think we have space so it may be ok to default to the normal input control width (240px). Going to cc: @WordPress/gutenberg-design to check if we can do this small dimension change.

@ntsekouras
Copy link
Contributor

This tests well and code wise looks good. Let's see the design input and see to update the tests afterwards.

@jorgefilipecosta jorgefilipecosta requested a review from a team July 18, 2024 11:54
@jameskoster
Copy link
Contributor

This is working really well!

A couple of tiny visual tweaks:

  • The gap between the Layout and Settings icon buttons is 4px. But the gap between those buttons and the Filter button is 8px. Ideally that gap should be 4px too.
  • The toggle button is spilling out of its container breaking alignment with the primary action button above. flex-shrink: 0 on .dataviews-filters-toggle__container seems to fix.
  • On List layout we can remove the max-width applied to the search container so that it fills the available space.

@jorgefilipecosta jorgefilipecosta force-pushed the update/Move-filter-UI-into-a-toggle-able-panel-to-improve-experience-on-narrow-viewports-containers branch from 6c19704 to ff8f340 Compare July 19, 2024 14:52
@jorgefilipecosta jorgefilipecosta force-pushed the update/Move-filter-UI-into-a-toggle-able-panel-to-improve-experience-on-narrow-viewports-containers branch from 310e434 to 1eb6a6c Compare July 19, 2024 15:40
@jorgefilipecosta
Copy link
Member Author

This PR passed by a big rebase, but it seems now everything is working again.

@jorgefilipecosta
Copy link
Member Author

Hi @jameskoster, thank you for the reviews, the first two tweaks you suggested were applied. The third one is being done on this PR #63755 as it is a change to a behavior already on the trunk.

@jorgefilipecosta jorgefilipecosta force-pushed the update/Move-filter-UI-into-a-toggle-able-panel-to-improve-experience-on-narrow-viewports-containers branch 2 times, most recently from 7e51dc2 to 0fa197e Compare July 22, 2024 10:17
@jameskoster
Copy link
Contributor

Thanks for adding those tweaks :) I'm noticing a small bug; on the Pages table, adding one filter seems to add all filter options:

filters.mp4

@jorgefilipecosta jorgefilipecosta force-pushed the update/Move-filter-UI-into-a-toggle-able-panel-to-improve-experience-on-narrow-viewports-containers branch from 0fa197e to f8efec1 Compare July 22, 2024 14:17
@jorgefilipecosta jorgefilipecosta force-pushed the update/Move-filter-UI-into-a-toggle-able-panel-to-improve-experience-on-narrow-viewports-containers branch from cba4375 to 56affa9 Compare July 24, 2024 10:16
@jameskoster
Copy link
Contributor

@jorgefilipecosta I reckon we could move it right next to the search input with an 8px gap between:

Screenshot 2024-07-24 at 13 31 09

@jorgefilipecosta
Copy link
Member Author

Hi @jameskoster the filter toggle/add button is now at the side of the search as suggested.

@jorgefilipecosta jorgefilipecosta force-pushed the update/Move-filter-UI-into-a-toggle-able-panel-to-improve-experience-on-narrow-viewports-containers branch from 1ab0349 to 226156e Compare July 24, 2024 14:34
@jameskoster
Copy link
Contributor

I pushed a tiny style tweak to the count.

There's only one small issue I see outstanding: The filter panel visibility persists as you navigate between different views. IE if I open the panel on one view, it stays open when I navigate to a different view. Ideally each view treats the open/close state dependently. Would that be possible?

@jorgefilipecosta
Copy link
Member Author

Hi @jameskoster thank you for the style enhancement.

There's only one small issue I see outstanding: The filter panel visibility persists as you navigate between different views. IE if I open the panel on one view, it stays open when I navigate to a different view. Ideally each view treats the open/close state dependently. Would that be possible?

I made an update, and now the state should not persist across the views.

@@ -49,6 +49,8 @@ type DataViewsProps< Item > = {
selection?: string[];
onChangeSelection?: ( items: string[] ) => void;
header?: ReactNode;
isShowingFilter?: boolean;
setIsShowingFilter?: React.Dispatch< React.SetStateAction< boolean > >;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would love if avoid these props please. I don't think we should be adding random props like that to the DataViews component.

Why do we need them?

Copy link
Member Author

@jorgefilipecosta jorgefilipecosta Jul 29, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @youknowriad, we added these props to reset the isShowingFilter state when the active view changes (e.g: from drafts, to scheduled). This allows us to control or reset the state from outside of the component. If these props aren't passed, the component will use its own state, but having them allows outside control when necessary.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see. I think it's not ideal in terms of Api for the DataViews component. Why control this state and not other states like dropdown states... I think this doesn't make for a great API in DataViews.

Two options from me:

  • Can we accept that this remains an internal state.
  • If it's about resetting the state, we can force remount with a separate key on DataViews if needed.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If it's about resetting the state, we can force remount with a separate key on DataViews if needed.

I have thought of this option but I think it will probably also have undesired effects. I can give it a try and see how it goes.

@jorgefilipecosta jorgefilipecosta force-pushed the update/Move-filter-UI-into-a-toggle-able-panel-to-improve-experience-on-narrow-viewports-containers branch from 211e6d8 to 617aa48 Compare July 30, 2024 12:00
…ebug code). (+15 squashed commits)

Squashed commits:
[2198f16852] style change
[0f23576ae6] hide filters when changing views
[fbee4cad46] lint fix
[eaaccae54b] end to end test updates
[7b58faec1c] make filters toggle at the side of search
[2f5a957a47] end to end test updates
[9e40065f17] end to end test updare
[9fd5ca03b5] lint filters and make the filter button the first
[877f13bd54] Count styling
[4fc07717be] Reduce spacing, remove negative margin
[871ebf4553] Remove negative margin
[0d8632a666] lint fix
[31d893beb3] post rebase fixes
[1d2b4bf1d3] fix don't show all filters
[224d0ef7b1] fix number positioning (+3 squashed commits)
Squashed commits:
[f0acb40a7d] enhanements
[309567963c] post rebase style fixes
[9ce5f3686a] Remove hstack form search (+2 squashed commits)
Squashed commits:
[62c7124201] lint fixes
[afa224734a] apply feedback
@jorgefilipecosta jorgefilipecosta force-pushed the update/Move-filter-UI-into-a-toggle-able-panel-to-improve-experience-on-narrow-viewports-containers branch from 617aa48 to 8be7349 Compare August 2, 2024 10:54
@jorgefilipecosta
Copy link
Member Author

Hi @youknowriad, with #63889 merged and an additional small fix on search (included in this PR) the key-based solution to reset the filter showing state seems to be working. This PR is ready for review.

Copy link
Contributor

@youknowriad youknowriad left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is working well for me. What do you think @jameskoster

@jorgefilipecosta jorgefilipecosta merged commit 4be4912 into trunk Aug 5, 2024
62 checks passed
@jorgefilipecosta jorgefilipecosta deleted the update/Move-filter-UI-into-a-toggle-able-panel-to-improve-experience-on-narrow-viewports-containers branch August 5, 2024 10:33
@github-actions github-actions bot added this to the Gutenberg 19.0 milestone Aug 5, 2024
@jorgefilipecosta
Copy link
Member Author

@jameskoster I merged this one to avoid potential complex rebases as this PR has a considerable size. But if there is anything we should improve just let me know and I will gladly work on a follow-up.

@jorgefilipecosta jorgefilipecosta added the [Feature] DataViews Work surrounding upgrading and evolving views in the site editor and beyond label Aug 7, 2024
@oandregal
Copy link
Member

@jameskoster @jorgefilipecosta what are your thoughts regarding filters that declare to be primary?

  • Before this PR, primary filters were always visible and not listed in the "Add filter" component.
  • After this PR, they still are not listed in the "Add filter" component but they are hidden until you click on "Add filter".

There're some inconsistencies with regards to the +1 number as well. Note how it's not set in Patterns (sync is a "primary" filter) but it's set in Pages (all secondary filters) before the user picks a value:

Gravacao.do.ecra.2024-08-19.as.17.13.30.mov

So, I wonder if the concept of "primary filters" still make sense. If so, I believe we should make them visible as before. If we don't want to do that, I think we could just remove the filter.isPrimary API because the only thing it does now is to hide the filters from the "Add filter" component.

@oandregal
Copy link
Member

Also note that the "Add filter" button is hidden if all filters are primary, and that creates weird interactions. Compare Patterns (only 1 filter that is primary) vs Templates (only 1 filter but it is NOT primary). It's not clear why the "Add filter" button would be visible but disabled in the later but hidden in the former:

Gravacao.do.ecra.2024-08-19.as.17.23.42.mov

@jameskoster
Copy link
Contributor

There're some inconsistencies with regards to the +1 number as well

We should fix that 👍 The question is whether to show the count when a filter is added, or when a value is selected. I can see arguments for both. What do you think?

The intent in the original issue was for the panel to be open automatically if any filters are added. So if a view had primary filters the panel would be open. Looks like we missed tracking that as a follow-up.

It's not clear why the "Add filter" button would be visible but disabled in the later but hidden in the former

I suspect this is a quirk relating the the a11y requirements. Most views supply non-primary filters that users can add as required. When all filters are added, the button remains accessible to help folks understand no more filters can be added, and to avoid confusion around the button vanishing from the UI. Because there's only a single filter on the Patterns page, and it's primary, users cannot ever add a new filter here. Consequently it's okay to hide the button entirely.

@oandregal
Copy link
Member

Follow-up for having the filter toggle opened on load if there are primary filters #64651

@oandregal
Copy link
Member

There's another follow-up: what to do with the filter toggle when there are no filters? Report: #64631

There's this PR that hides the toggle #64640

Alternatively, we could show it as "disabled". However, I find the disabled state is useful when there's opportunities for the component to be active. In this case, given there are no filters, there're no opportunities for it to become active — hence my preference to just hide it. In the interest of velocity, I'll approve and go ahead with that PR. Let me know if you'd like to do something different.

@jameskoster
Copy link
Contributor

That seems reasonable to me 👍

@oandregal
Copy link
Member

There's also a couple of details about keyboard interaction / how the "add filter" button should work:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Feature] DataViews Work surrounding upgrading and evolving views in the site editor and beyond Needs Design Feedback Needs general design feedback. [Type] Enhancement A suggestion for improvement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Move filter UI into a toggle-able panel to improve experience on narrow viewports/containers
6 participants