From cb879af4159f06fa08088975bceb0050edbe6325 Mon Sep 17 00:00:00 2001 From: Bob Lee Date: Tue, 27 Oct 2026 10:47:25 +0800 Subject: [PATCH] fix(web): expand control preview and dismiss ended sessions --- .../ComputerUseControlCard.test.tsx | 149 ++++++++++++++++-- .../app/components/ComputerUseControlCard.tsx | 30 ++-- 2 files changed, 148 insertions(+), 31 deletions(-) diff --git a/src/web-ui/src/app/components/ComputerUseControlCard.test.tsx b/src/web-ui/src/app/components/ComputerUseControlCard.test.tsx index 5b6e803142..9c80924511 100644 --- a/src/web-ui/src/app/components/ComputerUseControlCard.test.tsx +++ b/src/web-ui/src/app/components/ComputerUseControlCard.test.tsx @@ -3,10 +3,11 @@ import React, { act } from 'react'; import { createRoot, type Root } from 'react-dom/client'; import { afterEach, beforeEach, expect, it, vi } from 'vitest'; import { ComputerUseControlCard } from './ComputerUseControlCard'; -import type { ComputerUseControlSnapshot } from '@/infrastructure/api/service-api/ComputerUseControlAPI'; +import type { ComputerUseControlPreview, ComputerUseControlSnapshot } from '@/infrastructure/api/service-api/ComputerUseControlAPI'; const mocks = vi.hoisted(() => ({ status: vi.fn(), stop: vi.fn(), preview: vi.fn(), - scope: { epoch: 1, isCurrent: () => true }, listeners: new Set<() => void>() })); + observeShare: vi.fn(), permissions: vi.fn(), targets: vi.fn(), + scope: { epoch: 1, isCurrent: () => true }, listeners: new Set<() => void>(), t: (key: string) => key })); vi.mock('@/infrastructure/api/service-api/ComputerUseControlAPI', async original => ({ ...await original(), computerUseControlAPI: mocks, })); @@ -14,7 +15,7 @@ vi.mock('@/infrastructure/peer-device/deviceSurface', () => ({ getActiveSurfaceScope: () => mocks.scope, onSurfaceActivated: (fn: () => void) => { mocks.listeners.add(fn); return () => mocks.listeners.delete(fn); }, })); -vi.mock('@/infrastructure/i18n', () => ({ useI18n: () => ({ t: (key: string) => key }) })); +vi.mock('@/infrastructure/i18n', () => ({ useI18n: () => ({ t: mocks.t }) })); vi.mock('@openbitfun/ui', () => ({ Button: ({ children, ...props }: React.ButtonHTMLAttributes) => , Card: ({ children }: React.PropsWithChildren) =>
{children}
, @@ -23,6 +24,7 @@ vi.mock('@openbitfun/ui', () => ({ CardFooter: ({ children }: React.PropsWithChildren) =>
{children}
, OverlayLayer: ({ children }: React.PropsWithChildren) =>
{children}
, OverflowText: ({ children }: React.PropsWithChildren) => {children}, + Select: () =>