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

[IndexFilters] disable keyboard shortcuts option #9868

Merged
merged 3 commits into from
Aug 7, 2023

Conversation

mattkubej
Copy link
Contributor

@mattkubej mattkubej commented Aug 1, 2023

WHY are these changes introduced?

The IndexFilters component contains a global listener for keydown events to provide shortcuts for opening search and cancelling actions. This poses conflict when this component is utilized within Settings, specifically with the Escape key as that is utilized for closing Settings. Additionally, if multiple IndexFilters exist on the same screen, then the event handlers on every present IndexFilters will get fired.

WHAT is this pull request doing?

To address this, a disableKeyboardShortcuts is introduced within this PR, which short-circuits the keydown event handler when enabled and removes the shortcut hints within the tooltip labels.

I introduced a separate story with this PR to highlight prop, because I tried introducing storybook controls to the story and it resulted in storybook freezing due to what looked like an infinite loop. This seems to be due to a storybook bug.

How to 🎩

Validate that without disableKeyboardShortcuts via the Default story, that there are no regressions (i.e. shortcuts continue to work and labels show shortcuts)

Validate that with disableKeyboardShortcuts via the Without Keyboard Shortcuts story, that keyboard shortcuts no longer provide any function, you're able to interact with the component with a keyboard, and the label does not show shortcut hints.

🎩 checklist

