Minor Changes
-
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.syncWithLocation
support inuseDrawerForm
anduseModalForm
hooksuseDrawerForm
anduseModalForm
hooks now supportsyncWithLocation
prop. This prop can be used to sync the visibility state of them with the location via query params.You can pass a boolean or an object with
key
andsyncId
properties.-
key
is used to define the query param key. Default value is inferred from the resource and the action. For exampleposts-create
forposts
resource andcreate
action. -
syncId
is used to include theid
property in the query param key. Default value isfalse
. This is useful foredit
andclone
actions.
Removed props
ignoreAccessControlProvider
prop is removed from buttons. -
-
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!
All Ant Design components re-exported from@refinedev/antd
have been removed. You should import them fromantd
package directly.If the package is not installed, you should install it with your package manager:
npm install antd # or pnpm add antd # or yarn add antd
After that, you can import components from
antd
package directly like below:-import { useTable, SaveButton, Button, Form, Input, Select } from "@refinedev/antd"; +import { useTable, SaveButton } from "@refinedev/antd"; +import { Button, Form, Input, Select } from "antd";
Icons
are also removed from@refinedev/antd
. So, you should import icons from@ant-design/icons
package directly.If the package is not installed, you should install it with your package manager:
npm install @ant-design/icons # or pnpm add @ant-design/icons # or yarn add @ant-design/icons
After that, you can import icons from
@ant-design/icons
package directly like below:-import { Icons } from "@refinedev/antd"; -const { EditOutlined } = Icons; + import { EditOutlined } from "@ant-design/icons";
-
Thanks @aliemir, @alicanerdurmaz, @batuhanW, @salihozdemir, @yildirayunlu, @recepkutuk!
Upgrade@ant-design/icons
to^5.0.1
for consistency. -
Thanks @aliemir, @alicanerdurmaz, @batuhanW, @salihozdemir, @yildirayunlu, @recepkutuk!
useCheckboxGroup
'ssort
prop is now deprecated. Usesorters
prop instead.
useCheckboxGroup({ - sort, + sorters, })
useSelect
'ssort
prop is now deprecated. Usesorters
prop instead.
useSelect({ - sort, + sorters, })
useRadioGroup
'ssort
prop is now deprecated. Usesorters
prop instead.
useRadioGroup({ - sort, + sorters, })
useImport
'sresourceName
prop is now deprecated. Useresource
prop instead.
useImport({ - resourceName, + resource, })
-
Thanks @aliemir, @alicanerdurmaz, @batuhanW, @salihozdemir, @yildirayunlu, @recepkutuk!
<ReadyPage>
isnow deprecated.- Created a
<WelcomePage>
component to welcome users.
-
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!
🪄 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/antd
package. UseuseMenu
from@refinedev/core
package instead.- import { useMenu } from "@refinedev/antd"; + import { useMenu } from "@refinedev/core";
-
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. -
Thanks @aliemir, @alicanerdurmaz, @batuhanW, @salihozdemir, @yildirayunlu, @recepkutuk!
useTable
hookuseTable
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.useTable({ - initialCurrent, - initialPageSize, + pagination: { + current, + pageSize, + }, })
-
hasPagination
prop is now deprecated. Usepagination.mode
instead. -
To ensure backward compatibility,
hasPagination
prop will work as before.useTable({ - 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.useTable({ - 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.useTable({ - 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, } = useTable();
useSimpleList
hook-
Now
useSimpleList
hook will not accept all of<List>
component properties So, you can give their props to<List>
component directly.import { useSimpleList } from "@refinedev/antd"; import { List } from "antd"; const { listProps } = useSimpleList({ resource: "orders", pagination: { pageSize: 6, - simple: true, }, }); <List {...listProps} + pagination={{ + ...listProps.pagination, + simple: true, + }} ... // other props />
-
initialCurrent
andinitialPageSize
props are now deprecated. Usepagination
prop instead. -
To ensure backward compatibility,
initialCurrent
andinitialPageSize
props will work as before. -
useSimpleList({ - initialCurrent, - initialPageSize, + pagination: { + current, + pageSize, + }, })
-