fix(web/menu): debounce menu item selected callback

This commit is contained in:
Luke
2022-07-30 15:52:15 +02:00
committed by Luke
parent a2b5ccb354
commit aa9b1334f2

View File

@@ -95,16 +95,19 @@ const ListMenu: React.FC = () => {
}
};
// TODO: add debounce so that callbacks can't be spammed
useEffect(() => {
if (!menu.items[selected]?.value) return;
listRefs.current[selected]?.focus();
fetchNui(
"changeSelected",
Array.isArray(menu.items[selected].value)
? menu.items[selected].value[indexStates[selected]]
: menu.items[selected].value
);
// debounces the callback to avoid spam
const timer = setTimeout(() => {
fetchNui(
"changeSelected",
Array.isArray(menu.items[selected].value)
? menu.items[selected].value[indexStates[selected]]
: menu.items[selected].value
);
}, 500);
return () => clearTimeout(timer);
}, [selected, menu, indexStates]);
useNuiEvent("setMenu", (data: MenuSettings) => {