@mattkubej mattkubej force-pushed the index-filters/disable-keyboard-shortcuts branch from 8f538af to 5550262 Compare August 1, 2023 20:54
@@ -361,7 +361,8 @@
"clear": "지우기"
},
"IndexFilters": {
"searchFilterTooltip": "검색 및 필터링(F)",
"searchFilterTooltip": "검색 및 필터링",
"searchFilterTooltipWithShortcut": "검색 및 필터링(F)",
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This seems to be the only language that did not have a space between (F) and the label, so not sure if this was intentional.

@mattkubej mattkubej force-pushed the index-filters/disable-keyboard-shortcuts branch from 1e3b0b7 to cd4fd80 Compare August 1, 2023 21:14
@mattkubej
Copy link
Contributor Author

If there are no concerns with the changes/approach, then I'll request translations to validate my changes.

@mattkubej mattkubej marked this pull request as ready for review August 1, 2023 21:17
@mattkubej mattkubej force-pushed the index-filters/disable-keyboard-shortcuts branch from beebe0a to 570232c Compare August 1, 2023 22:36
Copy link
Contributor

@jesstelford jesstelford left a comment

Choose a reason for hiding this comment

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

Other than the two minor test name suggestions, this looks good to me 👍

@mattkubej mattkubej force-pushed the index-filters/disable-keyboard-shortcuts branch from eb32c06 to ecf8862 Compare August 2, 2023 01:43
@mattkubej mattkubej merged commit cb1dbbb into main Aug 7, 2023
12 checks passed
@mattkubej mattkubej deleted the index-filters/disable-keyboard-shortcuts branch August 7, 2023 15:52
This was referenced Aug 7, 2023
sam-b-rose pushed a commit that referenced this pull request Aug 15, 2023
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @shopify/[email protected]

### Major Changes

- [#9887](#9887)
[`a3da87e2e`](a3da87e)
Thanks [@lgriffee](https://github.com/lgriffee)! - Removed deprecated
v10 custom properties from stylelint-polaris disallowed lists

### Patch Changes

- Updated dependencies
\[[`36e4ee8af`](36e4ee8)]:
    -   @shopify/[email protected]

## @shopify/[email protected]

### Minor Changes

- [#10042](#10042)
[`1d82a3b12`](1d82a3b)
Thanks [@m4thieulavoie](https://github.com/m4thieulavoie)! - introduce a
subdued prop to the popover pane component


- [#9868](#9868)
[`cb1dbbbd3`](cb1dbbb)
Thanks [@mattkubej](https://github.com/mattkubej)! - Introduce
disableKeyboardShortcuts prop to IndexFilters


- [#9862](#9862)
[`93b902094`](93b9020)
Thanks [@brittcorry](https://github.com/brittcorry)! - Added support for
the ```Filters``closeOnChildOverlayClick``` prop to `IndexFilters`


- [#9872](#9872)
[`f585a57e0`](f585a57)
Thanks [@fatimasajadi](https://github.com/fatimasajadi)! - Add a
critical status to the IndexTable

### Patch Changes

- [#10012](#10012)
[`3ae94cef0`](3ae94ce)
Thanks [@melvinadu](https://github.com/melvinadu)! - Fixed wrapping
overflow of strings with no spacing within `Filters` popover


- [#9889](#9889)
[`0cbdbb4f5`](0cbdbb4)
Thanks [@chloerice](https://github.com/chloerice)! - Set the preferred
position of `Pagination` and `Page` `secondaryActions` button tooltips
to `below`


- [#10045](#10045)
[`65ad4e27c`](65ad4e2)
Thanks [@sophschneider](https://github.com/sophschneider)! - Fixed
BannerExperimental no title hidden icon variant


- [#9885](#9885)
[`f0d288099`](f0d2880)
Thanks [@bsharrow](https://github.com/bsharrow)! - `Aligned
the`SkeletonPage\``title`font-weight with the`Page` title


- [#9860](#9860)
[`af0c9d4a2`](af0c9d4)
Thanks [@sophschneider](https://github.com/sophschneider)! - Updated CI
tests to account for both polarisSummerEditions2023 beta flag states


- [#9874](#9874)
[`5569ac69a`](5569ac6)
Thanks [@chloerice](https://github.com/chloerice)! - Fixed `Page` first
`Header` row misalignment


- [#9850](#9850)
[`57d8d5506`](57d8d55)
Thanks [@kyledurand](https://github.com/kyledurand)! - Rebuilt `Filters`
`SearchField`


- [#8988](#8988)
[`535b3fc91`](535b3fc)
Thanks [@m4thieulavoie](https://github.com/m4thieulavoie)! - Added
support for rendering `Text` `as` a `strong` tag


- [#9912](#9912)
[`00b831292`](00b8312)
Thanks [@samrose3](https://github.com/samrose3)! - Fixed primary Button
styles for Chrome on Android devices

- Updated dependencies
\[[`d1bee0f87`](d1bee0f),
[`36e4ee8af`](36e4ee8)]:
    -   @shopify/[email protected]
    -   @shopify/[email protected]

## @shopify/[email protected]

### Patch Changes

-   Updated dependencies \[]:
    -   @shopify/[email protected]

## @shopify/[email protected]

### Patch Changes

- Updated dependencies
\[[`a3da87e2e`](a3da87e),
[`36e4ee8af`](36e4ee8)]:
    -   @shopify/[email protected]
    -   @shopify/[email protected]

## @shopify/[email protected]

### Patch Changes

- [#9879](#9879)
[`d1bee0f87`](d1bee0f)
Thanks [@kyledurand](https://github.com/kyledurand)! - Optimized some
unoptimized icons

## @shopify/[email protected]

### Patch Changes

- Updated dependencies
\[[`a3da87e2e`](a3da87e),
[`36e4ee8af`](36e4ee8)]:
    -   @shopify/[email protected]
    -   @shopify/[email protected]

## @shopify/[email protected]

### Patch Changes

- [#9904](#9904)
[`36e4ee8af`](36e4ee8)
Thanks [@benwolfram](https://github.com/benwolfram)! - Added a unit to
the `space-0` token

## [email protected]

### Minor Changes

- [#9886](#9886)
[`d85099c89`](d85099c)
Thanks [@lgriffee](https://github.com/lgriffee)! - Updated Polaris
Stylelint version matchups chart

### Patch Changes

- Updated dependencies
\[[`d1bee0f87`](d1bee0f),
[`1d82a3b12`](1d82a3b),
[`36e4ee8af`](36e4ee8),
[`cb1dbbbd3`](cb1dbbb),
[`3ae94cef0`](3ae94ce),
[`0cbdbb4f5`](0cbdbb4),
[`93b902094`](93b9020),
[`65ad4e27c`](65ad4e2),
[`f0d288099`](f0d2880),
[`af0c9d4a2`](af0c9d4),
[`5569ac69a`](5569ac6),
[`f585a57e0`](f585a57),
[`57d8d5506`](57d8d55),
[`535b3fc91`](535b3fc),
[`00b831292`](00b8312)]:
    -   @shopify/[email protected]
    -   @shopify/[email protected]
    -   @shopify/[email protected]

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
AnnaCheba pushed a commit to AnnaCheba/polaris that referenced this pull request Apr 22, 2024
### WHY are these changes introduced?

The `IndexFilters` component contains a global listener for `keydown`
events to provide shortcuts for opening search and cancelling actions.
This poses conflict when this component is utilized within Settings,
specifically with the `Escape` key as that is utilized for closing
Settings. Additionally, if multiple `IndexFilters` exist on the same
screen, then the event handlers on every present `IndexFilters` will get
fired.

### WHAT is this pull request doing?

To address this, a `disableKeyboardShortcuts` is introduced within this
PR, which short-circuits the `keydown` event handler when enabled and
removes the shortcut hints within the tooltip labels.

I introduced a separate story with this PR to highlight prop, because I
tried introducing storybook controls to the story and it resulted in
storybook freezing due to what looked like an infinite loop. This seems
to be due to a storybook bug.

### How to 🎩

Validate that without `disableKeyboardShortcuts` via the [Default
story](https://storybook.web.index-table-disable-keyboard-shortcuts.matt-kubej.us.spin.dev/?path=/story/all-components-indexfilters--default),
that there are no regressions (i.e. shortcuts continue to work and
labels show shortcuts)

Validate that with `disableKeyboardShortcuts` via the [Without Keyboard
Shortcuts
story](https://storybook.web.index-table-disable-keyboard-shortcuts.matt-kubej.us.spin.dev/?path=/story/all-components-indexfilters--without-keyboard-shortcuts),
that keyboard shortcuts no longer provide any function, you're able to
interact with the component with a keyboard, and the label does not show
shortcut hints.

### 🎩 checklist

- [x] Tested on
[mobile](https://github.com/Shopify/polaris/blob/main/documentation/Tophatting.md#cross-browser-testing)
- [x] Tested on [multiple
browsers](https://help.shopify.com/en/manual/shopify-admin/supported-browsers)
- [x] Tested for
[accessibility](https://github.com/Shopify/polaris/blob/main/documentation/Accessibility%20testing.md)
- [x] Updated the component's `README.md` with documentation changes
- [x] [Tophatted
documentation](https://github.com/Shopify/polaris/blob/main/documentation/Tophatting%20documentation.md)
changes in the style guide

---------

Co-authored-by: translation-platform[bot] <34770790+translation-platform[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants