diff --git a/package/client/resource/interface/menu.ts b/package/client/resource/interface/menu.ts index 8d5e3ae..258baa5 100644 --- a/package/client/resource/interface/menu.ts +++ b/package/client/resource/interface/menu.ts @@ -6,7 +6,7 @@ type ChangeFunction = (selected: number, scrollIndex: number | null, args: any | interface MenuOptions { label: string; icon?: IconName | [IconPrefix, IconName]; - values?: string[]; + values?: Array; description?: string; defaultIndex?: number; args?: any; diff --git a/resource/interface/client/menu.lua b/resource/interface/client/menu.lua index 4cf6794..7948cb9 100644 --- a/resource/interface/client/menu.lua +++ b/resource/interface/client/menu.lua @@ -10,7 +10,7 @@ local keepInput = IsNuiFocusKeepingInput() ---@class MenuOptions ---@field label string ---@field icon? string ----@field values? string[] +---@field values? Array ---@field description? string ---@field defaultIndex? number ---@field args? any diff --git a/web/src/features/dev/debug/menu.ts b/web/src/features/dev/debug/menu.ts index 2d85e0b..ad8a91a 100644 --- a/web/src/features/dev/debug/menu.ts +++ b/web/src/features/dev/debug/menu.ts @@ -17,7 +17,11 @@ export const debugMenu = () => { }, { label: 'Vehicle class', - values: ['Nice', 'Super nice', 'Extra nice'], + values: [ + { label: 'nice', description: 'description 1' }, + { label: 'even nicer', description: 'description 2' }, + 'pogchamp', + ], icon: 'tag', description: 'Tooltip description 2', }, diff --git a/web/src/features/menu/list/ListItem.tsx b/web/src/features/menu/list/ListItem.tsx index fb5111c..4f57bfd 100644 --- a/web/src/features/menu/list/ListItem.tsx +++ b/web/src/features/menu/list/ListItem.tsx @@ -38,7 +38,12 @@ const ListItem = forwardRef, Props>(({ item, index, {item.label} - {item.values[scrollIndex]} + + {typeof item.values[scrollIndex] === 'object' + ? // @ts-ignore for some reason even checking the type TS still thinks it's a string + item.values[scrollIndex].label + : item.values[scrollIndex]} + diff --git a/web/src/features/menu/list/index.tsx b/web/src/features/menu/list/index.tsx index 1a332d2..42c82f1 100644 --- a/web/src/features/menu/list/index.tsx +++ b/web/src/features/menu/list/index.tsx @@ -11,7 +11,7 @@ import React from 'react'; export interface MenuItem { label: string; - values?: string[]; + values?: Array; description?: string; icon?: IconProp; defaultIndex?: number; @@ -147,7 +147,12 @@ const ListMenu: React.FC = () => { <> {visible && (