From 7b3782fedcca4dfffbfb99590516fe2048cf30f2 Mon Sep 17 00:00:00 2001 From: Riad Benguella Date: Wed, 27 Sep 2023 09:20:01 +0100 Subject: [PATCH 1/2] Fix the ShortcutProvider usage --- .../keyboard-shortcuts/src/components/shortcut-provider.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/keyboard-shortcuts/src/components/shortcut-provider.js b/packages/keyboard-shortcuts/src/components/shortcut-provider.js index 9fabf392738f61..2c4ebf8a756b3f 100644 --- a/packages/keyboard-shortcuts/src/components/shortcut-provider.js +++ b/packages/keyboard-shortcuts/src/components/shortcut-provider.js @@ -1,7 +1,7 @@ /** * WordPress dependencies */ -import { useRef } from '@wordpress/element'; +import { useState } from '@wordpress/element'; /** * Internal dependencies @@ -20,12 +20,12 @@ const { Provider } = context; * @return {import('@wordpress/element').WPElement} Component. */ export function ShortcutProvider( props ) { - const keyboardShortcuts = useRef( new Set() ); + const [ keyboardShortcuts ] = useState( new Set() ); function onKeyDown( event ) { if ( props.onKeyDown ) props.onKeyDown( event ); - for ( const keyboardShortcut of keyboardShortcuts.current ) { + for ( const keyboardShortcut of keyboardShortcuts ) { keyboardShortcut( event ); } } From 8122ac4f21c272de0f58d917548a4a8e2c2e1a45 Mon Sep 17 00:00:00 2001 From: Riad Benguella Date: Wed, 27 Sep 2023 10:38:01 +0100 Subject: [PATCH 2/2] Use lazy initialization Co-authored-by: Marin Atanasov <8436925+tyxla@users.noreply.github.com> --- packages/keyboard-shortcuts/src/components/shortcut-provider.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/keyboard-shortcuts/src/components/shortcut-provider.js b/packages/keyboard-shortcuts/src/components/shortcut-provider.js index 2c4ebf8a756b3f..feda767a2ca6bf 100644 --- a/packages/keyboard-shortcuts/src/components/shortcut-provider.js +++ b/packages/keyboard-shortcuts/src/components/shortcut-provider.js @@ -20,7 +20,7 @@ const { Provider } = context; * @return {import('@wordpress/element').WPElement} Component. */ export function ShortcutProvider( props ) { - const [ keyboardShortcuts ] = useState( new Set() ); + const [ keyboardShortcuts ] = useState( () => new Set() ); function onKeyDown( event ) { if ( props.onKeyDown ) props.onKeyDown( event );