diff --git a/resource/interface/client/alert.lua b/resource/interface/client/alert.lua index f2feac936..516dec33f 100644 --- a/resource/interface/client/alert.lua +++ b/resource/interface/client/alert.lua @@ -23,6 +23,7 @@ local alertId = 0 ---@param timeout? number Force the window to timeout after `x` milliseconds. ---@return 'cancel' | 'confirm' | nil function lib.alertDialog(data, timeout) + lib.closeAllNui('alert') if alert then return end local id = alertId + 1 diff --git a/resource/interface/client/context.lua b/resource/interface/client/context.lua index 0bb379eb3..85acf1524 100644 --- a/resource/interface/client/context.lua +++ b/resource/interface/client/context.lua @@ -54,6 +54,7 @@ end ---@param id string function lib.showContext(id) + lib.closeAllNui('context') if not contextMenus[id] then error('No context menu of such id found.') end local data = contextMenus[id] diff --git a/resource/interface/client/input.lua b/resource/interface/client/input.lua index 3ab7a701f..31f6f8231 100644 --- a/resource/interface/client/input.lua +++ b/resource/interface/client/input.lua @@ -42,6 +42,7 @@ local input ---@param options InputDialogOptionsProps[]? ---@return string[] | number[] | boolean[] | nil function lib.inputDialog(heading, rows, options) + lib.closeAllNui('input') if input then return end input = promise.new() diff --git a/resource/interface/client/main.lua b/resource/interface/client/main.lua index af07e262b..c49254b77 100644 --- a/resource/interface/client/main.lua +++ b/resource/interface/client/main.lua @@ -20,3 +20,21 @@ function lib.resetNuiFocus() SetNuiFocus(false, false) SetNuiFocusKeepInput(keepInput) end + +function lib.closeAllNui(except) + if except ~= 'context' and lib.getOpenContextMenu() then + lib.hideContext(false) + end + if except ~= 'menu' and lib.getOpenMenu() then + lib.hideMenu(false) + end + if except ~= 'input' then + lib.closeInputDialog() + end + if except ~= 'alert' then + lib.closeAlertDialog() + end + if except ~= 'radial' then + lib.hideRadial() + end +end diff --git a/resource/interface/client/menu.lua b/resource/interface/client/menu.lua index e8de16d11..f5baecc92 100644 --- a/resource/interface/client/menu.lua +++ b/resource/interface/client/menu.lua @@ -54,6 +54,7 @@ end ---@param id string ---@param startIndex? number function lib.showMenu(id, startIndex) + lib.closeAllNui('menu') local menu = registeredMenus[id] if not menu then error(('No menu with id %s was found'):format(id))