From 5933874dc28ad7540537f29391576296d9707761 Mon Sep 17 00:00:00 2001 From: Eric Dobbertin Date: Mon, 6 Jul 2020 15:57:21 -0500 Subject: [PATCH] fix: special handling for Enter press in textarea --- src/build-workflow/buildPressSteps.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/build-workflow/buildPressSteps.ts b/src/build-workflow/buildPressSteps.ts index 8bccf3b1a..9e01f6449 100644 --- a/src/build-workflow/buildPressSteps.ts +++ b/src/build-workflow/buildPressSteps.ts @@ -18,11 +18,21 @@ const debug = Debug('qawolf:buildPressSteps'); * navigation purposes on any website. */ const KEYS_TO_TRACK_ALWAYS = new Set([ - 'Enter', 'Escape', 'Tab' ]); +/** + * A subset of the full list: + * https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values + * + * These are key presses that we want to include when playing back as long as they + * aren't being pressed as part of editing in a textarea. + */ +const KEYS_TO_TRACK_FOR_NON_TEXTAREA = new Set([ + 'Enter' +]); + /** * A subset of the full list: * https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values @@ -53,6 +63,7 @@ const KEYS_TO_TRACK_FOR_NON_INPUT = new Set([ */ const shouldTrackKeyPress = (key: string, target: Doc): boolean => { if (KEYS_TO_TRACK_ALWAYS.has(key)) return true; + if (!isTextareaTarget(target) && KEYS_TO_TRACK_FOR_NON_TEXTAREA.has(key)) return true; if (!isInputTarget(target) && !isTextareaTarget(target) && KEYS_TO_TRACK_FOR_NON_INPUT.has(key)) return true; return false; }