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:
Luke
2023-02-25 14:27:20 +01:00
parent 709d512422
commit 6e1a978038
2 changed files with 18 additions and 3 deletions

View File

@@ -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

View File

@@ -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 });
};