From 6d52ecf985e8be2ca7383f5a51bbd349c69133da Mon Sep 17 00:00:00 2001 From: Luke Date: Sat, 30 Jul 2022 10:20:43 +0200 Subject: [PATCH] feat(web/menu): fetchnui on item change --- web/src/features/menu/list/index.tsx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/web/src/features/menu/list/index.tsx b/web/src/features/menu/list/index.tsx index 4767d3d..fa50278 100644 --- a/web/src/features/menu/list/index.tsx +++ b/web/src/features/menu/list/index.tsx @@ -6,6 +6,7 @@ import ListItem from "./ListItem"; import Header from "./Header"; import FocusTrap from "focus-trap-react"; import { IconProp } from "@fortawesome/fontawesome-svg-core"; +import { fetchNui } from "../../../utils/fetchNui"; export interface MenuItem { label: string; @@ -85,9 +86,17 @@ 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(); - }, [selected]); + fetchNui( + "changeSelected", + Array.isArray(menu.items[selected].value) + ? menu.items[selected].value[indexStates[selected]] + : menu.items[selected].value + ); + }, [selected, menu, indexStates]); useNuiEvent("setMenu", (data: MenuSettings) => { if (!data.position) data.position = "top-left";