From 1c5f4d6ac8597177651281c6b3a9803710025797 Mon Sep 17 00:00:00 2001
From: Luke <39926192+LukeWasTakenn@users.noreply.github.com>
Date: Sat, 28 Oct 2023 18:30:28 +0200
Subject: [PATCH] feat(web/context): allow separate metadata progress bars
colors
Closes #430
---
package/client/resource/interface/context.ts | 5 ++++-
web/src/features/dev/debug/context.ts | 2 ++
.../menu/context/components/ContextButton.tsx | 11 +++++++++--
web/src/typings/context.ts | 5 ++++-
4 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/package/client/resource/interface/context.ts b/package/client/resource/interface/context.ts
index ff8fda8..20180bd 100644
--- a/package/client/resource/interface/context.ts
+++ b/package/client/resource/interface/context.ts
@@ -12,7 +12,10 @@ interface ContextMenuItem {
colorScheme?: string;
onSelect?: (args: any) => void;
readOnly?: boolean;
- metadata?: string[] | { [key: string]: any } | { label: string; value: any; progress?: number }[];
+ metadata?:
+ | string[]
+ | { [key: string]: any }
+ | { label: string; value: any; progress?: number; colorScheme?: string }[];
disabled?: boolean;
event?: string;
serverEvent?: string;
diff --git a/web/src/features/dev/debug/context.ts b/web/src/features/dev/debug/context.ts
index cfefefb..2a3114f 100644
--- a/web/src/features/dev/debug/context.ts
+++ b/web/src/features/dev/debug/context.ts
@@ -19,11 +19,13 @@ export const debugContext = () => {
['label']: 'Body',
['value']: '55%',
['progress']: 55,
+ colorScheme: 'red',
},
{
['label']: 'Engine',
['value']: '100%',
['progress']: 100,
+ colorScheme: 'green',
},
{
['label']: 'Oil',
diff --git a/web/src/features/menu/context/components/ContextButton.tsx b/web/src/features/menu/context/components/ContextButton.tsx
index 534541f..9ea3eee 100644
--- a/web/src/features/menu/context/components/ContextButton.tsx
+++ b/web/src/features/menu/context/components/ContextButton.tsx
@@ -145,14 +145,21 @@ const ContextButton: React.FC<{
{button.image && }
{Array.isArray(button.metadata) ? (
button.metadata.map(
- (metadata: string | { label: string; value?: any; progress?: number }, index: number) => (
+ (
+ metadata: string | { label: string; value?: any; progress?: number; colorScheme?: string },
+ index: number
+ ) => (
<>
{typeof metadata === 'string' ? `${metadata}` : `${metadata.label}: ${metadata?.value ?? ''}`}
{typeof metadata === 'object' && metadata.progress !== undefined && (
-
+
)}
>
)
diff --git a/web/src/typings/context.ts b/web/src/typings/context.ts
index c9f6c4f..1bcfd14 100644
--- a/web/src/typings/context.ts
+++ b/web/src/typings/context.ts
@@ -11,7 +11,10 @@ export interface Option {
progress?: number;
colorScheme?: string;
readOnly?: boolean;
- metadata?: string[] | { [key: string]: any } | { label: string; value: any; progress?: number }[];
+ metadata?:
+ | string[]
+ | { [key: string]: any }
+ | { label: string; value: any; progress?: number; colorScheme?: string }[];
disabled?: boolean;
event?: string;
serverEvent?: string;