From 55dece274f71c0bcec7d050c605ba05acafbe99c Mon Sep 17 00:00:00 2001 From: Robin Townsend Date: Mon, 30 Jan 2023 17:04:43 -0500 Subject: [PATCH] Fix some tile resizing bugs --- src/video-grid/NewVideoGrid.tsx | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/video-grid/NewVideoGrid.tsx b/src/video-grid/NewVideoGrid.tsx index e5c15df..2ad5e3b 100644 --- a/src/video-grid/NewVideoGrid.tsx +++ b/src/video-grid/NewVideoGrid.tsx @@ -328,13 +328,15 @@ const cycleTileSize = (tileId: string, g: Grid): Grid => { const toRow = row(to, g); - for (let src = 0; src < g.cells.length; src++) { - if (g.cells[src]?.item.id !== tileId) { - const dest = - row(src, g) > toRow + toHeight - 1 ? src + g.columns * newRows : src; - gappyGrid.cells[dest] = g.cells[src]; + g.cells.forEach((c, src) => { + if (c?.slot && c.item.id !== tileId) { + const offset = + row(src, g) > toRow + candidateHeight - 1 ? g.columns * newRows : 0; + forEachCellInArea(src, areaEnd(src, c.columns, c.rows, g), g, (c, i) => { + gappyGrid.cells[i + offset] = c + }) } - } + }) const displacedTiles: Cell[] = []; const toEnd = areaEnd(to, toWidth, toHeight, g);