diff --git a/client/main.lua b/client/main.lua index 36eee6b4..447ca4c3 100644 --- a/client/main.lua +++ b/client/main.lua @@ -1,11 +1,6 @@ Citizen.CreateThread(function() - -- internal variables - ESX = nil - local Timeouts = {} - local GUI = {} - GUI.Time = 0 - local MenuType = 'dialog' - local OpenedMenus = {} + ESX = nil + local Timeouts, OpenedMenus, MenuType = {}, {}, 'dialog' while ESX == nil do TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end) @@ -20,10 +15,10 @@ Citizen.CreateThread(function() OpenedMenus[namespace .. '_' .. name] = true SendNUIMessage({ - action = 'openMenu', + action = 'openMenu', namespace = namespace, - name = name, - data = data + name = name, + data = data }) local timeoutId = ESX.SetTimeout(200, function() @@ -35,22 +30,15 @@ Citizen.CreateThread(function() local closeMenu = function(namespace, name) OpenedMenus[namespace .. '_' .. name] = nil - local OpenedMenuCount = 0 SendNUIMessage({ - action = 'closeMenu', + action = 'closeMenu', namespace = namespace, - name = name, - data = data + name = name, + data = data }) - for k,v in pairs(OpenedMenus) do - if v == true then - OpenedMenuCount = OpenedMenuCount + 1 - end - end - - if OpenedMenuCount == 0 then + if ESX.Table.SizeOf(OpenedMenus) == 0 then SetNuiFocus(false) end @@ -58,69 +46,53 @@ Citizen.CreateThread(function() ESX.UI.Menu.RegisterType(MenuType, openMenu, closeMenu) - RegisterNUICallback('menu_submit', function(data, cb) + AddEventHandler('esx_menu_dialog:message:menu_submit', function(data) local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name) - local post = true + local cancel = false - if menu.submit ~= nil then - - -- Is the submitted data a number? - if tonumber(data.value) ~= nil then - - -- Round float values + if menu.submit then + -- is the submitted data a number? + if tonumber(data.value) then data.value = ESX.Math.Round(tonumber(data.value)) - -- Check for negative value + -- check for negative value if tonumber(data.value) <= 0 then - post = false + cancel = true end end data.value = ESX.Math.Trim(data.value) - -- Don't post if the value is negative or if it's 0 - if post then - menu.submit(data, menu) + -- don't submit if the value is negative or if it's 0 + if cancel then + ESX.ShowNotification('That input is not allowed!') else - ESX.ShowNotification('That input is invalid!') + menu.submit(data, menu) end end - - cb('OK') end) - RegisterNUICallback('menu_cancel', function(data, cb) + AddEventHandler('esx_menu_dialog:message:menu_cancel', function(data) local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name) if menu.cancel ~= nil then menu.cancel(data, menu) end - - cb('OK') end) - RegisterNUICallback('menu_change', function(data, cb) + AddEventHandler('esx_menu_dialog:message:menu_change', function(data) local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name) if menu.change ~= nil then menu.change(data, menu) end - - cb('OK') end) Citizen.CreateThread(function() while true do Citizen.Wait(10) - local OpenedMenuCount = 0 - for k,v in pairs(OpenedMenus) do - if v == true then - OpenedMenuCount = OpenedMenuCount + 1 - end - end - - if OpenedMenuCount > 0 then + if ESX.Table.SizeOf(OpenedMenus) > 0 then DisableControlAction(0, 1, true) -- LookLeftRight DisableControlAction(0, 2, true) -- LookUpDown DisableControlAction(0, 142, true) -- MeleeAttackAlternate diff --git a/fxmanifest.lua b/fxmanifest.lua index 0f112e25..f5dc6573 100644 --- a/fxmanifest.lua +++ b/fxmanifest.lua @@ -6,7 +6,10 @@ description 'ESX Menu Dialog' version '1.1.0' -client_script 'client/main.lua' +client_scripts { + '@es_extended/client/wrapper.lua', + 'client/main.lua' +} ui_page 'html/ui.html' diff --git a/html/css/app.css b/html/css/app.css index 459d3c37..e8f361b5 100644 --- a/html/css/app.css +++ b/html/css/app.css @@ -71,4 +71,4 @@ .dialog button[name="cancel"] { width: 25%; height: 32px; -} \ No newline at end of file +} diff --git a/html/js/app.js b/html/js/app.js index 4988e11f..85a172b6 100644 --- a/html/js/app.js +++ b/html/js/app.js @@ -1,24 +1,22 @@ (function () { - let MenuTpl = '