@mui/x-data-grid 5.11.1 → 5.12.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/CHANGELOG.md +199 -20
  2. package/DataGrid/DataGrid.js +26 -1
  3. package/README.md +2 -2
  4. package/colDef/gridCheckboxSelectionColDef.d.ts +1 -0
  5. package/colDef/gridCheckboxSelectionColDef.js +2 -1
  6. package/colDef/gridDateOperators.d.ts +1 -1
  7. package/colDef/gridNumericColDef.js +1 -1
  8. package/components/GridRow.d.ts +1 -1
  9. package/components/GridRow.js +51 -12
  10. package/components/cell/GridActionsCellItem.d.ts +1 -1
  11. package/components/cell/GridCell.d.ts +2 -1
  12. package/components/cell/GridCell.js +12 -7
  13. package/components/columnHeaders/GridColumnHeaderItem.js +9 -6
  14. package/components/columnSelection/GridCellCheckboxRenderer.js +0 -1
  15. package/components/columnSelection/GridHeaderCheckbox.js +0 -1
  16. package/components/containers/GridRootStyles.js +8 -3
  17. package/components/menu/GridMenu.js +9 -2
  18. package/components/panel/GridColumnsPanel.js +12 -7
  19. package/components/panel/GridPanelWrapper.d.ts +1 -1
  20. package/components/panel/GridPanelWrapper.js +3 -3
  21. package/components/panel/filterPanel/GridFilterForm.d.ts +61 -4
  22. package/components/panel/filterPanel/GridFilterForm.js +88 -8
  23. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +0 -1
  24. package/components/panel/filterPanel/GridFilterPanel.d.ts +8 -5
  25. package/components/panel/filterPanel/GridFilterPanel.js +26 -11
  26. package/components/toolbar/GridToolbarColumnsButton.js +0 -1
  27. package/components/toolbar/GridToolbarDensitySelector.js +0 -1
  28. package/components/toolbar/GridToolbarExportContainer.js +0 -1
  29. package/components/toolbar/GridToolbarFilterButton.d.ts +1 -1
  30. package/components/toolbar/GridToolbarFilterButton.js +0 -1
  31. package/components/toolbar/GridToolbarQuickFilter.d.ts +7 -0
  32. package/components/toolbar/GridToolbarQuickFilter.js +57 -4
  33. package/constants/defaultGridSlotsComponents.js +2 -1
  34. package/constants/gridClasses.d.ts +4 -0
  35. package/constants/gridClasses.js +1 -1
  36. package/constants/localeTextConstants.js +1 -0
  37. package/hooks/core/useGridStateInitialization.js +19 -6
  38. package/hooks/features/columnMenu/useGridColumnMenu.js +22 -0
  39. package/hooks/features/columns/gridColumnsInterfaces.d.ts +3 -0
  40. package/hooks/features/columns/useGridColumnSpanning.d.ts +1 -1
  41. package/hooks/features/columns/useGridColumnSpanning.js +1 -1
  42. package/hooks/features/columns/useGridColumns.d.ts +1 -1
  43. package/hooks/features/columns/useGridColumns.js +13 -15
  44. package/hooks/features/dimensions/gridDimensionsApi.d.ts +5 -0
  45. package/hooks/features/dimensions/useGridDimensions.js +9 -8
  46. package/hooks/features/editRows/useGridCellEditing.new.js +11 -4
  47. package/hooks/features/editRows/useGridEditing.old.js +1 -1
  48. package/hooks/features/editRows/useGridRowEditing.new.js +10 -4
  49. package/hooks/features/events/useGridEvents.d.ts +1 -1
  50. package/hooks/features/events/useGridEvents.js +2 -0
  51. package/hooks/features/filter/gridFilterSelector.d.ts +5 -0
  52. package/hooks/features/filter/gridFilterSelector.js +6 -0
  53. package/hooks/features/filter/gridFilterState.d.ts +1 -1
  54. package/hooks/features/filter/gridFilterUtils.d.ts +10 -2
  55. package/hooks/features/filter/gridFilterUtils.js +3 -6
  56. package/hooks/features/filter/useGridFilter.d.ts +1 -1
  57. package/hooks/features/filter/useGridFilter.js +29 -12
  58. package/hooks/features/pagination/useGridPage.js +1 -1
  59. package/hooks/features/pagination/useGridPageSize.js +1 -1
  60. package/hooks/features/rows/useGridRowsMeta.d.ts +1 -1
  61. package/hooks/features/rows/useGridRowsMeta.js +133 -67
  62. package/hooks/features/selection/useGridSelection.js +1 -1
  63. package/hooks/features/selection/useGridSelectionPreProcessors.js +8 -6
  64. package/hooks/features/sorting/useGridSorting.d.ts +1 -1
  65. package/hooks/features/sorting/useGridSorting.js +1 -1
  66. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +2 -1
  67. package/hooks/features/virtualization/useGridVirtualScroller.js +65 -11
  68. package/index.js +1 -1
  69. package/internals/index.d.ts +1 -0
  70. package/legacy/DataGrid/DataGrid.js +26 -1
  71. package/legacy/colDef/gridCheckboxSelectionColDef.js +2 -1
  72. package/legacy/colDef/gridNumericColDef.js +1 -1
  73. package/legacy/components/GridRow.js +56 -12
  74. package/legacy/components/cell/GridCell.js +12 -7
  75. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +11 -6
  76. package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +0 -1
  77. package/legacy/components/columnSelection/GridHeaderCheckbox.js +0 -1
  78. package/legacy/components/containers/GridRootStyles.js +10 -7
  79. package/legacy/components/menu/GridMenu.js +9 -2
  80. package/legacy/components/panel/GridColumnsPanel.js +14 -7
  81. package/legacy/components/panel/GridPanelWrapper.js +3 -3
  82. package/legacy/components/panel/filterPanel/GridFilterForm.js +89 -8
  83. package/legacy/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +0 -1
  84. package/legacy/components/panel/filterPanel/GridFilterPanel.js +28 -12
  85. package/legacy/components/toolbar/GridToolbarColumnsButton.js +0 -1
  86. package/legacy/components/toolbar/GridToolbarDensitySelector.js +0 -1
  87. package/legacy/components/toolbar/GridToolbarExportContainer.js +0 -1
  88. package/legacy/components/toolbar/GridToolbarFilterButton.js +0 -1
  89. package/legacy/components/toolbar/GridToolbarQuickFilter.js +67 -6
  90. package/legacy/constants/defaultGridSlotsComponents.js +2 -1
  91. package/legacy/constants/gridClasses.js +1 -1
  92. package/legacy/constants/localeTextConstants.js +1 -0
  93. package/legacy/hooks/core/useGridStateInitialization.js +18 -6
  94. package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +22 -0
  95. package/legacy/hooks/features/columns/useGridColumnSpanning.js +1 -1
  96. package/legacy/hooks/features/columns/useGridColumns.js +13 -15
  97. package/legacy/hooks/features/dimensions/useGridDimensions.js +9 -8
  98. package/legacy/hooks/features/editRows/useGridCellEditing.new.js +14 -7
  99. package/legacy/hooks/features/editRows/useGridEditing.old.js +1 -1
  100. package/legacy/hooks/features/editRows/useGridRowEditing.new.js +10 -4
  101. package/legacy/hooks/features/events/useGridEvents.js +2 -0
  102. package/legacy/hooks/features/filter/gridFilterSelector.js +8 -0
  103. package/legacy/hooks/features/filter/gridFilterUtils.js +4 -7
  104. package/legacy/hooks/features/filter/useGridFilter.js +33 -12
  105. package/legacy/hooks/features/pagination/useGridPage.js +1 -1
  106. package/legacy/hooks/features/pagination/useGridPageSize.js +1 -1
  107. package/legacy/hooks/features/rows/useGridRowsMeta.js +133 -66
  108. package/legacy/hooks/features/selection/useGridSelection.js +1 -1
  109. package/legacy/hooks/features/selection/useGridSelectionPreProcessors.js +8 -6
  110. package/legacy/hooks/features/sorting/useGridSorting.js +1 -1
  111. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +84 -26
  112. package/legacy/index.js +1 -1
  113. package/legacy/locales/arSD.js +1 -0
  114. package/legacy/locales/bgBG.js +1 -0
  115. package/legacy/locales/csCZ.js +1 -0
  116. package/legacy/locales/daDK.js +1 -0
  117. package/legacy/locales/deDE.js +1 -0
  118. package/legacy/locales/elGR.js +1 -0
  119. package/legacy/locales/esES.js +1 -0
  120. package/legacy/locales/faIR.js +1 -0
  121. package/legacy/locales/fiFI.js +1 -0
  122. package/legacy/locales/frFR.js +1 -0
  123. package/legacy/locales/heIL.js +10 -9
  124. package/legacy/locales/huHU.js +1 -0
  125. package/legacy/locales/itIT.js +1 -0
  126. package/legacy/locales/jaJP.js +29 -24
  127. package/legacy/locales/koKR.js +1 -0
  128. package/legacy/locales/nbNO.js +128 -0
  129. package/legacy/locales/nlNL.js +1 -0
  130. package/legacy/locales/plPL.js +1 -0
  131. package/legacy/locales/ptBR.js +1 -0
  132. package/legacy/locales/ruRU.js +7 -6
  133. package/legacy/locales/skSK.js +1 -0
  134. package/legacy/locales/trTR.js +8 -7
  135. package/legacy/locales/ukUA.js +1 -0
  136. package/legacy/locales/viVN.js +1 -0
  137. package/legacy/locales/zhCN.js +1 -0
  138. package/legacy/models/events/gridEvents.js +2 -0
  139. package/legacy/models/gridApiCaches.js +1 -0
  140. package/legacy/models/params/gridMenuParams.js +1 -0
  141. package/legacy/models/params/index.js +2 -1
  142. package/locales/arSD.js +1 -0
  143. package/locales/bgBG.js +1 -0
  144. package/locales/csCZ.js +1 -0
  145. package/locales/daDK.js +1 -0
  146. package/locales/deDE.js +1 -0
  147. package/locales/elGR.js +1 -0
  148. package/locales/esES.js +1 -0
  149. package/locales/faIR.js +1 -0
  150. package/locales/fiFI.js +1 -0
  151. package/locales/frFR.js +1 -0
  152. package/locales/heIL.js +10 -9
  153. package/locales/huHU.js +1 -0
  154. package/locales/itIT.js +1 -0
  155. package/locales/jaJP.js +25 -24
  156. package/locales/koKR.js +1 -0
  157. package/locales/nbNO.d.ts +2 -0
  158. package/locales/nbNO.js +116 -0
  159. package/locales/nlNL.js +1 -0
  160. package/locales/plPL.js +1 -0
  161. package/locales/ptBR.js +1 -0
  162. package/locales/ruRU.js +7 -6
  163. package/locales/skSK.js +1 -0
  164. package/locales/trTR.js +8 -7
  165. package/locales/ukUA.js +1 -0
  166. package/locales/viVN.js +1 -0
  167. package/locales/zhCN.js +1 -0
  168. package/models/api/gridCallbackDetails.d.ts +6 -1
  169. package/models/api/gridCoreApi.d.ts +2 -6
  170. package/models/api/gridFilterApi.d.ts +8 -1
  171. package/models/api/gridLocaleTextApi.d.ts +1 -0
  172. package/models/api/gridRowsMetaApi.d.ts +24 -0
  173. package/models/api/gridStateApi.d.ts +14 -3
  174. package/models/colDef/gridColDef.d.ts +4 -4
  175. package/models/events/gridEventLookup.d.ts +16 -1
  176. package/models/events/gridEvents.d.ts +3 -1
  177. package/models/events/gridEvents.js +2 -0
  178. package/models/gridApiCaches.d.ts +6 -0
  179. package/models/gridApiCaches.js +1 -0
  180. package/models/gridIconSlotsComponent.d.ts +5 -0
  181. package/models/params/gridMenuParams.d.ts +7 -0
  182. package/models/params/gridMenuParams.js +1 -0
  183. package/models/params/gridRowParams.d.ts +1 -1
  184. package/models/params/index.d.ts +1 -0
  185. package/models/params/index.js +2 -1
  186. package/models/props/DataGridProps.d.ts +24 -2
  187. package/modern/DataGrid/DataGrid.js +26 -1
  188. package/modern/colDef/gridCheckboxSelectionColDef.js +2 -1
  189. package/modern/colDef/gridNumericColDef.js +1 -1
  190. package/modern/components/GridRow.js +51 -12
  191. package/modern/components/cell/GridCell.js +12 -7
  192. package/modern/components/columnHeaders/GridColumnHeaderItem.js +9 -6
  193. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +0 -1
  194. package/modern/components/columnSelection/GridHeaderCheckbox.js +0 -1
  195. package/modern/components/containers/GridRootStyles.js +8 -3
  196. package/modern/components/menu/GridMenu.js +9 -2
  197. package/modern/components/panel/GridColumnsPanel.js +12 -7
  198. package/modern/components/panel/GridPanelWrapper.js +3 -3
  199. package/modern/components/panel/filterPanel/GridFilterForm.js +88 -8
  200. package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +0 -1
  201. package/modern/components/panel/filterPanel/GridFilterPanel.js +26 -11
  202. package/modern/components/toolbar/GridToolbarColumnsButton.js +0 -1
  203. package/modern/components/toolbar/GridToolbarDensitySelector.js +0 -1
  204. package/modern/components/toolbar/GridToolbarExportContainer.js +0 -1
  205. package/modern/components/toolbar/GridToolbarFilterButton.js +0 -1
  206. package/modern/components/toolbar/GridToolbarQuickFilter.js +57 -4
  207. package/modern/constants/defaultGridSlotsComponents.js +2 -1
  208. package/modern/constants/gridClasses.js +1 -1
  209. package/modern/constants/localeTextConstants.js +1 -0
  210. package/modern/hooks/core/useGridStateInitialization.js +19 -6
  211. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +22 -0
  212. package/modern/hooks/features/columns/useGridColumnSpanning.js +1 -1
  213. package/modern/hooks/features/columns/useGridColumns.js +12 -14
  214. package/modern/hooks/features/dimensions/useGridDimensions.js +9 -8
  215. package/modern/hooks/features/editRows/useGridCellEditing.new.js +10 -3
  216. package/modern/hooks/features/editRows/useGridEditing.old.js +1 -1
  217. package/modern/hooks/features/editRows/useGridRowEditing.new.js +9 -3
  218. package/modern/hooks/features/events/useGridEvents.js +2 -0
  219. package/modern/hooks/features/filter/gridFilterSelector.js +6 -0
  220. package/modern/hooks/features/filter/gridFilterUtils.js +3 -6
  221. package/modern/hooks/features/filter/useGridFilter.js +29 -12
  222. package/modern/hooks/features/pagination/useGridPage.js +1 -1
  223. package/modern/hooks/features/pagination/useGridPageSize.js +1 -1
  224. package/modern/hooks/features/rows/useGridRowsMeta.js +129 -59
  225. package/modern/hooks/features/selection/useGridSelection.js +1 -1
  226. package/modern/hooks/features/selection/useGridSelectionPreProcessors.js +8 -6
  227. package/modern/hooks/features/sorting/useGridSorting.js +1 -1
  228. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +65 -11
  229. package/modern/index.js +1 -1
  230. package/modern/locales/arSD.js +1 -0
  231. package/modern/locales/bgBG.js +1 -0
  232. package/modern/locales/csCZ.js +1 -0
  233. package/modern/locales/daDK.js +1 -0
  234. package/modern/locales/deDE.js +1 -0
  235. package/modern/locales/elGR.js +1 -0
  236. package/modern/locales/esES.js +1 -0
  237. package/modern/locales/faIR.js +1 -0
  238. package/modern/locales/fiFI.js +1 -0
  239. package/modern/locales/frFR.js +1 -0
  240. package/modern/locales/heIL.js +10 -9
  241. package/modern/locales/huHU.js +1 -0
  242. package/modern/locales/itIT.js +1 -0
  243. package/modern/locales/jaJP.js +25 -24
  244. package/modern/locales/koKR.js +1 -0
  245. package/modern/locales/nbNO.js +116 -0
  246. package/modern/locales/nlNL.js +1 -0
  247. package/modern/locales/plPL.js +1 -0
  248. package/modern/locales/ptBR.js +1 -0
  249. package/modern/locales/ruRU.js +7 -6
  250. package/modern/locales/skSK.js +1 -0
  251. package/modern/locales/trTR.js +8 -7
  252. package/modern/locales/ukUA.js +1 -0
  253. package/modern/locales/viVN.js +1 -0
  254. package/modern/locales/zhCN.js +1 -0
  255. package/modern/models/events/gridEvents.js +2 -0
  256. package/modern/models/gridApiCaches.js +1 -0
  257. package/modern/models/params/gridMenuParams.js +1 -0
  258. package/modern/models/params/index.js +2 -1
  259. package/node/DataGrid/DataGrid.js +26 -1
  260. package/node/colDef/gridCheckboxSelectionColDef.js +4 -2
  261. package/node/colDef/gridNumericColDef.js +1 -1
  262. package/node/components/GridRow.js +53 -12
  263. package/node/components/cell/GridCell.js +12 -7
  264. package/node/components/columnHeaders/GridColumnHeaderItem.js +9 -6
  265. package/node/components/columnSelection/GridCellCheckboxRenderer.js +0 -1
  266. package/node/components/columnSelection/GridHeaderCheckbox.js +0 -1
  267. package/node/components/containers/GridRootStyles.js +8 -3
  268. package/node/components/menu/GridMenu.js +10 -2
  269. package/node/components/panel/GridColumnsPanel.js +12 -7
  270. package/node/components/panel/GridPanelWrapper.js +5 -3
  271. package/node/components/panel/filterPanel/GridFilterForm.js +91 -9
  272. package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +0 -1
  273. package/node/components/panel/filterPanel/GridFilterPanel.js +28 -11
  274. package/node/components/toolbar/GridToolbarColumnsButton.js +0 -1
  275. package/node/components/toolbar/GridToolbarDensitySelector.js +0 -1
  276. package/node/components/toolbar/GridToolbarExportContainer.js +0 -1
  277. package/node/components/toolbar/GridToolbarFilterButton.js +0 -1
  278. package/node/components/toolbar/GridToolbarQuickFilter.js +61 -4
  279. package/node/constants/defaultGridSlotsComponents.js +2 -1
  280. package/node/constants/gridClasses.js +1 -1
  281. package/node/constants/localeTextConstants.js +1 -0
  282. package/node/hooks/core/useGridStateInitialization.js +19 -6
  283. package/node/hooks/features/columnMenu/useGridColumnMenu.js +23 -0
  284. package/node/hooks/features/columns/useGridColumnSpanning.js +11 -16
  285. package/node/hooks/features/columns/useGridColumns.js +13 -15
  286. package/node/hooks/features/dimensions/useGridDimensions.js +9 -8
  287. package/node/hooks/features/editRows/useGridCellEditing.new.js +11 -4
  288. package/node/hooks/features/editRows/useGridEditing.old.js +1 -1
  289. package/node/hooks/features/editRows/useGridRowEditing.new.js +10 -4
  290. package/node/hooks/features/events/useGridEvents.js +2 -0
  291. package/node/hooks/features/filter/gridFilterSelector.js +9 -2
  292. package/node/hooks/features/filter/gridFilterUtils.js +4 -5
  293. package/node/hooks/features/filter/useGridFilter.js +28 -11
  294. package/node/hooks/features/pagination/useGridPage.js +1 -1
  295. package/node/hooks/features/pagination/useGridPageSize.js +1 -1
  296. package/node/hooks/features/rows/useGridRowsMeta.js +136 -69
  297. package/node/hooks/features/selection/useGridSelection.js +1 -1
  298. package/node/hooks/features/selection/useGridSelectionPreProcessors.js +7 -5
  299. package/node/hooks/features/sorting/useGridSorting.js +1 -1
  300. package/node/hooks/features/virtualization/useGridVirtualScroller.js +65 -12
  301. package/node/index.js +1 -1
  302. package/node/locales/arSD.js +1 -0
  303. package/node/locales/bgBG.js +1 -0
  304. package/node/locales/csCZ.js +1 -0
  305. package/node/locales/daDK.js +1 -0
  306. package/node/locales/deDE.js +1 -0
  307. package/node/locales/elGR.js +1 -0
  308. package/node/locales/esES.js +1 -0
  309. package/node/locales/faIR.js +1 -0
  310. package/node/locales/fiFI.js +1 -0
  311. package/node/locales/frFR.js +1 -0
  312. package/node/locales/heIL.js +10 -9
  313. package/node/locales/huHU.js +1 -0
  314. package/node/locales/itIT.js +1 -0
  315. package/node/locales/jaJP.js +25 -24
  316. package/node/locales/koKR.js +1 -0
  317. package/node/locales/nbNO.js +126 -0
  318. package/node/locales/nlNL.js +1 -0
  319. package/node/locales/plPL.js +1 -0
  320. package/node/locales/ptBR.js +1 -0
  321. package/node/locales/ruRU.js +7 -6
  322. package/node/locales/skSK.js +1 -0
  323. package/node/locales/trTR.js +8 -7
  324. package/node/locales/ukUA.js +1 -0
  325. package/node/locales/viVN.js +1 -0
  326. package/node/locales/zhCN.js +1 -0
  327. package/node/models/events/gridEvents.js +2 -0
  328. package/node/models/gridApiCaches.js +5 -0
  329. package/node/models/params/gridMenuParams.js +5 -0
  330. package/node/models/params/index.js +13 -0
  331. package/package.json +6 -5
