mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-04-05 22:57:40 +03:00
Merge pull request #105 from ibs0d/claude/add-fit-to-screen-mode-XvHoV
Debug: expand handleFitDragStop logging + add activeGridLayout log
This commit is contained in:
commit
e9f7198e5f
@ -481,29 +481,15 @@ export default function DraggableGridLayout({
|
|||||||
_placeholder: LayoutItem | null,
|
_placeholder: LayoutItem | null,
|
||||||
_event: Event,
|
_event: Event,
|
||||||
) => {
|
) => {
|
||||||
if (!fitToScreen || !fitGridParams || !newItem) return;
|
if (!fitToScreen || !fitGridParams || !newItem) {
|
||||||
|
console.log("[FitDrag] SKIP: early return", { fitToScreen, fitGridParams: !!fitGridParams, newItem: !!newItem });
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const w = fitGridParams.gridUnitsPerCam;
|
const w = fitGridParams.gridUnitsPerCam;
|
||||||
const colsPerRow = fitGridParams.colsPerRow;
|
const colsPerRow = fitGridParams.colsPerRow;
|
||||||
const draggedId = newItem.i;
|
const draggedId = newItem.i;
|
||||||
|
|
||||||
console.log("[FitDrag]", {
|
|
||||||
draggedId,
|
|
||||||
"newItem.x": newItem.x,
|
|
||||||
"newItem.y": newItem.y,
|
|
||||||
w,
|
|
||||||
colsPerRow,
|
|
||||||
targetCol: Math.max(0, Math.min(Math.round(newItem.x / w), colsPerRow - 1)),
|
|
||||||
targetRow: Math.max(0, Math.round(newItem.y / w)),
|
|
||||||
sourceIndex: [...(fitLayoutOverride ?? fitLayout ?? [])]
|
|
||||||
.sort((a, b) => (a.y !== b.y ? a.y - b.y : a.x - b.x))
|
|
||||||
.map((item) => item.i)
|
|
||||||
.indexOf(newItem.i),
|
|
||||||
orderedNames: [...(fitLayoutOverride ?? fitLayout ?? [])]
|
|
||||||
.sort((a, b) => (a.y !== b.y ? a.y - b.y : a.x - b.x))
|
|
||||||
.map((item) => item.i),
|
|
||||||
});
|
|
||||||
|
|
||||||
const currentOrder = fitLayoutOverride ?? fitLayout ?? [];
|
const currentOrder = fitLayoutOverride ?? fitLayout ?? [];
|
||||||
const orderedNames = [...currentOrder]
|
const orderedNames = [...currentOrder]
|
||||||
.sort((a, b) => {
|
.sort((a, b) => {
|
||||||
@ -525,6 +511,23 @@ export default function DraggableGridLayout({
|
|||||||
);
|
);
|
||||||
|
|
||||||
const sourceIndex = orderedNames.indexOf(draggedId);
|
const sourceIndex = orderedNames.indexOf(draggedId);
|
||||||
|
|
||||||
|
console.log("[FitDrag] CALC:", {
|
||||||
|
draggedId,
|
||||||
|
sourceIndex,
|
||||||
|
targetIndex,
|
||||||
|
targetCol,
|
||||||
|
targetRow,
|
||||||
|
clampedRow,
|
||||||
|
totalRows,
|
||||||
|
"newItem.x": newItem.x,
|
||||||
|
"newItem.y": newItem.y,
|
||||||
|
w,
|
||||||
|
colsPerRow,
|
||||||
|
orderedNames,
|
||||||
|
willSwap: sourceIndex !== -1 && sourceIndex !== targetIndex,
|
||||||
|
});
|
||||||
|
|
||||||
const snapBack = orderedNames.map((name, index) => ({
|
const snapBack = orderedNames.map((name, index) => ({
|
||||||
i: name,
|
i: name,
|
||||||
x: (index % colsPerRow) * w,
|
x: (index % colsPerRow) * w,
|
||||||
@ -534,6 +537,7 @@ export default function DraggableGridLayout({
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
if (sourceIndex === -1 || sourceIndex === targetIndex) {
|
if (sourceIndex === -1 || sourceIndex === targetIndex) {
|
||||||
|
console.log("[FitDrag] SNAP BACK (no swap)");
|
||||||
setFitLayoutOverride(snapBack);
|
setFitLayoutOverride(snapBack);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -552,6 +556,13 @@ export default function DraggableGridLayout({
|
|||||||
h: w,
|
h: w,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
console.log("[FitDrag] SWAP:", {
|
||||||
|
from: orderedNames[sourceIndex],
|
||||||
|
to: orderedNames[targetIndex],
|
||||||
|
newOrder,
|
||||||
|
normalized: normalized.map(n => `${n.i}(${n.x},${n.y})`),
|
||||||
|
});
|
||||||
|
|
||||||
setFitLayoutOverride(normalized);
|
setFitLayoutOverride(normalized);
|
||||||
},
|
},
|
||||||
[fitToScreen, fitGridParams, fitLayoutOverride, fitLayout],
|
[fitToScreen, fitGridParams, fitLayoutOverride, fitLayout],
|
||||||
@ -559,7 +570,13 @@ export default function DraggableGridLayout({
|
|||||||
|
|
||||||
const activeGridLayout = useMemo(() => {
|
const activeGridLayout = useMemo(() => {
|
||||||
if (fitToScreen) {
|
if (fitToScreen) {
|
||||||
return fitLayoutOverride ?? fitLayout ?? currentGridLayout;
|
const result = fitLayoutOverride ?? fitLayout ?? currentGridLayout;
|
||||||
|
console.log("[FitDrag] activeGridLayout:", {
|
||||||
|
usingOverride: !!fitLayoutOverride,
|
||||||
|
usingFitLayout: !fitLayoutOverride && !!fitLayout,
|
||||||
|
layout: result?.map(n => `${n.i}(${n.x},${n.y})`),
|
||||||
|
});
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
return currentGridLayout;
|
return currentGridLayout;
|
||||||
}, [fitToScreen, fitLayoutOverride, fitLayout, currentGridLayout]);
|
}, [fitToScreen, fitLayoutOverride, fitLayout, currentGridLayout]);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user