diff --git a/package/client/resource/interface/context.ts b/package/client/resource/interface/context.ts index 2f2a860..0a00054 100644 --- a/package/client/resource/interface/context.ts +++ b/package/client/resource/interface/context.ts @@ -9,6 +9,7 @@ interface ContextMenuItem { arrow?: boolean; description?: string; metadata?: string | { [key: string]: any } | string[]; + disabled?: boolean; event?: string; serverEvent?: string; args?: any; diff --git a/resource/interface/client/context.lua b/resource/interface/client/context.lua index 54ff347..db87649 100644 --- a/resource/interface/client/context.lua +++ b/resource/interface/client/context.lua @@ -10,6 +10,7 @@ local openContextMenu = nil ---@field arrow? boolean ---@field description? string ---@field metadata? string | { [string]: any } | string[] +---@field disabled? boolean ---@field event? string ---@field serverEvent? string ---@field args? any diff --git a/web/src/features/dev/debug/context.ts b/web/src/features/dev/debug/context.ts index ca3585b..a10901d 100644 --- a/web/src/features/dev/debug/context.ts +++ b/web/src/features/dev/debug/context.ts @@ -15,6 +15,7 @@ export const debugContext = () => { icon: 'inbox', image: 'https://i.imgur.com/YAe7k17.jpeg', metadata: [{ label: 'Value 1', value: 300 }], + disabled: true, }, { title: 'Menu button', diff --git a/web/src/features/menu/context/ContextMenu.tsx b/web/src/features/menu/context/ContextMenu.tsx index da8f0f4..71819ee 100644 --- a/web/src/features/menu/context/ContextMenu.tsx +++ b/web/src/features/menu/context/ContextMenu.tsx @@ -7,7 +7,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { fetchNui } from '../../../utils/fetchNui'; const openMenu = (id: string | undefined) => { - fetchNui('openContext', {id: id, back: true}); + fetchNui('openContext', { id: id, back: true }); }; const ContextMenu: React.FC = () => { diff --git a/web/src/features/menu/context/Item.tsx b/web/src/features/menu/context/Item.tsx index dc4d0b4..401e47f 100644 --- a/web/src/features/menu/context/Item.tsx +++ b/web/src/features/menu/context/Item.tsx @@ -34,7 +34,7 @@ const Item: React.FC<{ (button.menu ? openMenu(button.menu) : clickContext(buttonKey))} + color={button.disabled ? '#718096' : undefined} + onClick={() => + !button.disabled ? (button.menu ? openMenu(button.menu) : clickContext(buttonKey)) : null + } > {button?.icon && ( - + {button.title ? button.title : buttonKey} {button.description && ( - + {button.description} )} @@ -84,7 +88,7 @@ const Item: React.FC<{ )} - {(button.metadata || button.image) && ( + {!button.disabled && (button.metadata || button.image) && (