Files
esx_core/client/main.lua
T
Jérémie N'gadi c7303bfb6b Add files
2017-07-31 12:55:02 +02:00

77 lines
1.4 KiB
Lua

ESX = nil
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
local MenuType = 'list'
local OpenedMenus = {}
local openMenu = function(namespace, name, data)
OpenedMenus[namespace .. '_' .. name] = true
SendNUIMessage({
action = 'openMenu',
namespace = namespace,
name = name,
data = data,
})
ESX.SetTimeout(200, function()
SetNuiFocus(true, true)
end)
end
local closeMenu = function(namespace, name)
OpenedMenus[namespace .. '_' .. name] = nil
local OpenedMenuCount = 0
SendNUIMessage({
action = 'closeMenu',
namespace = namespace,
name = name,
data = data,
})
for k,v in pairs(OpenedMenus) do
if v == true then
OpenedMenuCount = OpenedMenuCount + 1
end
end
if OpenedMenuCount == 0 then
SetNuiFocus(false)
end
end
ESX.UI.Menu.RegisterType(MenuType, openMenu, closeMenu)
RegisterNUICallback('menu_submit', function(data, cb)
local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name)
if menu.submit ~= nil then
menu.submit(data, menu)
end
cb('OK')
end)
RegisterNUICallback('menu_cancel', function(data, cb)
local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name)
if menu.cancel ~= nil then
menu.cancel(data, menu)
end
cb('OK')
end)
end)