@@ -14,6 +14,9 @@ export var columnsStateInitializer = function columnsStateInitializer(state, pro
14
14
  var _props$initialState, _props$initialState$c, _props$initialState2, _ref, _props$columnVisibili, _props$initialState3, _props$initialState3$;
15
15
 
16
16
  var isUsingColumnVisibilityModel = !!props.columnVisibilityModel || !!((_props$initialState = props.initialState) != null && (_props$initialState$c = _props$initialState.columns) != null && _props$initialState$c.columnVisibilityModel);
17
+ apiRef.current.unstable_caches.columns = {
18
+ isUsingColumnVisibilityModel: isUsingColumnVisibilityModel
19
+ };
17
20
  var columnsTypes = computeColumnTypes(props.columnTypes);
18
21
  var columnsState = createColumnsState({
19
22
  apiRef: apiRef,
@@ -35,7 +38,7 @@ export var columnsStateInitializer = function columnsStateInitializer(state, pro
35
38
  */
36
39
 
37
40
  export function useGridColumns(apiRef, props) {
38
- var _props$initialState4, _props$initialState4$, _props$componentsProp2;
41
+ var _props$componentsProp2;
39
42
 
40
43
  var logger = useGridLogger(apiRef, 'useGridColumns');
41
44
  var columnTypes = React.useMemo(function () {
@@ -43,13 +46,7 @@ export function useGridColumns(apiRef, props) {
43
46
  }, [props.columnTypes]);
44
47
  var previousColumnsProp = React.useRef(props.columns);
45
48
  var previousColumnTypesProp = React.useRef(columnTypes);
46
- /**
47
- * If `initialState.columns.columnVisibilityModel` or `columnVisibilityModel` was defined during the 1st render, we are directly updating the model
48
- * If not, we keep the old behavior and update the `GridColDef.hide` option (which will update the state model through the `GridColDef.hide` => `columnVisibilityModel` sync in `createColumnsState`
49
- */
50
-
51
- var isUsingColumnVisibilityModel = React.useRef(!!props.columnVisibilityModel || !!((_props$initialState4 = props.initialState) != null && (_props$initialState4$ = _props$initialState4.columns) != null && _props$initialState4$.columnVisibilityModel));
52
- apiRef.current.unstable_updateControlState({
49
+ apiRef.current.unstable_registerControlState({
53
50
  stateId: 'visibleColumns',
54
51
  propModel: props.columnVisibilityModel,
55
52
  propOnChange: props.onColumnVisibilityModelChange,
@@ -127,7 +124,7 @@ export function useGridColumns(apiRef, props) {
127
124
  // We keep updating the `hide` option of `GridColDef` when not controlling the model to avoid any breaking change.
128
125
  // `updateColumns` take care of updating the model itself if needs be.
129
126
  // TODO v6: stop using the `hide` field even when the model is not defined
130
- if (isUsingColumnVisibilityModel.current) {
127
+ if (apiRef.current.unstable_caches.columns.isUsingColumnVisibilityModel) {
131
128
  var _columnVisibilityMode;
132
129
 
133
130
  var columnVisibilityModel = gridColumnVisibilityModelSelector(apiRef);
@@ -168,7 +165,8 @@ export function useGridColumns(apiRef, props) {
168
165
 
169
166
  var updatedColumns = _toConsumableArray(allColumns);
170
167
 
171
- updatedColumns.splice(targetIndexPosition, 0, updatedColumns.splice(oldIndexPosition, 1)[0]);
168
+ var fieldRemoved = updatedColumns.splice(oldIndexPosition, 1)[0];
169
+ updatedColumns.splice(targetIndexPosition, 0, fieldRemoved);
172
170
  setGridColumnsState(_extends({}, gridColumnsSelector(apiRef.current.state), {
173
171
  all: updatedColumns
174
172
  }));
@@ -218,7 +216,7 @@ export function useGridColumns(apiRef, props) {
218
216
  var stateExportPreProcessing = React.useCallback(function (prevState) {
219
217
  var columnsStateToExport = {};
220
218
 
221
- if (isUsingColumnVisibilityModel.current) {
219
+ if (apiRef.current.unstable_caches.columns.isUsingColumnVisibilityModel) {
222
220
  var columnVisibilityModelToExport = gridColumnVisibilityModelSelector(apiRef);
223
221
  var hasHiddenColumns = Object.values(columnVisibilityModelToExport).some(function (value) {
224
222
  return value === false;
@@ -259,7 +257,7 @@ export function useGridColumns(apiRef, props) {
259
257
  var stateRestorePreProcessing = React.useCallback(function (params, context) {
260
258
  var _context$stateToResto;
261
259
 
262
- var columnVisibilityModelToImport = isUsingColumnVisibilityModel.current ? (_context$stateToResto = context.stateToRestore.columns) == null ? void 0 : _context$stateToResto.columnVisibilityModel : undefined;
260
+ var columnVisibilityModelToImport = apiRef.current.unstable_caches.columns.isUsingColumnVisibilityModel ? (_context$stateToResto = context.stateToRestore.columns) == null ? void 0 : _context$stateToResto.columnVisibilityModel : undefined;
263
261
  var initialState = context.stateToRestore.columns;
264
262
 
265
263
  if (columnVisibilityModelToImport == null && initialState == null) {
@@ -271,7 +269,7 @@ export function useGridColumns(apiRef, props) {
271
269
  columnTypes: columnTypes,
272
270
  columnsToUpsert: [],
273
271
  initialState: initialState,
274
- shouldRegenColumnVisibilityModelFromColumns: !isUsingColumnVisibilityModel.current,
272
+ shouldRegenColumnVisibilityModelFromColumns: !apiRef.current.unstable_caches.columns.isUsingColumnVisibilityModel,
275
273
  currentColumnVisibilityModel: columnVisibilityModelToImport,
276
274
  keepOnlyColumnsToUpsert: false
277
275
  });
@@ -322,7 +320,7 @@ export function useGridColumns(apiRef, props) {
322
320
  columnTypes: columnTypes,
323
321
  columnsToUpsert: [],
324
322
  initialState: undefined,
325
- shouldRegenColumnVisibilityModelFromColumns: !isUsingColumnVisibilityModel.current,
323
+ shouldRegenColumnVisibilityModelFromColumns: !apiRef.current.unstable_caches.columns.isUsingColumnVisibilityModel,
326
324
  keepOnlyColumnsToUpsert: false
327
325
  });
328
326
  setGridColumnsState(columnsState);
@@ -352,7 +350,7 @@ export function useGridColumns(apiRef, props) {
352
350
  columnTypes: columnTypes,
353
351
  initialState: undefined,
354
352
  // If the user provides a model, we don't want to set it in the state here because it has it's dedicated `useEffect` which calls `setColumnVisibilityModel`
355
- shouldRegenColumnVisibilityModelFromColumns: !isUsingColumnVisibilityModel.current,
353
+ shouldRegenColumnVisibilityModelFromColumns: !apiRef.current.unstable_caches.columns.isUsingColumnVisibilityModel,
356
354
  columnsToUpsert: props.columns,
357
355
  keepOnlyColumnsToUpsert: true
358
356
  });
@@ -36,7 +36,7 @@ var hasScroll = function hasScroll(_ref) {
36
36
 
37
37
  export function useGridDimensions(apiRef, props) {
38
38
  var logger = useGridLogger(apiRef, 'useResizeContainer');
39
- var warningShown = React.useRef(false);
39
+ var errorShown = React.useRef(false);
40
40
  var rootDimensionsRef = React.useRef(null);
41
41
  var fullDimensionsRef = React.useRef(null);
42
42
  var rowsMeta = useGridSelector(apiRef, gridRowsMetaSelector);
@@ -94,7 +94,8 @@ export function useGridDimensions(apiRef, props) {
94
94
  viewportOuterSize: viewportOuterSize,
95
95
  viewportInnerSize: viewportInnerSize,
96
96
  hasScrollX: hasScrollX,
97
- hasScrollY: hasScrollY
97
+ hasScrollY: hasScrollY,
98
+ scrollBarSize: scrollBarSize
98
99
  };
99
100
  var prevDimensions = fullDimensionsRef.current;
100
101
  fullDimensionsRef.current = newFullDimensions;
@@ -148,14 +149,14 @@ export function useGridDimensions(apiRef, props) {
148
149
 
149
150
  var isJSDOM = /jsdom/.test(window.navigator.userAgent);
150
151
 
151
- if (size.height === 0 && !warningShown.current && !props.autoHeight && !isJSDOM) {
152
- logger.warn(['The parent of the grid has an empty height.', 'You need to make sure the container has an intrinsic height.', 'The grid displays with a height of 0px.', '', 'You can find a solution in the docs:', 'https://mui.com/x/react-data-grid/layout/'].join('\n'));
153
- warningShown.current = true;
152
+ if (size.height === 0 && !errorShown.current && !props.autoHeight && !isJSDOM) {
153
+ logger.error(['The parent DOM element of the data grid has an empty height.', 'Please make sure that this element has an intrinsic height.', 'The grid displays with a height of 0px.', '', 'More details: https://mui.com/r/x-data-grid-no-dimensions.'].join('\n'));
154
+ errorShown.current = true;
154
155
  }
155
156
 
156
- if (size.width === 0 && !warningShown.current && !isJSDOM) {
157
- logger.warn(['The parent of the grid has an empty width.', 'You need to make sure the container has an intrinsic width.', 'The grid displays with a width of 0px.', '', 'You can find a solution in the docs:', 'https://mui.com/x/react-data-grid/layout/'].join('\n'));
158
- warningShown.current = true;
157
+ if (size.width === 0 && !errorShown.current && !isJSDOM) {
158
+ logger.error(['The parent DOM element of the data grid has an empty width.', 'Please make sure that this element has an intrinsic width.', 'The grid displays with a width of 0px.', '', 'More details: https://mui.com/r/x-data-grid-no-dimensions.'].join('\n'));
159
+ errorShown.current = true;
159
160
  }
160
161
 
161
162
  if (isTestEnvironment) {
@@ -301,17 +301,22 @@ export var useGridCellEditing = function useGridCellEditing(apiRef, props) {
301
301
  _editingState$id$fiel = editingState[id][field], error = _editingState$id$fiel.error, isProcessingProps = _editingState$id$fiel.isProcessingProps;
302
302
 
303
303
  if (!(error || isProcessingProps)) {
304
- _context.next = 11;
304
+ _context.next = 12;
305
305
  break;
306
306
  }
307
307
 
308
+ // Attempt to change cell mode to "view" was not successful
309
+ // Update previous mode to allow another attempt
310
+ prevCellModesModel.current[id][field].mode = GridCellModes.Edit;
308
311
  return _context.abrupt("return");
309
312
 
310
- case 11:
313
+ case 12:
311
314
  rowUpdate = apiRef.current.unstable_getRowWithUpdatedValuesFromCellEditing(id, field);
312
315
 
313
316
  if (processRowUpdate) {
314
317
  handleError = function handleError(errorThrown) {
318
+ prevCellModesModel.current[id][field].mode = GridCellModes.Edit;
319
+
315
320
  if (onProcessRowUpdateError) {
316
321
  onProcessRowUpdateError(errorThrown);
317
322
  } else {
@@ -333,7 +338,7 @@ export var useGridCellEditing = function useGridCellEditing(apiRef, props) {
333
338
  finishCellEditMode();
334
339
  }
335
340
 
336
- case 13:
341
+ case 14:
337
342
  case "end":
338
343
  return _context.stop();
339
344
  }
@@ -446,20 +451,23 @@ export var useGridCellEditing = function useGridCellEditing(apiRef, props) {
446
451
  }
447
452
  }, [cellModesModelProp, updateCellModesModel]);
448
453
  React.useEffect(function () {
449
- var idToIdLookup = gridRowsIdToIdLookupSelector(apiRef);
454
+ var idToIdLookup = gridRowsIdToIdLookupSelector(apiRef); // Update the ref here because updateStateToStopCellEditMode may change it later
455
+
456
+ var copyOfPrevCellModes = prevCellModesModel.current;
457
+ prevCellModesModel.current = cellModesModel;
450
458
  Object.entries(cellModesModel).forEach(function (_ref3) {
451
459
  var _ref4 = _slicedToArray(_ref3, 2),
452
460
  id = _ref4[0],
453
461
  fields = _ref4[1];
454
462
 
455
463
  Object.entries(fields).forEach(function (_ref5) {
456
- var _prevCellModesModel$c, _prevCellModesModel$c2, _idToIdLookup$id;
464
+ var _copyOfPrevCellModes$, _copyOfPrevCellModes$2, _idToIdLookup$id;
457
465
 
458
466
  var _ref6 = _slicedToArray(_ref5, 2),
459
467
  field = _ref6[0],
460
468
  params = _ref6[1];
461
469
 
462
- var prevMode = ((_prevCellModesModel$c = prevCellModesModel.current[id]) == null ? void 0 : (_prevCellModesModel$c2 = _prevCellModesModel$c[field]) == null ? void 0 : _prevCellModesModel$c2.mode) || GridCellModes.View;
470
+ var prevMode = ((_copyOfPrevCellModes$ = copyOfPrevCellModes[id]) == null ? void 0 : (_copyOfPrevCellModes$2 = _copyOfPrevCellModes$[field]) == null ? void 0 : _copyOfPrevCellModes$2.mode) || GridCellModes.View;
463
471
  var originalId = (_idToIdLookup$id = idToIdLookup[id]) != null ? _idToIdLookup$id : id;
464
472
 
465
473
  if (params.mode === GridCellModes.Edit && prevMode === GridCellModes.View) {
@@ -475,6 +483,5 @@ export var useGridCellEditing = function useGridCellEditing(apiRef, props) {
475
483
  }
476
484
  });
477
485
  });
478
- prevCellModesModel.current = cellModesModel;
479
486
  }, [apiRef, cellModesModel, updateStateToStartCellEditMode, updateStateToStopCellEditMode]);
480
487
  };
@@ -26,7 +26,7 @@ export function useGridEditing(apiRef, props) {
26
26
  useCellEditing(apiRef, props);
27
27
  useGridRowEditing(apiRef, props);
28
28
  var debounceMap = React.useRef({});
29
- apiRef.current.unstable_updateControlState({
29
+ apiRef.current.unstable_registerControlState({
30
30
  stateId: 'editRows',
31
31
  propModel: props.editRowsModel,
32
32
  propOnChange: props.onEditRowsModelChange,
@@ -381,6 +381,7 @@ export var useGridRowEditing = function useGridRowEditing(apiRef, props) {
381
381
  });
382
382
 
383
383
  if (isSomeFieldProcessingProps) {
384
+ prevRowModesModel.current[id].mode = GridRowModes.Edit;
384
385
  return;
385
386
  }
386
387
 
@@ -389,6 +390,7 @@ export var useGridRowEditing = function useGridRowEditing(apiRef, props) {
389
390
  });
390
391
 
391
392
  if (hasSomeFieldWithError) {
393
+ prevRowModesModel.current[id].mode = GridRowModes.Edit;
392
394
  return;
393
395
  }
394
396
 
@@ -396,6 +398,8 @@ export var useGridRowEditing = function useGridRowEditing(apiRef, props) {
396
398
 
397
399
  if (processRowUpdate) {
398
400
  var handleError = function handleError(errorThrown) {
401
+ prevRowModesModel.current[id].mode = GridRowModes.Edit;
402
+
399
403
  if (onProcessRowUpdateError) {
400
404
  onProcessRowUpdateError(errorThrown);
401
405
  } else {
@@ -574,15 +578,18 @@ export var useGridRowEditing = function useGridRowEditing(apiRef, props) {
574
578
  }
575
579
  }, [rowModesModelProp, updateRowModesModel]);
576
580
  React.useEffect(function () {
577
- var idToIdLookup = gridRowsIdToIdLookupSelector(apiRef);
581
+ var idToIdLookup = gridRowsIdToIdLookupSelector(apiRef); // Update the ref here because updateStateToStopRowEditMode may change it later
582
+
583
+ var copyOfPrevRowModesModel = prevRowModesModel.current;
584
+ prevRowModesModel.current = rowModesModel;
578
585
  Object.entries(rowModesModel).forEach(function (_ref5) {
579
- var _prevRowModesModel$cu, _idToIdLookup$id;
586
+ var _copyOfPrevRowModesMo, _idToIdLookup$id;
580
587
 
581
588
  var _ref6 = _slicedToArray(_ref5, 2),
582
589
  id = _ref6[0],
583
590
  params = _ref6[1];
584
591
 
585
- var prevMode = ((_prevRowModesModel$cu = prevRowModesModel.current[id]) == null ? void 0 : _prevRowModesModel$cu.mode) || GridRowModes.View;
592
+ var prevMode = ((_copyOfPrevRowModesMo = copyOfPrevRowModesModel[id]) == null ? void 0 : _copyOfPrevRowModesMo.mode) || GridRowModes.View;
586
593
  var originalId = (_idToIdLookup$id = idToIdLookup[id]) != null ? _idToIdLookup$id : id;
587
594
 
588
595
  if (params.mode === GridRowModes.Edit && prevMode === GridRowModes.View) {
@@ -595,6 +602,5 @@ export var useGridRowEditing = function useGridRowEditing(apiRef, props) {
595
602
  }, params));
596
603
  }
597
604
  });
598
- prevRowModesModel.current = rowModesModel;
599
605
  }, [apiRef, rowModesModel, updateStateToStartRowEditMode, updateStateToStopRowEditMode]);
600
606
  };
@@ -18,6 +18,8 @@ export function useGridEvents(apiRef, props) {
18
18
  useGridApiOptionHandler(apiRef, 'cellFocusOut', props.onCellFocusOut);
19
19
  useGridApiOptionHandler(apiRef, 'preferencePanelClose', props.onPreferencePanelClose);
20
20
  useGridApiOptionHandler(apiRef, 'preferencePanelOpen', props.onPreferencePanelOpen);
21
+ useGridApiOptionHandler(apiRef, 'menuOpen', props.onMenuOpen);
22
+ useGridApiOptionHandler(apiRef, 'menuClose', props.onMenuClose);
21
23
  useGridApiOptionHandler(apiRef, 'rowDoubleClick', props.onRowDoubleClick);
22
24
  useGridApiOptionHandler(apiRef, 'rowClick', props.onRowClick);
23
25
  useGridApiOptionHandler(apiRef, 'componentError', props.onError);
@@ -17,6 +17,14 @@ export var gridFilterStateSelector = function gridFilterStateSelector(state) {
17
17
  export var gridFilterModelSelector = createSelector(gridFilterStateSelector, function (filterState) {
18
18
  return filterState.filterModel;
19
19
  });
20
+ /**
21
+ * Get the current quick filter values.
22
+ * @category Filtering
23
+ */
24
+
25
+ export var gridQuickFilterValuesSelector = createSelector(gridFilterModelSelector, function (filterModel) {
26
+ return filterModel.quickFilterValues;
27
+ });
20
28
  /**
21
29
  * @category Filtering
22
30
  * @ignore - do not document.
@@ -10,7 +10,7 @@ import { gridColumnFieldsSelector } from '../columns';
10
10
  * @return {GridFilterItem} The clean filter item with an uniq ID and an always-defined operatorValue.
11
11
  * TODO: Make the typing reflect the different between GridFilterInputItem and GridFilterItem.
12
12
  */
13
- var cleanFilterItem = function cleanFilterItem(item, apiRef) {
13
+ export var cleanFilterItem = function cleanFilterItem(item, apiRef) {
14
14
  var cleanItem = _extends({}, item);
15
15
 
16
16
  if (cleanItem.id == null) {
@@ -25,7 +25,6 @@ var cleanFilterItem = function cleanFilterItem(item, apiRef) {
25
25
 
26
26
  return cleanItem;
27
27
  };
28
-
29
28
  var filterModelDisableMultiColumnsFilteringWarning = buildWarning(['MUI: The `filterModel` can only contain a single item when the `disableMultipleColumnsFiltering` prop is set to `true`.', 'If you are using the community version of the `DataGrid`, this prop is always `true`.'], 'error');
30
29
  var filterModelMissingItemIdWarning = buildWarning("MUI: The 'id' field is required on `filterModel.items` when you use multiple filters.", 'error');
31
30
  var filterModelMissingItemOperatorWarning = buildWarning(['MUI: One of your filtering item have no `operatorValue` provided.', 'This property will become required on `@mui/x-data-grid@6.X`.']);
@@ -72,11 +71,9 @@ export var sanitizeFilterModel = function sanitizeFilterModel(model, disableMult
72
71
  return model;
73
72
  };
74
73
  export var mergeStateWithFilterModel = function mergeStateWithFilterModel(filterModel, disableMultipleColumnsFiltering, apiRef) {
75
- return function (state) {
76
- return _extends({}, state, {
77
- filter: _extends({}, state.filter, {
78
- filterModel: sanitizeFilterModel(filterModel, disableMultipleColumnsFiltering, apiRef)
79
- })
74
+ return function (filteringState) {
75
+ return _extends({}, filteringState, {
76
+ filterModel: sanitizeFilterModel(filterModel, disableMultipleColumnsFiltering, apiRef)
80
77
  });
81
78
  };
82
79
  };
@@ -13,7 +13,7 @@ import { useFirstRender } from '../../utils/useFirstRender';
13
13
  import { gridRowIdsSelector } from '../rows';
14
14
  import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
15
15
  import { GRID_DEFAULT_STRATEGY, useGridRegisterStrategyProcessor } from '../../core/strategyProcessing';
16
- import { buildAggregatedFilterApplier, sanitizeFilterModel, mergeStateWithFilterModel } from './gridFilterUtils';
16
+ import { buildAggregatedFilterApplier, sanitizeFilterModel, mergeStateWithFilterModel, cleanFilterItem } from './gridFilterUtils';
17
17
  import { isDeepEqual } from '../../../utils/utils';
18
18
  import { jsx as _jsx } from "react/jsx-runtime";
19
19
  export var filterStateInitializer = function filterStateInitializer(state, props, apiRef) {
@@ -38,7 +38,7 @@ export var useGridFilter = function useGridFilter(apiRef, props) {
38
38
  var _props$componentsProp2;
39
39
 
40
40
  var logger = useGridLogger(apiRef, 'useGridFilter');
41
- apiRef.current.unstable_updateControlState({
41
+ apiRef.current.unstable_registerControlState({
42
42
  stateId: 'filter',
43
43
  propModel: props.filterModel,
44
44
  propOnChange: props.onFilterModelChange,
@@ -83,7 +83,27 @@ export var useGridFilter = function useGridFilter(apiRef, props) {
83
83
 
84
84
  apiRef.current.setFilterModel(_extends({}, filterModel, {
85
85
  items: items
86
- }));
86
+ }), 'upsertFilterItem');
87
+ }, [apiRef]);
88
+ var upsertFilterItems = React.useCallback(function (items) {
89
+ var filterModel = gridFilterModelSelector(apiRef);
90
+
91
+ var existingItems = _toConsumableArray(filterModel.items);
92
+
93
+ items.forEach(function (item) {
94
+ var itemIndex = items.findIndex(function (filterItem) {
95
+ return filterItem.id === item.id;
96
+ });
97
+
98
+ if (itemIndex === -1) {
99
+ existingItems.push(item);
100
+ } else {
101
+ existingItems[itemIndex] = item;
102
+ }
103
+ });
104
+ apiRef.current.setFilterModel(_extends({}, filterModel, {
105
+ items: items
106
+ }), 'upsertFilterItems');
87
107
  }, [apiRef]);
88
108
  var deleteFilterItem = React.useCallback(function (itemToDelete) {
89
109
  var filterModel = gridFilterModelSelector(apiRef);
@@ -97,7 +117,7 @@ export var useGridFilter = function useGridFilter(apiRef, props) {
97
117
 
98
118
  apiRef.current.setFilterModel(_extends({}, filterModel, {
99
119
  items: items
100
- }));
120
+ }), 'deleteFilterItem');
101
121
  }, [apiRef]);
102
122
  var showFilterPanel = React.useCallback(function (targetColumnField) {
103
123
  logger.debug('Displaying filter panel');
@@ -115,13 +135,13 @@ export var useGridFilter = function useGridFilter(apiRef, props) {
115
135
  if (filterItemOnTarget) {
116
136
  newFilterItems = filterItemsWithValue;
117
137
  } else if (props.disableMultipleColumnsFiltering) {
118
- newFilterItems = [{
138
+ newFilterItems = [cleanFilterItem({
119
139
  columnField: targetColumnField
120
- }];
140
+ }, apiRef)];
121
141
  } else {
122
- newFilterItems = [].concat(_toConsumableArray(filterItemsWithValue), [{
142
+ newFilterItems = [].concat(_toConsumableArray(filterItemsWithValue), [cleanFilterItem({
123
143
  columnField: targetColumnField
124
- }]);
144
+ }, apiRef)]);
125
145
  }
126
146
 
127
147
  apiRef.current.setFilterModel(_extends({}, filterModel, {
@@ -144,7 +164,7 @@ export var useGridFilter = function useGridFilter(apiRef, props) {
144
164
 
145
165
  apiRef.current.setFilterModel(_extends({}, filterModel, {
146
166
  linkOperator: linkOperator
147
- }));
167
+ }), 'changeLogicOperator');
148
168
  }, [apiRef]);
149
169
  var setQuickFilterValues = React.useCallback(function (values) {
150
170
  var filterModel = gridFilterModelSelector(apiRef);
@@ -157,12 +177,12 @@ export var useGridFilter = function useGridFilter(apiRef, props) {
157
177
  quickFilterValues: _toConsumableArray(values)
158
178
  }));
159
179
  }, [apiRef]);
160
- var setFilterModel = React.useCallback(function (model) {
180
+ var setFilterModel = React.useCallback(function (model, reason) {
161
181
  var currentModel = gridFilterModelSelector(apiRef);
162
182
 
163
183
  if (currentModel !== model) {
164
184
  logger.debug('Setting filter model');
165
- apiRef.current.setState(mergeStateWithFilterModel(model, props.disableMultipleColumnsFiltering, apiRef));
185
+ apiRef.current.unstable_updateControlState('filter', mergeStateWithFilterModel(model, props.disableMultipleColumnsFiltering, apiRef), reason);
166
186
  apiRef.current.unstable_applyFilters();
167
187
  }
168
188
  }, [apiRef, logger, props.disableMultipleColumnsFiltering]);
@@ -177,6 +197,7 @@ export var useGridFilter = function useGridFilter(apiRef, props) {
177
197
  unstable_applyFilters: applyFilters,
178
198
  deleteFilterItem: deleteFilterItem,
179
199
  upsertFilterItem: upsertFilterItem,
200
+ upsertFilterItems: upsertFilterItems,
180
201
  setFilterModel: setFilterModel,
181
202
  showFilterPanel: showFilterPanel,
182
203
  hideFilterPanel: hideFilterPanel,
@@ -210,7 +231,7 @@ export var useGridFilter = function useGridFilter(apiRef, props) {
210
231
  return params;
211
232
  }
212
233
 
213
- apiRef.current.setState(mergeStateWithFilterModel(filterModel, props.disableMultipleColumnsFiltering, apiRef));
234
+ apiRef.current.unstable_updateControlState('filter', mergeStateWithFilterModel(filterModel, props.disableMultipleColumnsFiltering, apiRef), 'restoreState');
214
235
  return _extends({}, params, {
215
236
  callbacks: [].concat(_toConsumableArray(params.callbacks), [apiRef.current.unstable_applyFilters])
216
237
  });
@@ -43,7 +43,7 @@ export var useGridPage = function useGridPage(apiRef, props) {
43
43
 
44
44
  var logger = useGridLogger(apiRef, 'useGridPage');
45
45
  var visibleTopLevelRowCount = useGridSelector(apiRef, gridVisibleTopLevelRowCountSelector);
46
- apiRef.current.unstable_updateControlState({
46
+ apiRef.current.unstable_registerControlState({
47
47
  stateId: 'page',
48
48
  propModel: props.page,
49
49
  propOnChange: props.onPageChange,
@@ -27,7 +27,7 @@ export var useGridPageSize = function useGridPageSize(apiRef, props) {
27
27
 
28
28
  var logger = useGridLogger(apiRef, 'useGridPageSize');
29
29
  var rowHeight = useGridSelector(apiRef, gridDensityRowHeightSelector);
30
- apiRef.current.unstable_updateControlState({
30
+ apiRef.current.unstable_registerControlState({
31
31
  stateId: 'pageSize',
32
32
  propModel: props.pageSize,
33
33
  propOnChange: props.onPageSizeChange,