From 09ec37d69a2ab5f5c3e472522adf898be97a28e0 Mon Sep 17 00:00:00 2001 From: Cyril Date: Mon, 13 Jul 2026 17:11:59 +0200 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F(frontend)=20refactor=20scree?= =?UTF-8?q?n=20share=20zoom=20pan=20with=20useMove=20and=20imperative=20DO?= =?UTF-8?q?M=20updates?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit use react-aria useMove for pan, zoom/pan refs for DOM updates, --- .../components/ScreenShareZoomControls.tsx | 108 +++--- .../components/ScreenShareZoomableVideo.tsx | 32 +- .../rooms/livekit/hooks/useScreenShareZoom.ts | 325 ++++++++++-------- .../rooms/livekit/utils/screenShareZoom.ts | 115 +++++++ 4 files changed, 363 insertions(+), 217 deletions(-) create mode 100644 src/frontend/src/features/rooms/livekit/utils/screenShareZoom.ts diff --git a/src/frontend/src/features/rooms/livekit/components/ScreenShareZoomControls.tsx b/src/frontend/src/features/rooms/livekit/components/ScreenShareZoomControls.tsx index 51bba8ff..775bc3f1 100644 --- a/src/frontend/src/features/rooms/livekit/components/ScreenShareZoomControls.tsx +++ b/src/frontend/src/features/rooms/livekit/components/ScreenShareZoomControls.tsx @@ -79,9 +79,6 @@ export const ScreenShareZoomControls = ({ }, [containerRef]) const wheelShortcutVisual = isMacintosh() ? '⌘+scroll' : 'Ctrl+scroll' - const wheelShortcutSR = t( - isMacintosh() ? 'wheelShortcutMac' : 'wheelShortcut' - ) return (
{t(isMacintosh() ? 'wheelShortcutHintMac' : 'wheelShortcutHint')} - {isZoomed && ( - <> - - - {/* Visual only - zoom level is announced via useScreenReaderAnnounce. */} - - - )} + {/* Animated wrapper: collapses to 0 when not zoomed. padding/margin + trick keeps overflow:hidden from clipping focus rings. */} +
+ + + {/* Visual only - zoom level is announced via useScreenReaderAnnounce. */} + +