From 306b7b367040d50272a6ce76cf07e91316b14e57 Mon Sep 17 00:00:00 2001 From: Luke Date: Sun, 6 Nov 2022 11:01:39 +0100 Subject: [PATCH] feat(web/context): disabled buttons --- package/client/resource/interface/context.ts | 1 + resource/interface/client/context.lua | 1 + web/src/features/dev/debug/context.ts | 1 + web/src/features/menu/context/ContextMenu.tsx | 2 +- web/src/features/menu/context/Item.tsx | 16 ++++++++++------ web/src/interfaces/context.ts | 1 + 6 files changed, 15 insertions(+), 7 deletions(-) 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) && (