diff --git a/resource/interface/client/radial.lua b/resource/interface/client/radial.lua index 649ab5b..606b751 100644 --- a/resource/interface/client/radial.lua +++ b/resource/interface/client/radial.lua @@ -21,6 +21,13 @@ function lib.showRadial(id) }) end +function lib.hideRadial() + SendNUIMessage({ + action = 'openRadialMenu', + data = false + }) +end + function lib.addRadialItem(items) if table.type(items) == 'array' then for i = 1, #items do @@ -53,9 +60,9 @@ RegisterNUICallback('radialClick', function(index, cb) local item = not currentRadial and menuItems[index + 1] or currentRadial.items[index + 1] if item.menu then lib.showRadial(item.menu) end if item.onSelect then item.onSelect() end + lib.hideRadial() end) --- TODO: fix transition? RegisterNUICallback('radialBack', function(_, cb) cb(1) if currentRadial.menu then diff --git a/web/src/features/menu/radial/index.tsx b/web/src/features/menu/radial/index.tsx index 2d9fd95..bccd303 100644 --- a/web/src/features/menu/radial/index.tsx +++ b/web/src/features/menu/radial/index.tsx @@ -74,12 +74,6 @@ const RadialMenu: React.FC = () => { setMenu({ ...menu, items: data }); }); - const handleClick = async (index: number) => { - fetchNui('radialClick', index); - // TODO: shouldClose - setVisible(false); - }; - return ( <> @@ -102,7 +96,7 @@ const RadialMenu: React.FC = () => { handleClick(index)} + onClick={() => fetchNui('radialClick', index)} > { { - setVisible(false); - menu.sub && fetchNui('radialBack'); + menu.sub ? fetchNui('radialBack') : setVisible(false); }} >