mirror of
https://github.com/CommunityOx/ox_lib.git
synced 2026-08-16 22:46:03 +01:00
fix(web/radial): check whether radial menu was closed during transition
Closing the radial menu during the transition from the more pages would cause the menu to be stuck open
This commit is contained in:
@@ -207,6 +207,9 @@ RegisterNUICallback('radialBack', function(_, cb)
|
||||
|
||||
Wait(100)
|
||||
|
||||
-- If menu was closed during transition, don't open the submenu
|
||||
if not isOpen then return end
|
||||
|
||||
SendNUIMessage({
|
||||
action = 'openRadialMenu',
|
||||
data = {
|
||||
@@ -226,6 +229,15 @@ RegisterNUICallback('radialClose', function(_, cb)
|
||||
currentRadial = nil
|
||||
end)
|
||||
|
||||
RegisterNUICallback('radialTransition', function(_, cb)
|
||||
Wait(100)
|
||||
|
||||
-- If menu was closed during transition, don't open the submenu
|
||||
if not isOpen then return cb(false) end
|
||||
|
||||
cb(true)
|
||||
end)
|
||||
|
||||
lib.addKeybind({
|
||||
name = 'ox_lib-radial',
|
||||
description = 'Open radial menu',
|
||||
@@ -235,7 +247,7 @@ lib.addKeybind({
|
||||
menuPage = 1
|
||||
return lib.hideRadial()
|
||||
end
|
||||
|
||||
|
||||
menuPage = nil
|
||||
|
||||
if #menuItems == 0 or IsNuiFocused() or IsPauseMenuActive() then return end
|
||||
|
||||
@@ -70,8 +70,11 @@ const RadialMenu: React.FC = () => {
|
||||
|
||||
const changePage = async (increment?: boolean) => {
|
||||
setVisible(false);
|
||||
// May cause issues if user toggles off the menu while in transition?
|
||||
await new Promise((resolve) => setTimeout(resolve, 100));
|
||||
|
||||
const didTransition: boolean = await fetchNui('radialTransition');
|
||||
|
||||
if (!didTransition) return;
|
||||
|
||||
setVisible(true);
|
||||
setMenu({ ...menu, page: increment ? menu.page + 1 : menu.page - 1 });
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user