diff --git a/packages/iris-grid/src/IrisGridUtils.test.ts b/packages/iris-grid/src/IrisGridUtils.test.ts index 51d472eb9..b8fe7782a 100644 --- a/packages/iris-grid/src/IrisGridUtils.test.ts +++ b/packages/iris-grid/src/IrisGridUtils.test.ts @@ -226,15 +226,15 @@ describe('pendingDataMap hydration/dehydration', () => { 1, { data: new Map([ - [3, 'Foo'], - [4, 'Bar'], + [3, { value: 'Foo' }], + [4, { value: 'Bar' }], ]), }, ], [ 10, { - data: new Map([[7, 'Baz']]), + data: new Map([[7, { value: 'Baz' }]]), }, ], ]); @@ -267,10 +267,16 @@ describe('pendingDataMap hydration/dehydration', () => { ); expect(hydratedMap.size).toBe(2); expect(hydratedMap.get(1)?.data.size).toBe(2); - expect(hydratedMap.get(1)?.data.get(3)).toEqual('Foo'); - expect(hydratedMap.get(1)?.data.get(4)).toEqual('Bar'); + expect(hydratedMap.get(1)?.data.get(3)).toEqual( + expect.objectContaining({ value: 'Foo' }) + ); + expect(hydratedMap.get(1)?.data.get(4)).toEqual( + expect.objectContaining({ value: 'Bar' }) + ); expect(hydratedMap.get(10)?.data.size).toBe(1); - expect(hydratedMap.get(10)?.data.get(7)).toEqual('Baz'); + expect(hydratedMap.get(10)?.data.get(7)).toEqual( + expect.objectContaining({ value: 'Baz' }) + ); }); }); diff --git a/packages/iris-grid/src/IrisGridUtils.ts b/packages/iris-grid/src/IrisGridUtils.ts index 32e962dd3..ed325ec33 100644 --- a/packages/iris-grid/src/IrisGridUtils.ts +++ b/packages/iris-grid/src/IrisGridUtils.ts @@ -148,7 +148,7 @@ export interface DehydratedIrisGridState { selectDistinctColumns: readonly ColumnName[]; selectedSearchColumns: readonly ColumnName[]; invertSearchColumns: boolean; - pendingDataMap: DehydratedPendingDataMap; + pendingDataMap: DehydratedPendingDataMap; frozenColumns: readonly ColumnName[]; columnHeaderGroups?: readonly DhType.ColumnGroup[]; partitionConfig?: DehydratedPartitionConfig; @@ -1495,21 +1495,16 @@ class IrisGridUtils { dehydratePendingDataMap( columns: readonly DhType.Column[], - pendingDataMap: ReadonlyMap< - ModelIndex, - { - data: Map; - } - > - ): DehydratedPendingDataMap { + pendingDataMap: PendingDataMap + ): DehydratedPendingDataMap { return [...pendingDataMap].map(([rowIndex, { data }]) => [ rowIndex, { data: [...data] .filter(([c]) => typeof c === 'number') - .map(([c, value]) => [ + .map(([c, cellData]) => [ columns[c as number].name, - this.dehydrateValue(value, columns[c as number].type), + this.dehydrateValue(cellData.value, columns[c as number].type), ]), }, ]); @@ -1517,14 +1512,11 @@ class IrisGridUtils { hydratePendingDataMap( columns: readonly DhType.Column[], - pendingDataMap: DehydratedPendingDataMap + pendingDataMap: DehydratedPendingDataMap ): Map< number, { - data: Map< - ModelIndex | null, - string | CellData | DhType.LongWrapper | null - >; + data: Map; } > { const columnMap = new Map(); @@ -1540,10 +1532,7 @@ class IrisGridUtils { return new Map( pendingDataMap.map( - ([rowIndex, { data }]: [ - number, - { data: [string, CellData | string | null][] }, - ]) => [ + ([rowIndex, { data }]: [number, { data: [string, unknown][] }]) => [ rowIndex, { data: new Map( @@ -1552,7 +1541,7 @@ class IrisGridUtils { assertNotNull(index); return [ getColumnIndex(columnName) ?? null, - this.hydrateValue(value, columns[index].type), + { value: this.hydrateValue(value, columns[index].type) }, ]; }) ),