From 34f01e29644cd4edb2771f545633b56e8ceaf68c Mon Sep 17 00:00:00 2001 From: peterkogo Date: Thu, 7 Nov 2024 11:27:50 +0100 Subject: [PATCH 1/3] support key combinations which include + --- packages/react/src/hooks/useKeyPress.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/react/src/hooks/useKeyPress.ts b/packages/react/src/hooks/useKeyPress.ts index beca4000..8bce0564 100644 --- a/packages/react/src/hooks/useKeyPress.ts +++ b/packages/react/src/hooks/useKeyPress.ts @@ -45,7 +45,12 @@ export function useKeyPress( const [keyCodes, keysToWatch] = useMemo<[Array, Keys]>(() => { if (keyCode !== null) { const keyCodeArr = Array.isArray(keyCode) ? keyCode : [keyCode]; - const keys = keyCodeArr.filter((kc) => typeof kc === 'string').map((kc) => kc.split('+')); + const keys = keyCodeArr + .filter((kc) => typeof kc === 'string') + // we first replace all '+' with '\n' which we will use to split the keys on + // then we replace '\n\n' with '\n+', this way we can also support the combination 'key++' + // in the end we simply split on '\n' to get the key array + .map((kc) => kc.replace('+', '\n').replace('\n\n', '\n+').split('\n')); const keysFlat = keys.reduce((res: Keys, item) => res.concat(...item), []); return [keys, keysFlat]; From 358eb355e0b2bea4ffa47b0f04d6edf834343cd7 Mon Sep 17 00:00:00 2001 From: peterkogo Date: Thu, 7 Nov 2024 11:32:23 +0100 Subject: [PATCH 2/3] add changeset --- .changeset/clever-keys-pay.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/clever-keys-pay.md diff --git a/.changeset/clever-keys-pay.md b/.changeset/clever-keys-pay.md new file mode 100644 index 00000000..7729e7e5 --- /dev/null +++ b/.changeset/clever-keys-pay.md @@ -0,0 +1,5 @@ +--- +'@xyflow/react': minor +--- + +Support key combinations which include '+' (e.g., 'Control++' resolves to the combination 'Control' and '+'). From 9e4746199431ce03602ee7687dd579f42c1c70a2 Mon Sep 17 00:00:00 2001 From: peterkogo Date: Sat, 9 Nov 2024 09:45:16 +0100 Subject: [PATCH 3/3] changed from minor to patch --- .changeset/clever-keys-pay.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/clever-keys-pay.md b/.changeset/clever-keys-pay.md index 7729e7e5..87776576 100644 --- a/.changeset/clever-keys-pay.md +++ b/.changeset/clever-keys-pay.md @@ -1,5 +1,5 @@ --- -'@xyflow/react': minor +'@xyflow/react': patch --- Support key combinations which include '+' (e.g., 'Control++' resolves to the combination 'Control' and '+').