mirror of
https://github.com/CommunityOx/ox_lib.git
synced 2026-08-18 15:36:02 +01:00
feat(web/menu): reset indexes on next last item
This commit is contained in:
@@ -71,13 +71,13 @@ const ListMenu: React.FC = () => {
|
|||||||
switch (e.code) {
|
switch (e.code) {
|
||||||
case "ArrowDown":
|
case "ArrowDown":
|
||||||
setSelected((selected) => {
|
setSelected((selected) => {
|
||||||
if (selected >= menu.items.length - 1) return selected;
|
if (selected >= menu.items.length - 1) return (selected = 0);
|
||||||
return selected + 1;
|
return selected + 1;
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
case "ArrowUp":
|
case "ArrowUp":
|
||||||
setSelected((selected) => {
|
setSelected((selected) => {
|
||||||
if (selected <= 0) return selected;
|
if (selected <= 0) return (selected = menu.items.length - 1);
|
||||||
return selected - 1;
|
return selected - 1;
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
@@ -88,14 +88,17 @@ const ListMenu: React.FC = () => {
|
|||||||
[selected]:
|
[selected]:
|
||||||
indexStates[selected] + 1 <= menu.items[selected].values?.length! - 1
|
indexStates[selected] + 1 <= menu.items[selected].values?.length! - 1
|
||||||
? indexStates[selected] + 1
|
? indexStates[selected] + 1
|
||||||
: indexStates[selected],
|
: (indexStates[selected] = 0),
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
case "ArrowLeft":
|
case "ArrowLeft":
|
||||||
if (!Array.isArray(menu.items[selected].values)) return;
|
if (!Array.isArray(menu.items[selected].values)) return;
|
||||||
setIndexStates({
|
setIndexStates({
|
||||||
...indexStates,
|
...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;
|
break;
|
||||||
case "Enter":
|
case "Enter":
|
||||||
|
|||||||
Reference in New Issue
Block a user