mirror of
https://github.com/CommunityOx/ox_lib.git
synced 2026-08-18 15:36:02 +01:00
fix(web/menu): debounce menu item selected callback
This commit is contained in:
@@ -95,16 +95,19 @@ const ListMenu: React.FC = () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// TODO: add debounce so that callbacks can't be spammed
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!menu.items[selected]?.value) return;
|
if (!menu.items[selected]?.value) return;
|
||||||
listRefs.current[selected]?.focus();
|
listRefs.current[selected]?.focus();
|
||||||
|
// debounces the callback to avoid spam
|
||||||
|
const timer = setTimeout(() => {
|
||||||
fetchNui(
|
fetchNui(
|
||||||
"changeSelected",
|
"changeSelected",
|
||||||
Array.isArray(menu.items[selected].value)
|
Array.isArray(menu.items[selected].value)
|
||||||
? menu.items[selected].value[indexStates[selected]]
|
? menu.items[selected].value[indexStates[selected]]
|
||||||
: menu.items[selected].value
|
: menu.items[selected].value
|
||||||
);
|
);
|
||||||
|
}, 500);
|
||||||
|
return () => clearTimeout(timer);
|
||||||
}, [selected, menu, indexStates]);
|
}, [selected, menu, indexStates]);
|
||||||
|
|
||||||
useNuiEvent("setMenu", (data: MenuSettings) => {
|
useNuiEvent("setMenu", (data: MenuSettings) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user