@mui/x-codemod
Advanced tools
Changelog
8.0.0-alpha.11
Feb 7, 2025
We'd like to offer a big thanks to the 11 contributors who made this release possible. Here are some highlights ✨:
Special thanks go out to the community contributors who have helped make this release possible: @lauri865. Following are all team members who have contributed to this release: @alexfauquette, @arminmeh, @bernardobelchior, @flaviendelangle, @Janpot, @KenanYusuf, @LukasTy, @MBilalShafi, @noraleonte, @romgrk.
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->createUseGridApiEventHandler()
is not exported anymore.
The filteredRowsLookup
object of the filter state does not contain true
values anymore. If the row is filtered out, the value is false
. Otherwise, the row id is not present in the object.
This change only impacts you if you relied on filteredRowsLookup
to get ids of filtered rows. In this case,use gridDataRowIdsSelector
selector to get row ids and check filteredRowsLookup
for false
values:
const filteredRowsLookup = gridFilteredRowsLookupSelector(apiRef);
-const filteredRowIds = Object.keys(filteredRowsLookup).filter((rowId) => filteredRowsLookup[rowId] === true);
+const rowIds = gridDataRowIdsSelector(apiRef);
+const filteredRowIds = rowIds.filter((rowId) => filteredRowsLookup[rowId] !== false);
The visibleRowsLookup
state does not contain true
values anymore. If the row is not visible, the value is false
. Otherwise, the row id is not present in the object:
const visibleRowsLookup = gridVisibleRowsLookupSelector(apiRef);
-const isRowVisible = visibleRowsLookup[rowId] === true;
+const isRowVisible = visibleRowsLookup[rowId] !== false;
Changelog
8.0.0-alpha.10
Jan 30, 2025
We'd like to offer a big thanks to the 10 contributors who made this release possible. Here are some highlights ✨:
Special thanks go out to the community contributors who have helped make this release possible: @k-rajat19, @lauri865, @mateuseap. Following are all team members who have contributed to this release: @alexfauquette, @flaviendelangle, @JCQuintas, @KenanYusuf, @MBilalShafi, @romgrk, @arminmeh.
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->viewportInnerSize.width
now includes pinned columns' widths (fixes recursive loops in updating dimensions <-> columns)
The Data Grid now has a default background color, and its customization has moved from theme.mixins.MuiDataGrid
to theme.palette.DataGrid
with the following properties:
bg
: Sets the background color of the entire grid (new property)headerBg
: Sets the background color of the header (previously named containerBackground
)pinnedBg
: Sets the background color of pinned rows and columns (previously named pinnedBackground
) const theme = createTheme({
- mixins: {
- MuiDataGrid: {
- containerBackground: '#f8fafc',
- pinnedBackground: '#f1f5f9',
- },
- },
+ palette: {
+ DataGrid: {
+ bg: '#f8fafc',
+ headerBg: '#e2e8f0',
+ pinnedBg: '#f1f5f9',
+ },
+ },
});
The detailPanels
, pinnedColumns
, and pinnedRowsRenderZone
classes have been removed.
Return type of the useGridApiRef()
hook and the type of apiRef
prop are updated to explicitly include the possibilty of null
. In addition to this, useGridApiRef()
returns a reference that is initialized with null
instead of {}
.
Only the initial value and the type are updated. Logic that initializes the API and its availability remained the same, which means that if you could access API in a particular line of your code before, you are able to access it as well after this change.
Depending on the context in which the API is being used, you can decide what is the best way to deal with null
value. Some options are:
apiRef
is not null
apiRef
is null
apiRef
is null
Changelog
8.0.0-alpha.9
Jan 24, 2025
We'd like to offer a big thanks to the 10 contributors who made this release possible. Here are some highlights ✨:
Special thanks go out to the community contributors who have helped make this release possible: @AxharKhan, @lauri865, @mapache-salvaje, @mostafaRoosta74.
Following are all team members who have contributed to this release: @alexfauquette, @cherniavskii, @Janpot, @JCQuintas, @LukasTy, @arminmeh.
Changelog
8.0.0-alpha.8
Jan 16, 2025
We'd like to offer a big thanks to the 11 contributors who made this release possible. Here are some highlights ✨:
🍬 Improved design for Data Grid Header filters
<img width="100%" alt="Data Grid Header filters" src="https://github.com/user-attachments/assets/74a50cd9-7a55-41fc-a2b8-f8a0d5b9120e" />🔄 Data Grid Scroll restoration
📊 Charts support server-side rendering under some conditions
🐞 Bugfixes
Special thanks go out to the community contributors who have helped make this release possible: @lauri865. Following are all team members who have contributed to this release: @arminmeh, @romgrk, @samuelsycamore, @alexfauquette, @cherniavskii, @flaviendelangle, @JCQuintas, @KenanYusuf, @LukasTy, @michelengelen.
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->slotProps={{ headerFilterCell: { showClearIcon: true } }}
to restore the clear button in the cell.Changelog
8.0.0-alpha.7
Jan 9, 2025
We'd like to offer a big thanks to the 13 contributors who made this release possible. Here are some highlights ✨:
Special thanks go out to the community contributors who have helped make this release possible: @derek-0000, @josteinjhauge, @k-rajat19, @nusr, @tomashauser. Following are all team members who have contributed to this release: @cherniavskii, @flaviendelangle, @JCQuintas, @LukasTy, @MBilalShafi, @arminmeh, @romgrk, @oliviertassinari.
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->Changelog
7.23.6
Jan 9, 2025
We'd like to offer a big thanks to the 11 contributors who made this release possible. Here are some highlights ✨:
Special thanks go out to the community contributors who have helped make this release possible: @josteinjhauge, @derek-0000, @nusr, @k-rajat19, @tomashauser. Following are all team members who have contributed to this release: @flaviendelangle, @LukasTy, @MBilalShafi, @arminmeh, @oliviertassinari, @cherniavskii.
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->Changelog
8.0.0-alpha.6
Dec 26, 2024
We'd like to offer a big thanks to the 8 contributors who made this release possible. Here are some highlights ✨:
Special thanks go out to the community contributors who have helped make this release possible: @JoepVerkoelen, @k-rajat19, @lauri865. Following are all team members who have contributed to this release: @flaviendelangle, @JCQuintas, @LukasTy, @MBilalShafi, @romgrk.
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->sanitizeFilterItemValue()
utility is not exported anymore.Changelog
8.0.0-alpha.5
Dec 19, 2024
We'd like to offer a big thanks to the 9 contributors who made this release possible. Here are some highlights ✨:
Special thanks go out to the community contributors who have helped make this release possible: @good-jinu, @k-rajat19. Following are all team members who have contributed to this release: @alexfauquette, @cherniavskii, @flaviendelangle, @KenanYusuf, @LukasTy, @MBilalShafi, @romgrk.
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->Passing additional props (like data-*
, aria-*
) directly on the Data Grid component is no longer supported. To pass the props, use slotProps
.
.root
element, use slotProps.root
..main
element (the one with role="grid"
), use slotProps.main
.detailPanelExpandedRowIds
and onDetailPanelExpandedRowIdsChange
props use a Set
instead of an array:
-detailPanelExpandedRowIds?: GridRowId[];
+detailPanelExpandedRowIds?: Set<GridRowId>;
-onDetailPanelExpandedRowIdsChange?: (ids: GridRowId[], details: GridCallbackDetails) => void;
+onDetailPanelExpandedRowIdsChange?: (ids: Set<GridRowId>, details: GridCallbackDetails) => void;
apiRef.current.getExpandedDetailPanels
and apiRef.current.setExpandedDetailPanels
methods receive and return a Set
instead of an array.
gridDetailPanelExpandedRowIdsSelector
returns a Set
instead of an array.
gridDetailPanelExpandedRowsHeightCacheSelector
was removed.
Changelog
8.0.0-alpha.4
Dec 13, 2024
We'd like to offer a big thanks to the 11 contributors who made this release possible. Here are some highlights ✨:
Special thanks go out to the community contributors who have helped make this release possible: @k-rajat19, @nusr, @rares985, @zivl. Following are all team members who have contributed to this release: @alexfauquette, @arminmeh, @flaviendelangle, @JCQuintas, @KenanYusuf, @LukasTy, @MBilalShafi.
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->The selectors signature has been updated due to the support of arguments in the selectors. Pass undefined
as arguments
if the selector doesn't use any arguments.
-mySelector(state, instanceId)
+mySelector(state, arguments, instanceId)
The useGridSelector
signature has been updated due to the introduction of arguments parameter in the selectors. Pass undefined
as arguments
if the selector doesn't use any arguments.
-const output = useGridSelector(apiRef, selector, equals)
+const output = useGridSelector(apiRef, selector, arguments, equals)
The default variant for text fields and selects in the filter panel has been changed to outlined
.
The "row spanning" feature is now stable.
<DataGrid
- unstable_rowSpanning
+ rowSpanning
/>
Selected row is now deselected when clicked again.
Changelog
8.0.0-alpha.3
Dec 5, 2024
We'd like to offer a big thanks to the 9 contributors who made this release possible. Here are some highlights ✨:
Special thanks go out to the community contributors who have helped make this release possible: @ihsanberkozcan, @k-rajat19, @perezShaked. Following are all team members who have contributed to this release: @arminmeh, @cherniavskii, @flaviendelangle, @JCQuintas, @MBilalShafi, @noraleonte.
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->isRowSelectable
prop.rowPositionsDebounceMs
prop was removed.gridRowsDataRowIdToIdLookupSelector
selector was removed. Use the gridRowsLookupSelector
selector in combination with the getRowId()
API method instead.
-const idToIdLookup = gridRowsDataRowIdToIdLookupSelector(apiRef);
-const rowId = idToIdLookup[id]
+const rowsLookup = gridRowsLookupSelector(apiRef);
+const rowId = apiRef.current.getRowId(rowsLookup[id])
role
attribute to treegrid
if the Data Grid is used with row grouping feature.