mirror of
https://github.com/jimathy/jim_bridge.git
synced 2026-08-17 05:56:02 +01:00
Update contextMenus.lua to use new format
This commit is contained in:
@@ -10,44 +10,9 @@
|
||||
• esx (using ESX.UI.Menu)
|
||||
]]
|
||||
|
||||
--- Opens a menu using the configured menu system.
|
||||
---
|
||||
--- This function translates code and creates menus in several different menu scripts, depending on the configured menu system specified in `Config.System.Menu`.
|
||||
---
|
||||
---@param Menu table A table containing the menu options to display.
|
||||
--- Each menu item can include:
|
||||
--- - header (`string`): The text to display for the menu item.
|
||||
--- - txt (`string`, optional): Additional text or description.
|
||||
--- - icon (`string`, optional): Icon to display with the menu item.
|
||||
--- - onSelect (`function`, optional): Function to execute when the menu item is selected.
|
||||
--- - arrow (`boolean`, optional): Whether to display an arrow next to the item (for certain menus).
|
||||
--- - params (`table`, optional): Additional parameters, such as events and arguments.
|
||||
--- - isMenuHeader (`boolean`, optional): Marks the item as a header.
|
||||
--- - disabled (`boolean`, optional): Disables the menu item if `true`.
|
||||
---
|
||||
---@param data table A table containing configuration data for the menu.
|
||||
--- - header (`string`): The header/title of the menu.
|
||||
--- - headertxt (`string`, optional): Additional header text.
|
||||
--- - onBack (`function`, optional): Function to call when the "Return" option is selected.
|
||||
--- - onExit (`function`, optional): Function to call when the menu is exited.
|
||||
--- - onSelected (`function`, optional): Function to call when a menu item is selected (for certain menu systems).
|
||||
--- - canClose (`boolean`, optional): Whether the menu can be closed by the user.
|
||||
---
|
||||
---@usage
|
||||
--- ```lua
|
||||
--- openMenu({
|
||||
--- { header = "Option 1", txt = "Description 1", onSelect = function() print("Option 1 selected") end },
|
||||
--- { header = "Option 2", txt = "Description 2", onSelect = function() print("Option 2 selected") end },
|
||||
--- }, {
|
||||
--- header = "Main Menu",
|
||||
--- headertxt = "Select an option",
|
||||
--- onBack = function() print("Return selected") end,
|
||||
--- onExit = function() print("Menu closed") end,
|
||||
--- canClose = true,
|
||||
--- })
|
||||
--- ```
|
||||
function openMenu(Menu, data)
|
||||
if Config.System.Menu == "ox" then
|
||||
local contextFunc = {
|
||||
["ox"] =
|
||||
function(Menu, data)
|
||||
local index = nil
|
||||
if data.onBack and not data.onSelected then
|
||||
table.insert(Menu, 1, {
|
||||
@@ -110,8 +75,10 @@ function openMenu(Menu, data)
|
||||
else
|
||||
lib.showContext(menuID)
|
||||
end
|
||||
end,
|
||||
|
||||
elseif Config.System.Menu == "qb" then
|
||||
["qb"] =
|
||||
function(Menu, data)
|
||||
if data.onBack then
|
||||
table.insert(Menu, 1, {
|
||||
icon = "fas fa-circle-arrow-left",
|
||||
@@ -151,8 +118,10 @@ function openMenu(Menu, data)
|
||||
Menu[k].isMenuHeader = Menu[k].isMenuHeader or Menu[k].disable
|
||||
end
|
||||
exports[QBMenuExport]:openMenu(Menu)
|
||||
end,
|
||||
|
||||
elseif Config.System.Menu == "gta" then
|
||||
["gta"] =
|
||||
function(Menu, data)
|
||||
WarMenu.CreateMenu(tostring(Menu), data.header, " ", {
|
||||
titleColor = { 222, 255, 255 },
|
||||
maxOptionCountOnScreen = 15,
|
||||
@@ -206,8 +175,10 @@ function openMenu(Menu, data)
|
||||
Wait(0)
|
||||
end
|
||||
end)
|
||||
end,
|
||||
|
||||
elseif Config.System.Menu == "esx" then
|
||||
["esx"] =
|
||||
function(Menu, data)
|
||||
for k in pairs(Menu) do
|
||||
Menu[k].label = Menu[k].header
|
||||
Menu[k].name = "button"..k
|
||||
@@ -245,8 +216,10 @@ function openMenu(Menu, data)
|
||||
function(data, menu)
|
||||
menu.close()
|
||||
end)
|
||||
end,
|
||||
|
||||
elseif Config.System.Menu == "lation" then
|
||||
["lation"] =
|
||||
function(Menu, data)
|
||||
if data.onBack then
|
||||
table.insert(Menu, 1, {
|
||||
icon = "fas fa-circle-arrow-left",
|
||||
@@ -290,12 +263,63 @@ function openMenu(Menu, data)
|
||||
|
||||
-- Show menu
|
||||
exports.lation_ui:showMenu('menu')
|
||||
end,
|
||||
}
|
||||
|
||||
|
||||
--- Opens a menu using the configured menu system.
|
||||
---
|
||||
--- This function translates code and creates menus in several different menu scripts, depending on the configured menu system specified in `Config.System.Menu`.
|
||||
---
|
||||
---@param Menu table A table containing the menu options to display.
|
||||
--- Each menu item can include:
|
||||
--- - header (`string`): The text to display for the menu item.
|
||||
--- - txt (`string`, optional): Additional text or description.
|
||||
--- - icon (`string`, optional): Icon to display with the menu item.
|
||||
--- - onSelect (`function`, optional): Function to execute when the menu item is selected.
|
||||
--- - arrow (`boolean`, optional): Whether to display an arrow next to the item (for certain menus).
|
||||
--- - params (`table`, optional): Additional parameters, such as events and arguments.
|
||||
--- - isMenuHeader (`boolean`, optional): Marks the item as a header.
|
||||
--- - disabled (`boolean`, optional): Disables the menu item if `true`.
|
||||
---
|
||||
---@param data table A table containing configuration data for the menu.
|
||||
--- - header (`string`): The header/title of the menu.
|
||||
--- - headertxt (`string`, optional): Additional header text.
|
||||
--- - onBack (`function`, optional): Function to call when the "Return" option is selected.
|
||||
--- - onExit (`function`, optional): Function to call when the menu is exited.
|
||||
--- - onSelected (`function`, optional): Function to call when a menu item is selected (for certain menu systems).
|
||||
--- - canClose (`boolean`, optional): Whether the menu can be closed by the user.
|
||||
---
|
||||
---@usage
|
||||
--- ```lua
|
||||
--- openMenu({
|
||||
--- { header = "Option 1", txt = "Description 1", onSelect = function() print("Option 1 selected") end },
|
||||
--- { header = "Option 2", txt = "Description 2", onSelect = function() print("Option 2 selected") end },
|
||||
--- }, {
|
||||
--- header = "Main Menu",
|
||||
--- headertxt = "Select an option",
|
||||
--- onBack = function() print("Return selected") end,
|
||||
--- onExit = function() print("Menu closed") end,
|
||||
--- canClose = true,
|
||||
--- })
|
||||
--- ```
|
||||
function openMenu(Menu, data)
|
||||
contextFunc[Config.System.Menu](Menu, data)
|
||||
end
|
||||
end
|
||||
|
||||
-- Line break conversion table, basically, to automate the linebreak in functions `br`
|
||||
-- This is declared and automatically sets it for what menu you are using (depends if one is uding MD formatting or HTML formatting)
|
||||
local lineBreakConversion = {
|
||||
["ox"] = "\n",
|
||||
["gta"] = "\n",
|
||||
["lation"] = "\n",
|
||||
|
||||
["qb"] = "<br>",
|
||||
["esx"] = "<br>",
|
||||
}
|
||||
|
||||
--- A line break constant used for menu header formatting.
|
||||
br = (Config.System.Menu == "ox" or Config.System.Menu == "gta" or Config.System.Menu == "lation") and "\n" or "<br>"
|
||||
br = lineBreakConversion[Config.System.Menu]
|
||||
|
||||
--- Checks if the current menu system is 'ox' or 'gta' for formatting purposes.
|
||||
--- @return boolean boolean True if using ox or gta menus, otherwise false.
|
||||
|
||||
Reference in New Issue
Block a user