From 626c05179e105fd57d79a8d4ff475dc5310acc2f Mon Sep 17 00:00:00 2001 From: ibs0d <53568938+ibs0d@users.noreply.github.com> Date: Mon, 9 Mar 2026 14:15:46 +1100 Subject: [PATCH] Restore live grid card zoom at grid layout layer --- web/src/views/live/DraggableGridLayout.tsx | 101 ++++++++++++--------- 1 file changed, 56 insertions(+), 45 deletions(-) diff --git a/web/src/views/live/DraggableGridLayout.tsx b/web/src/views/live/DraggableGridLayout.tsx index 14bd94d2d..ee57758b2 100644 --- a/web/src/views/live/DraggableGridLayout.tsx +++ b/web/src/views/live/DraggableGridLayout.tsx @@ -435,7 +435,7 @@ export default function DraggableGridLayout({ const [audioStates, setAudioStates] = useState({}); const [volumeStates, setVolumeStates] = useState({}); const [statsStates, setStatsStates] = useState({}); - const [_cameraZoomStates, setCameraZoomStates] = useState< + const [cameraZoomStates, setCameraZoomStates] = useState< Record >({}); const cameraZoomViewportRefs = useRef>( @@ -779,6 +779,9 @@ export default function DraggableGridLayout({ const useWebGL = currentGroupStreamingSettings?.[camera.name] ?.compatibilityMode || false; + const cameraZoomTransform = + cameraZoomStates[camera.name] ?? getDefaultZoomTransform(); + return ( - { - !isEditMode && onSelectCamera(camera.name); +
{ - setPreferredLiveModes((prevModes) => { - const newModes = { ...prevModes }; - if (e === "mse-decode") { - delete newModes[camera.name]; - } - return newModes; - }); - }} - onResetLiveMode={() => - resetPreferredLiveMode(camera.name) - } - playAudio={audioStates[camera.name]} - volume={volumeStates[camera.name]} - /> + > + { + !isEditMode && onSelectCamera(camera.name); + }} + onError={(e) => { + setPreferredLiveModes((prevModes) => { + const newModes = { ...prevModes }; + if (e === "mse-decode") { + delete newModes[camera.name]; + } + return newModes; + }); + }} + onResetLiveMode={() => + resetPreferredLiveMode(camera.name) + } + playAudio={audioStates[camera.name]} + volume={volumeStates[camera.name]} + /> +
{isEditMode && showCircles && }