mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-04-05 14:47:40 +03:00
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:
parent
53caf3312b
commit
a95e5321d0
@ -485,11 +485,16 @@ export default function DraggableGridLayout({
|
|||||||
}));
|
}));
|
||||||
}, [fitToScreen, fitGridParams, cameras, includeBirdseye, birdseyeConfig, fitCameraOrder]);
|
}, [fitToScreen, fitGridParams, cameras, includeBirdseye, birdseyeConfig, fitCameraOrder]);
|
||||||
|
|
||||||
|
const cameraKey = useMemo(
|
||||||
|
() => cameras.map((c) => c.name).sort().join(","),
|
||||||
|
[cameras],
|
||||||
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
// Сбросить сохранённый порядок только если изменился набор камер
|
// Сбросить сохранённый порядок только если изменился набор камер
|
||||||
// (добавили/удалили камеру), не при изменении размера окна
|
// (добавили/удалили камеру), не при изменении размера окна
|
||||||
setFitCameraOrder(undefined);
|
setFitCameraOrder(undefined);
|
||||||
}, [cameras, includeBirdseye]);
|
}, [cameraKey, includeBirdseye]);
|
||||||
|
|
||||||
const handleFitDragStop = useCallback(
|
const handleFitDragStop = useCallback(
|
||||||
(
|
(
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user