Fix fitCameraOrder reset on every re-render due to unstable cameras ref

Replace cameras array dependency in the reset useEffect with a stable
cameraKey string (sorted camera names joined by comma). Since cameras
is recreated on every parent render, the previous effect fired on each
re-render, immediately clearing the persisted order. The key changes
only when the actual set of cameras changes.

https://claude.ai/code/session_018sRNpvMwxLgt5Un8PCjfRU
This commit is contained in:
Claude 2026-03-22 07:36:16 +00:00
parent 53caf3312b
commit a95e5321d0
No known key found for this signature in database

View File

@ -485,11 +485,16 @@ export default function DraggableGridLayout({
}));
}, [fitToScreen, fitGridParams, cameras, includeBirdseye, birdseyeConfig, fitCameraOrder]);
const cameraKey = useMemo(
() => cameras.map((c) => c.name).sort().join(","),
[cameras],
);
useEffect(() => {
// Сбросить сохранённый порядок только если изменился набор камер
// (добавили/удалили камеру), не при изменении размера окна
setFitCameraOrder(undefined);
}, [cameras, includeBirdseye]);
}, [cameraKey, includeBirdseye]);
const handleFitDragStop = useCallback(
(