From fb6f4293941eafa6c059fd9dfcfe7d0f370e4d77 Mon Sep 17 00:00:00 2001 From: ElPumpo Date: Wed, 17 Oct 2018 20:35:30 +0200 Subject: [PATCH] RegisterNUICallback instead of AddEventHandler, improves performance Co-Authored-By: SomeGuyX --- __resource.lua | 2 +- client/main.lua | 12 +++++++++--- html/js/app.js | 24 ++++++++++++------------ 3 files changed, 22 insertions(+), 16 deletions(-) diff --git a/__resource.lua b/__resource.lua index 43bb03aa..da307f67 100644 --- a/__resource.lua +++ b/__resource.lua @@ -2,7 +2,7 @@ resource_manifest_version '44febabe-d386-4d18-afbe-5e627f4af937' description 'ESX Menu Default' -version '1.0.3' +version '1.0.4' client_scripts { '@es_extended/client/wrapper.lua', diff --git a/client/main.lua b/client/main.lua index 5a482921..13433dd3 100644 --- a/client/main.lua +++ b/client/main.lua @@ -43,23 +43,27 @@ Citizen.CreateThread(function() ESX.UI.Menu.RegisterType(MenuType, openMenu, closeMenu) - AddEventHandler('esx_menu_default:message:menu_submit', function(data) + 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) - AddEventHandler('esx_menu_default:message:menu_cancel', function(data) + 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) - AddEventHandler('esx_menu_default:message:menu_change', function(data) + RegisterNUICallback('menu_change', function(data, cb) local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name) for i=1, #data.elements, 1 do @@ -76,6 +80,8 @@ Citizen.CreateThread(function() if menu.change ~= nil then menu.change(data, menu) end + + cb('OK') end) Citizen.CreateThread(function() diff --git a/html/js/app.js b/html/js/app.js index 0a226575..5a8f882a 100644 --- a/html/js/app.js +++ b/html/js/app.js @@ -79,7 +79,7 @@ }; - ESX_MENU.render = function(){ + ESX_MENU.render = function() { let menuContainer = document.getElementById('menus'); let focused = ESX_MENU.getFocused(); @@ -93,7 +93,7 @@ let menuData = ESX_MENU.opened[namespace][name]; let view = JSON.parse(JSON.stringify(menuData)); - for(let i=0; i