From 2c5da744eba6625d5bff6a3e6e26cdcb645365c5 Mon Sep 17 00:00:00 2001 From: joaner <1726541+joaner@users.noreply.github.com> Date: Wed, 5 Aug 2026 17:01:31 +0800 Subject: [PATCH 1/2] refactor: redesign media debug overlay as vertical key-value panel Replace the crowded single-line layout with a Stats-for-nerds style overlay, drop redundant feature/dtype/title fields, and allow copy. --- .../panels/Common/MediaDebugOverlay.tsx | 27 +++++++------------ .../panels/ImagePanel/ImagePanel.tsx | 1 - .../panels/VideoPanel/VideoPanel.tsx | 1 - src/react/locales/en.json | 8 ------ src/react/locales/zh.json | 8 ------ tests/media-debug-overlay.spec.ts | 9 ++++--- 6 files changed, 15 insertions(+), 39 deletions(-) diff --git a/src/react/components/panels/Common/MediaDebugOverlay.tsx b/src/react/components/panels/Common/MediaDebugOverlay.tsx index 0ec3801..9a87dd6 100644 --- a/src/react/components/panels/Common/MediaDebugOverlay.tsx +++ b/src/react/components/panels/Common/MediaDebugOverlay.tsx @@ -4,7 +4,6 @@ import { cn } from '@/ui'; import type { MediaDebugMetadata } from '@/core'; interface MediaDebugOverlayProps { - featureKey: string; metadata: MediaDebugMetadata | null; translationPrefix: 'panels.video.debug' | 'panels.image.debug'; className?: string; @@ -27,7 +26,6 @@ function formatTimeline(metadata: MediaDebugMetadata): string | null { } export const MediaDebugOverlay: React.FC = ({ - featureKey, metadata, translationPrefix, className, @@ -39,8 +37,6 @@ export const MediaDebugOverlay: React.FC = ({ } const items = [ - { label: t(`${translationPrefix}.feature`), value: featureKey, breakAll: true }, - { label: t(`${translationPrefix}.dtype`), value: metadata.dtype }, { label: t(`${translationPrefix}.fps`), value: metadata.fps != null ? String(metadata.fps) : null, @@ -64,27 +60,22 @@ export const MediaDebugOverlay: React.FC = ({ { label: t(`${translationPrefix}.clipRange`), value: formatTimeline(metadata) }, ].filter((item) => item.value); + if (items.length === 0) { + return null; + } + return (