mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-04-05 22:57:40 +03:00
Merge pull request #95 from ibs0d/claude/add-fit-to-screen-mode-XvHoV
Allow drag reordering in Fit to Screen mode
This commit is contained in:
commit
f2b6f08124
@ -466,7 +466,32 @@ export default function DraggableGridLayout({
|
||||
}));
|
||||
}, [fitToScreen, fitGridParams, cameras, includeBirdseye, birdseyeConfig]);
|
||||
|
||||
const activeGridLayout = fitToScreen && fitLayout ? fitLayout : currentGridLayout;
|
||||
const [fitLayoutOverride, setFitLayoutOverride] = useState<Layout | undefined>();
|
||||
|
||||
useEffect(() => {
|
||||
setFitLayoutOverride(undefined);
|
||||
}, [fitGridParams, cameras, includeBirdseye]);
|
||||
|
||||
const handleFitDragStop = useCallback(
|
||||
(newLayout: Layout) => {
|
||||
if (!fitToScreen || !fitGridParams) return;
|
||||
const w = fitGridParams.gridUnitsPerCam;
|
||||
const normalized = newLayout.map((item) => ({
|
||||
...item,
|
||||
w,
|
||||
h: w,
|
||||
}));
|
||||
setFitLayoutOverride(normalized);
|
||||
},
|
||||
[fitToScreen, fitGridParams],
|
||||
);
|
||||
|
||||
const activeGridLayout = useMemo(() => {
|
||||
if (fitToScreen) {
|
||||
return fitLayoutOverride ?? fitLayout ?? currentGridLayout;
|
||||
}
|
||||
return currentGridLayout;
|
||||
}, [fitToScreen, fitLayoutOverride, fitLayout, currentGridLayout]);
|
||||
|
||||
const handleResize = (
|
||||
_layout: Layout,
|
||||
@ -837,9 +862,9 @@ export default function DraggableGridLayout({
|
||||
handles: isEditMode && !fitToScreen ? ["sw", "nw", "se", "ne"] : [],
|
||||
}}
|
||||
dragConfig={{
|
||||
enabled: isEditMode && !fitToScreen,
|
||||
enabled: isEditMode,
|
||||
}}
|
||||
onDragStop={handleLayoutChange}
|
||||
onDragStop={fitToScreen ? handleFitDragStop : handleLayoutChange}
|
||||
onResize={handleResize}
|
||||
onResizeStart={() => setShowCircles(false)}
|
||||
onResizeStop={handleLayoutChange}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user