From b9489a795b2c9b540dffe81ceeeef958e03eb7f8 Mon Sep 17 00:00:00 2001 From: Steven RYDELL Date: Thu, 30 Jul 2026 15:31:16 +0200 Subject: [PATCH] feat: show Redis and Valkey icons for Redis/Valkey backend variant --- src/components/common/BackendIcon.tsx | 20 ++++++++++++++++++++ src/components/forms/DynamicForm.tsx | 6 +++--- src/components/forms/FieldWidget.tsx | 6 +++--- 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/components/common/BackendIcon.tsx b/src/components/common/BackendIcon.tsx index bb72b04..1d19faa 100644 --- a/src/components/common/BackendIcon.tsx +++ b/src/components/common/BackendIcon.tsx @@ -99,3 +99,23 @@ export function isBackendIconKnown(backend: string | null | undefined): boolean const key = backend.toLowerCase().replace(/[^a-z0-9]/g, ''); return Boolean(BACKEND_ICONS[key] ?? BACKEND_ICONS[backend.toLowerCase()]); } + +interface BackendVariantIconProps { + variant: { name: string; label: string }; + className?: string; +} + +export function BackendVariantIcon({ variant, className }: BackendVariantIconProps): React.ReactElement | null { + const nameLower = variant.name.toLowerCase(); + const labelLower = variant.label?.toLowerCase() ?? ''; + const isRedisValkey = nameLower === 'redis' && labelLower.includes('valkey'); + if (isRedisValkey) { + return ( + + + + + ); + } + return ; +} diff --git a/src/components/forms/DynamicForm.tsx b/src/components/forms/DynamicForm.tsx index 9def269..2f8bc77 100644 --- a/src/components/forms/DynamicForm.tsx +++ b/src/components/forms/DynamicForm.tsx @@ -53,7 +53,7 @@ import { SECRET_MASK } from '@/lib/jmapUtils'; import { toast } from '@/hooks/use-toast'; import { logFormChange } from '@/lib/debug'; import { FieldWidget } from '@/components/forms/FieldWidget'; -import { BackendIcon } from '@/components/common/BackendIcon'; +import { BackendVariantIcon } from '@/components/common/BackendIcon'; import type { Field, Fields, Form, FormField, Schema } from '@/types/schema'; import type { JmapSetResponse, JmapSetError, JmapMethodCall } from '@/types/jmap'; @@ -781,7 +781,7 @@ export function DynamicForm({ viewName, objectId }: DynamicFormProps) {
- + {selectedVariantLabel || t('form.selectType', 'Select type...')} @@ -1488,7 +1488,7 @@ function EmbeddedObjectField({ {resolvedSchema.variants.map((v) => ( - + {v.label}