@@ -21,6 +21,7 @@ import {
2121 IrisGrid ,
2222 type IrisGridType ,
2323 IrisGridModel ,
24+ IrisGridCacheUtils ,
2425 IrisGridUtils ,
2526 isIrisGridTableModelTemplate ,
2627 type ColumnName ,
@@ -103,11 +104,11 @@ export interface PanelState {
103104 gridState : {
104105 isStuckToBottom : boolean ;
105106 isStuckToRight : boolean ;
106- movedColumns : {
107+ movedColumns : readonly {
107108 from : string | ModelIndex | [ string , string ] | [ ModelIndex , ModelIndex ] ;
108109 to : string | ModelIndex ;
109110 } [ ] ;
110- movedRows : MoveOperation [ ] ;
111+ movedRows : readonly MoveOperation [ ] ;
111112 } ;
112113 irisGridState : DehydratedIrisGridState ;
113114 irisGridPanelState : DehydratedIrisGridPanelState ;
@@ -368,6 +369,12 @@ export class IrisGridPanel extends PureComponent<
368369
369370 private irisGridUtils : IrisGridUtils | null ;
370371
372+ private gridStateDehydrator =
373+ IrisGridCacheUtils . makeMemoizedGridStateDehydrator ( ) ;
374+
375+ private irisGridStateDehydrator =
376+ IrisGridCacheUtils . makeMemoizedIrisGridStateDehydrator ( ) ;
377+
371378 getTableName ( ) : string {
372379 const { metadata } = this . props ;
373380 return getTableNameFromMetadata ( metadata ) ;
@@ -461,76 +468,6 @@ export class IrisGridPanel extends PureComponent<
461468 } )
462469 ) ;
463470
464- getDehydratedIrisGridState = memoize (
465- (
466- model : IrisGridModel ,
467- sorts : readonly dh . Sort [ ] ,
468- advancedFilters : ReadonlyAdvancedFilterMap ,
469- customColumnFormatMap : Map < ColumnName , FormattingRule > ,
470- isFilterBarShown : boolean ,
471- quickFilters : ReadonlyQuickFilterMap ,
472- customColumns : readonly ColumnName [ ] ,
473- reverse : boolean ,
474- rollupConfig : UIRollupConfig | undefined ,
475- showSearchBar : boolean ,
476- searchValue : string ,
477- selectDistinctColumns : readonly ColumnName [ ] ,
478- selectedSearchColumns : readonly ColumnName [ ] ,
479- invertSearchColumns : boolean ,
480- userColumnWidths : ModelSizeMap ,
481- userRowHeights : ModelSizeMap ,
482- aggregationSettings : AggregationSettings ,
483- pendingDataMap : PendingDataMap < UIRow > ,
484- frozenColumns : readonly ColumnName [ ] ,
485- conditionalFormats : readonly SidebarFormattingRule [ ] ,
486- columnHeaderGroups : readonly ColumnHeaderGroup [ ] ,
487- partitionConfig : PartitionConfig | undefined
488- ) => {
489- assertNotNull ( this . irisGridUtils ) ;
490- return this . irisGridUtils . dehydrateIrisGridState ( model , {
491- advancedFilters,
492- aggregationSettings,
493- customColumnFormatMap,
494- isFilterBarShown,
495- metrics : {
496- userColumnWidths,
497- userRowHeights,
498- } ,
499- quickFilters,
500- customColumns,
501- reverse,
502- rollupConfig,
503- showSearchBar,
504- searchValue,
505- selectDistinctColumns,
506- selectedSearchColumns,
507- sorts,
508- invertSearchColumns,
509- pendingDataMap,
510- frozenColumns,
511- conditionalFormats,
512- columnHeaderGroups,
513- partitionConfig,
514- } ) ;
515- }
516- ) ;
517-
518- getDehydratedGridState = memoize (
519- (
520- model : IrisGridModel ,
521- movedColumns : readonly MoveOperation [ ] ,
522- movedRows : readonly MoveOperation [ ] ,
523- isStuckToBottom : boolean ,
524- isStuckToRight : boolean
525- ) =>
526- IrisGridUtils . dehydrateGridState ( model , {
527- isStuckToBottom,
528- isStuckToRight,
529- movedColumns,
530- movedRows,
531- } )
532- ) ;
533-
534471 getCachedPanelState = memoize (
535472 (
536473 irisGridPanelState : PanelState [ 'irisGridPanelState' ] ,
@@ -1128,34 +1065,9 @@ export class IrisGridPanel extends PureComponent<
11281065 partitions,
11291066 advancedSettings,
11301067 } = this . state ;
1131- const {
1132- advancedFilters,
1133- aggregationSettings,
1134- customColumnFormatMap,
1135- isFilterBarShown,
1136- quickFilters,
1137- customColumns,
1138- reverse,
1139- rollupConfig,
1140- showSearchBar,
1141- searchValue,
1142- selectDistinctColumns,
1143- selectedSearchColumns,
1144- sorts,
1145- invertSearchColumns,
1146- metrics,
1147- pendingDataMap,
1148- frozenColumns,
1149- conditionalFormats,
1150- columnHeaderGroups,
1151- partitionConfig,
1152- } = irisGridState ;
1068+ assertNotNull ( this . irisGridUtils ) ;
11531069 assertNotNull ( model ) ;
1154- assertNotNull ( metrics ) ;
1155- const { userColumnWidths, userRowHeights } = metrics ;
11561070 assertNotNull ( gridState ) ;
1157- const { isStuckToBottom, isStuckToRight, movedColumns, movedRows } =
1158- gridState ;
11591071
11601072 const panelState = this . getCachedPanelState (
11611073 this . getDehydratedIrisGridPanelState (
@@ -1164,37 +1076,8 @@ export class IrisGridPanel extends PureComponent<
11641076 partitions ,
11651077 advancedSettings
11661078 ) ,
1167- this . getDehydratedIrisGridState (
1168- model ,
1169- sorts ,
1170- advancedFilters ,
1171- customColumnFormatMap ,
1172- isFilterBarShown ,
1173- quickFilters ,
1174- customColumns ,
1175- reverse ,
1176- rollupConfig ,
1177- showSearchBar ,
1178- searchValue ,
1179- selectDistinctColumns ,
1180- selectedSearchColumns ,
1181- invertSearchColumns ,
1182- userColumnWidths ,
1183- userRowHeights ,
1184- aggregationSettings ,
1185- pendingDataMap ,
1186- frozenColumns ,
1187- conditionalFormats ,
1188- columnHeaderGroups ,
1189- partitionConfig
1190- ) ,
1191- this . getDehydratedGridState (
1192- model ,
1193- movedColumns ,
1194- movedRows ,
1195- isStuckToBottom ,
1196- isStuckToRight
1197- ) ,
1079+ this . irisGridStateDehydrator ( model , irisGridState ) ,
1080+ this . gridStateDehydrator ( model , gridState ) ,
11981081 pluginState
11991082 ) ;
12001083
0 commit comments