From 359a9f8ba9cff5a5d55ec3af93f883b0d3c653c1 Mon Sep 17 00:00:00 2001 From: Nolan Lawson Date: Wed, 3 Jun 2020 19:12:33 -0700 Subject: [PATCH] refactor: simplify code --- src/svelte/components/Picker/Picker.js | 30 ++++++++++++-------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/src/svelte/components/Picker/Picker.js b/src/svelte/components/Picker/Picker.js index fa40b64..7fa6e90 100644 --- a/src/svelte/components/Picker/Picker.js +++ b/src/svelte/components/Picker/Picker.js @@ -107,25 +107,23 @@ function onSearchKeydown (event) { if (!searchMode || !currentEmojis.length) { return } + + const goToNextOrPrevious = (previous) => { + event.preventDefault() + event.stopPropagation() + activeSearchItem += (previous ? -1 : 1) + if (activeSearchItem < 0) { + activeSearchItem = currentEmojis.length - 1 + } else if (activeSearchItem >= currentEmojis.length) { + activeSearchItem = 0 + } + } + switch (event.key) { case 'ArrowDown': - if (activeSearchItem === currentEmojis.length - 1) { - activeSearchItem = 0 - } else { - activeSearchItem++ - } - event.preventDefault() - event.stopPropagation() - break + return goToNextOrPrevious(false) case 'ArrowUp': - event.preventDefault() - event.stopPropagation() - if (activeSearchItem <= 0) { - activeSearchItem = currentEmojis.length - 1 - } else { - activeSearchItem-- - } - break + return goToNextOrPrevious(true) } }