Files
ox_lib/resource/interface/client/context.lua
Luke 282d81500c fix(client/context): Throw error when context id doesn't exist
Opening a context menu before registering it would previously result in the script completely erroring out and having stuck nui focus
2022-04-15 11:27:08 +02:00

52 lines
1.2 KiB
Lua

local contextMenus = {}
local openContextMenu = nil
function lib.showContext(id)
if not contextMenus[id] then return error('No context menu of such id found.') end
local data = contextMenus[id]
openContextMenu = id
SetNuiFocus(true, true)
SendNUIMessage({
action = 'showContext',
data = {
title = data.title,
menu = data.menu,
options = data.options
}
})
end
function lib.registerContext(context)
for k, v in pairs(context) do
if type(k) == 'number' then
contextMenus[v.id] = v
else
contextMenus[context.id] = context
break
end
end
end
function lib.getOpenContextMenu() return openContextMenu end
RegisterNUICallback('openContext', function(id, cb)
cb(1)
lib.showContext(id)
end)
RegisterNUICallback('clickContext', function(data, cb)
cb(1)
SetNuiFocus(false, false)
if data.event then TriggerEvent(data.event, data.args) end
if data.serverEvent then TriggerServerEvent(data.serverEvent, data.args) end
openContextMenu = nil
SendNUIMessage({
action = 'hideContext'
})
end)
RegisterNUICallback('closeContext', function(_, cb)
cb(1)
SetNuiFocus(false, false)
end)