Skip to content

Commit 9bd3821

Browse files
committed
fix(serialization): remove resize container size
1 parent 4e01ed5 commit 9bd3821

File tree

3 files changed

+5
-55
lines changed

3 files changed

+5
-55
lines changed

src/components/tile-manager/serializer.ts

Lines changed: 1 addition & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,16 @@
1-
import { asNumber, omit, pick } from '../common/util.js';
21
import type IgcTileManagerComponent from './tile-manager.js';
3-
import type IgcTileComponent from './tile.js';
42

53
export interface SerializedTile {
64
colSpan: number;
75
colStart: number | null;
86
disableFullscreen: boolean;
97
disableMaximize: boolean;
108
disableResize: boolean;
11-
gridColumn: string;
12-
gridRow: string;
139
maximized: boolean;
1410
position: number;
1511
rowSpan: number;
1612
rowStart: number | null;
1713
id: string | null;
18-
width: number | null;
19-
height: number | null;
2014
}
2115

2216
class TileManagerSerializer {
@@ -26,31 +20,19 @@ class TileManagerSerializer {
2620
this.tileManager = tileManager;
2721
}
2822

29-
private _getResizeContainer(tile: IgcTileComponent) {
30-
// biome-ignore lint/complexity/useLiteralKeys: Until we migrate to a symbol
31-
return tile['_resizeContainer']!;
32-
}
33-
3423
public save(): SerializedTile[] {
3524
return this.tileManager.tiles.map((tile) => {
36-
const { gridColumn, gridRow } = getComputedStyle(tile);
37-
const { width, height } = this._getResizeContainer(tile).getSize();
38-
3925
return {
4026
colSpan: tile.colSpan,
4127
colStart: tile.colStart,
4228
disableFullscreen: tile.disableFullscreen,
4329
disableMaximize: tile.disableMaximize,
4430
disableResize: tile.disableResize,
45-
gridColumn,
46-
gridRow,
4731
maximized: tile.maximized,
4832
position: tile.position,
4933
rowSpan: tile.rowSpan,
5034
rowStart: tile.rowStart,
5135
id: tile.id,
52-
width: asNumber(width) || null,
53-
height: asNumber(height) || null,
5436
};
5537
});
5638
}
@@ -61,26 +43,15 @@ class TileManagerSerializer {
6143

6244
public load(tiles: SerializedTile[]): void {
6345
const mapped = new Map(tiles.map((tile) => [tile.id, tile]));
64-
const keys: (keyof SerializedTile)[] = [
65-
'gridColumn',
66-
'gridRow',
67-
'width',
68-
'height',
69-
];
7046

7147
for (const tile of this.tileManager.tiles) {
7248
if (!mapped.has(tile.id)) {
7349
continue;
7450
}
7551

7652
const serialized = mapped.get(tile.id)!;
77-
const properties = omit(serialized, ...keys);
78-
const styles = pick(serialized, 'gridColumn', 'gridRow');
79-
const { width, height } = pick(serialized, 'width', 'height');
8053

81-
Object.assign(tile, properties);
82-
Object.assign(tile.style, styles);
83-
this._getResizeContainer(tile).setSize(width, height);
54+
Object.assign(tile, serialized);
8455
}
8556
}
8657

src/components/tile-manager/tile-manager.spec.ts

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -738,31 +738,23 @@ describe('Tile Manager component', () => {
738738
disableFullscreen: false,
739739
disableMaximize: false,
740740
disableResize: false,
741-
gridColumn: 'auto / span 1',
742-
gridRow: 'auto / span 1',
743741
maximized: false,
744742
position: 0,
745743
rowSpan: 1,
746744
rowStart: null,
747745
id: 'custom-id1',
748-
width: null,
749-
height: null,
750746
},
751747
{
752748
colSpan: 10,
753749
colStart: 8,
754750
disableFullscreen: true,
755751
disableMaximize: true,
756752
disableResize: true,
757-
gridColumn: '8 / span 10',
758-
gridRow: '7 / span 7',
759753
maximized: false,
760754
position: 1,
761755
rowSpan: 7,
762756
rowStart: 7,
763757
id: 'custom-id2',
764-
width: null,
765-
height: null,
766758
},
767759
];
768760

@@ -777,8 +769,6 @@ describe('Tile Manager component', () => {
777769
disableFullscreen: false,
778770
disableMaximize: false,
779771
disableResize: true,
780-
gridColumn: '1 / span 5',
781-
gridRow: '1 / span 5',
782772
maximized: true,
783773
position: 0,
784774
rowSpan: 5,
@@ -791,8 +781,6 @@ describe('Tile Manager component', () => {
791781
disableFullscreen: false,
792782
disableMaximize: false,
793783
disableResize: false,
794-
gridColumn: 'span 3',
795-
gridRow: 'span 3',
796784
maximized: false,
797785
position: 1,
798786
rowSpan: 3,
@@ -805,8 +793,6 @@ describe('Tile Manager component', () => {
805793
disableFullscreen: false,
806794
disableMaximize: false,
807795
disableResize: false,
808-
gridColumn: 'span 3',
809-
gridRow: 'span 3',
810796
maximized: false,
811797
position: 2,
812798
rowSpan: 3,
@@ -846,10 +832,10 @@ describe('Tile Manager component', () => {
846832
const firstTileStyles = window.getComputedStyle(tiles[0]);
847833
const secondTileStyles = window.getComputedStyle(tiles[1]);
848834

849-
expect(firstTileStyles.gridColumn).to.equal('1 / span 5');
850-
expect(firstTileStyles.gridRow).to.equal('1 / span 5');
851-
expect(secondTileStyles.gridColumn).to.equal('span 3');
852-
expect(secondTileStyles.gridRow).to.equal('span 3');
835+
expect(firstTileStyles.gridColumn).to.equal('auto');
836+
expect(firstTileStyles.gridRow).to.equal('auto');
837+
expect(secondTileStyles.gridColumn).to.equal('7 / span 3');
838+
expect(secondTileStyles.gridRow).to.equal('7 / span 3');
853839
});
854840

855841
it('should handle tiles with missing `id` correctly when deserializing', async () => {

src/components/tile-manager/tile.ts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -649,13 +649,6 @@ export default class IgcTileComponent extends EventEmitterMixin<
649649
}
650650

651651
protected override render() {
652-
const { width, height } =
653-
this.fullscreen || this.maximized
654-
? this._resizeState.emptyResizeDimensions
655-
: this._resizeState.resizedDimensions;
656-
657-
this._resizeContainer?.setSize(width, height);
658-
659652
const isEnabled = !this._resizeDisabled;
660653
const isActive = !this._resizeDisabled && this._resizeMode === 'always';
661654

0 commit comments

Comments
 (0)