Minor Changes
-
Thanks @aliemir, @alicanerdurmaz, @batuhanW, @salihozdemir, @yildirayunlu, @recepkutuk!
Updated buttons withresource
property.resourceNameOrRouteName
is now deprecated but kept working until next major version. -
Thanks @aliemir, @alicanerdurmaz, @batuhanW, @salihozdemir, @yildirayunlu, @recepkutuk!
🪄 Migrating your project automatically with refine-codemod ✨
@refinedev/codemod
package handles the breaking changes for your project automatically, without any manual steps. It migrates your project from3.x.x
to4.x.x
.Just
cd
into root folder of your project (wherepackage.json
is contained) and run this command:npx @refinedev/codemod refine3-to-refine4
And it's done. Now your project uses
refine@4.x.x
.📝 Changelog
Deprecated
useMenu
removed from@refinedev/mui
package. UseuseMenu
from@refinedev/core
package instead.- import { useMenu } from "@refinedev/mui"; + import { useMenu } from "@refinedev/core";
-
Thanks @aliemir, @alicanerdurmaz, @batuhanW, @salihozdemir, @yildirayunlu, @recepkutuk!
meta
prop is added. To ensure backward compatibility,metaData
prop will be used ifmeta
prop is not provided. -
Thanks @aliemir, @alicanerdurmaz, @batuhanW, @salihozdemir, @yildirayunlu, @recepkutuk!
Updated the components to match the changes in routing system of@refinedev/core
.meta
property in componentsThis includes
meta
props in buttons andSider
component.meta
property can be used to pass additional parameters to the navigation paths.For a
posts
resource definition like this:<Refine resources={[ { name: "posts", list: "/posts", show: "/:authorId/posts/:id", } ]} >
You can pass
authorId
to theShowButton
component like this:<ShowButton resource="posts" id="1" meta={{ authorId: 123 }}>
This will navigate to
/123/posts/1
path.Removed props
ignoreAccessControlProvider
prop is removed from buttons.cardProps
,cardHeaderProps
,cardContentProps
,cardActionsProps
andactionButtons
props are removed from CRUD component.
-
Thanks @aliemir, @alicanerdurmaz, @batuhanW, @salihozdemir, @yildirayunlu, @recepkutuk!
All Material UI components re-exported from@refinedev/mui
have been removed. You should import them from Material UI packages directly.If the packages are not installed, you can install them with your package manager:
You don't have to install all of these packages below. Only install the packages you use.
npm install @mui/material @emotion/react @emotion/styled @mui/lab @mui/x-data-grid # or pnpm add @mui/material @emotion/react @emotion/styled @mui/lab @mui/x-data-grid # or yarn add @mui/material @emotion/react @emotion/styled @mui/lab @mui/x-data-grid
After that, you can import them from related packages directly.
- import { - Box, - NumberField, - Stack, - Typography, - ThemeProvider, - DataGrid - LoadingButton, - } from "@refinedev/mui"; + import { NumberField } from "@refinedev/mui"; + import { ThemeProvider } from "@mui/material/styles"; + import { Box, Stack, Typography } from "@mui/material"; + import { DataGrid } from "@mui/x-data-grid"; + import { LoadingButton } from "@mui/lab";
-
Thanks @aliemir, @alicanerdurmaz, @batuhanW, @salihozdemir, @yildirayunlu, @recepkutuk!
<ReadyPage>
isnow deprecated.- Created a
<WelcomePage>
component to welcome users.
-
Thanks @aliemir, @alicanerdurmaz, @batuhanW, @salihozdemir, @yildirayunlu, @recepkutuk!
useAutocomplete
's sort prop is now deprecated. Usesorters
prop instead.
useAutocomplete({ - sort, + sorters, })
-
Thanks @aliemir, @alicanerdurmaz, @batuhanW, @salihozdemir, @yildirayunlu, @recepkutuk!
Added legacy auth provider and new auth provider support to all components and hooks. -
Thanks @aliemir, @alicanerdurmaz, @batuhanW, @salihozdemir, @yildirayunlu, @recepkutuk!
useDataGrid
return values and properties are updated.-
initialCurrent
andinitialPageSize
props are now deprecated. Usepagination
prop instead. -
To ensure backward compatibility,
initialCurrent
andinitialPageSize
props will work as before.useDataGrid({ - initialCurrent, - initialPageSize, + pagination: { + current, + pageSize, + }, })
-
hasPagination
prop is now deprecated. Usepagination.mode
instead. -
To ensure backward compatibility,
hasPagination
prop will work as before.useDataGrid({ - hasPagination, + pagination: { + mode: "off" | "server" | "client", + }, })
-
initialSorter
andpermanentSorter
props are now deprecated. Usesorters.initial
andsorters.permanent
instead. -
To ensure backward compatibility,
initialSorter
andpermanentSorter
props will work as before.useDataGrid({ - initialSorter, - permanentSorter, + sorters: { + initial, + permanent, + }, })
-
initialFilter
,permanentFilter
, anddefaultSetFilterBehavior
props are now deprecated. Usefilters.initial
,filters.permanent
, andfilters.defaultBehavior
instead. -
To ensure backward compatibility,
initialFilter
,permanentFilter
, anddefaultSetFilterBehavior
props will work as before.useDataGrid({ - initialFilter, - permanentFilter, - defaultSetFilterBehavior, + filters: { + initial, + permanent, + defaultBehavior, + }, })
-
sorter
andsetSorter
return values are now deprecated. Usesorters
andsetSorters
instead. -
To ensure backward compatibility,
sorter
andsetSorter
return values will work as before.const { - sorter, + sorters, - setSorter, + setSorters, } = useDataGrid();
-
-
Thanks @aliemir, @alicanerdurmaz, @batuhanW, @salihozdemir, @yildirayunlu, @recepkutuk!
Moving to the@refinedev
scope 🎉🎉Moved to the
@refinedev
scope and updated our packages to use the new scope. From now on, all packages will be published under the@refinedev
scope with their new names.Now, we're also removing the
refine
prefix from all packages. So, the@pankod/refine-core
package is now@refinedev/core
,@pankod/refine-antd
is now@refinedev/antd
, and so on.