From 3f15fdb3192b654dda14c36a5780f49fe309329c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9D=9E=E5=87=A1=E5=B0=91=E5=B9=B4?= Date: Wed, 17 May 2023 15:00:05 +0800 Subject: [PATCH] fix: support Chrome autofill when `event.key` is undefined (#1888) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: event.key is undefined #1887 * Update packages/docsearch-react/src/useDocSearchKeyboardEvents.ts Co-authored-by: François Chalifour --------- Co-authored-by: François Chalifour --- .gitignore | 3 ++- packages/docsearch-react/src/useDocSearchKeyboardEvents.ts | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index a641a4d88..7637e636d 100644 --- a/.gitignore +++ b/.gitignore @@ -15,10 +15,11 @@ dist/ # IDE .vscode/ +.idea # Environment files .env # Cypress Video and Screenshots output cypress/screenshots/ -cypress/videos/ \ No newline at end of file +cypress/videos/ diff --git a/packages/docsearch-react/src/useDocSearchKeyboardEvents.ts b/packages/docsearch-react/src/useDocSearchKeyboardEvents.ts index 0e660eb99..a23aab1cd 100644 --- a/packages/docsearch-react/src/useDocSearchKeyboardEvents.ts +++ b/packages/docsearch-react/src/useDocSearchKeyboardEvents.ts @@ -39,7 +39,11 @@ export function useDocSearchKeyboardEvents({ if ( (event.keyCode === 27 && isOpen) || // The `Cmd+K` shortcut both opens and closes the modal. - (event.key.toLowerCase() === 'k' && (event.metaKey || event.ctrlKey)) || + // We need to check for `event.key` because it can be `undefined` with + // Chrome's autofill feature. + // See https://github.com/paperjs/paper.js/issues/1398 + (event.key?.toLowerCase() === 'k' && + (event.metaKey || event.ctrlKey)) || // The `/` shortcut opens but doesn't close the modal because it's // a character. (!isEditingContent(event) && event.key === '/' && !isOpen)