From dcce65d472fad1092ec70933fd862de419b354ee Mon Sep 17 00:00:00 2001 From: Luke Date: Tue, 2 Aug 2022 11:27:48 +0200 Subject: [PATCH] feat(web/menu): reset indexes on next last item --- web/src/features/menu/list/index.tsx | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/web/src/features/menu/list/index.tsx b/web/src/features/menu/list/index.tsx index dd619a0..20db7f9 100644 --- a/web/src/features/menu/list/index.tsx +++ b/web/src/features/menu/list/index.tsx @@ -71,13 +71,13 @@ const ListMenu: React.FC = () => { switch (e.code) { case "ArrowDown": setSelected((selected) => { - if (selected >= menu.items.length - 1) return selected; + if (selected >= menu.items.length - 1) return (selected = 0); return selected + 1; }); break; case "ArrowUp": setSelected((selected) => { - if (selected <= 0) return selected; + if (selected <= 0) return (selected = menu.items.length - 1); return selected - 1; }); break; @@ -88,14 +88,17 @@ const ListMenu: React.FC = () => { [selected]: indexStates[selected] + 1 <= menu.items[selected].values?.length! - 1 ? indexStates[selected] + 1 - : indexStates[selected], + : (indexStates[selected] = 0), }); break; case "ArrowLeft": if (!Array.isArray(menu.items[selected].values)) return; setIndexStates({ ...indexStates, - [selected]: indexStates[selected] - 1 >= 0 ? indexStates[selected] - 1 : indexStates[selected], + [selected]: + indexStates[selected] - 1 >= 0 + ? indexStates[selected] - 1 + : (indexStates[selected] = menu.items[selected].values?.length! - 1), }); break; case "Enter":