-
#5761
399911617b2
Thanks @aliemir! - Migrated from outdated@tabler/icons@1
to@tabler/icons-react@3
to make sure we're using the latest available version of the library without requiring users to pin to a deprecated version.If your project doesn't include
@tabler/icons
you won't be affected by this change. If you're using@tabler/icons@1
in your project, you may need to update your dependency to latest version of@tabler/icons-react
to avoid conflicting dependencies. Practically, this should not introduce any breaking changes to your project and all the icons in@tabler/icons@1
should also be available in the latest version of@tabler/icons-react
.
-
#5737
4e8188a6652
Thanks @aliemir! - chore: updated content ofREADME.md
to include installation, usage and scaffolding instructions. -
#5765
0c197d82393
Thanks @aliemir! - fix:@tabler/icons-react
imports in CJS buildsimports from
@tabler/icons-react
end up requiring the ESM build in CJS environments, to prevent this we've added added an esbuild plugin to replace the imports with the correct path for CJS bundles. -
#5765
0c197d82393
Thanks @aliemir! - refactor: package bundles and package.json configuration for exportsPreviously, Refine packages had exported ESM and CJS bundles with same
.js
extension and same types for both with.d.ts
extensions. This was causing issues with bundlers and compilers to pick up the wrong files for the wrong environment. Now we're outputting ESM bundles with.mjs
extension and CJS bundles with.cjs
extension. Also types are now exported with both.d.mts
and.d.cts
extensions.In older versions ESM and CJS outputs of some packages were using wrong imports/requires to dependencies causing errors in some environments. This will be fixed since now we're also enforcing the module type with extensions.
Above mentioned changes also supported with changes in
package.json
files of the packages to support the new extensions and types. All Refine packages now includeexports
fields in their configuration to make sure the correct bundle is picked up by the bundlers and compilers. -
#5765
0c197d82393
Thanks @aliemir! - fix:dayjs
imports in ESM bundlesdayjs imports in ESM bundles were not being correctly resolved, this has been fixed by adding an esbuild plugin to replace the imports with the correct path for ESM bundles.
-
#5754
56ed144a0f5
Thanks @alicanerdurmaz! - chore: TypeScript upgraded to v5.x.x. #5752 -
#5765
0c197d82393
Thanks @aliemir! - fix: broken eslint plugin for removing test ids from componentsEslint plugin to remove test ids from components was broken and might miss some test ids to be included in the bundles.
-
#5808
10ba9c34490
Thanks @aliemir! - refactor: moved internal logic of buttons to respective hooks from@refinedev/core
We've moved the internal logic of buttons to their respective hooks in the
@refinedev/core
package to ensure consistency and reduce duplication. This change will make it easier to manage and maintain the buttons across different UI integrations of Refine. This will also benefit the users who want to customize the buttons viaswizzle
option or create their own buttons withouth having to duplicate the logic. -
Updated dependencies [
56ed144a0f5
,0c197d82393
,0c197d82393
,56ed144a0f5
,38f129f40ee
,404b2ef5e1b
]:- @refinedev/react-hook-form@4.8.16
- @refinedev/ui-types@1.22.5
-
#5695
79865affa1c
Thanks @BatuhanW! - chore: apply biome format and fix lint errors. -
Updated dependencies [
79865affa1c
]:- @refinedev/react-hook-form@4.8.15
-
#5573
546df06482
Thanks @alicanerdurmaz! - chore: add "use client" directive to exported files to work with nextjs app router -
Updated dependencies [
546df06482
]:- @refinedev/react-hook-form@4.8.14
-
#5568
f1244819ad
Thanks @alicanerdurmaz! - feat:notificationProvider
is deprecated due to consistent naming convention between UI libraries. Please useuseNotificationProvider
export as your notification provider. #5567 -
#5480
2a2269ac70
Thanks @ShivamDureja! - fix: issue with Chakra-UI sider that overflows when collapsed #5475When we try to collapse the sider it overflows so changed overflow-x property to hidden whereas overflow-y remains auto.
-
#5564
1bb7d30888
Thanks @alicanerdurmaz! - feat:<ThemedTitleV2 />'s
default icon updated.
- #5465
00e00cbd98
Thanks @aliemir! - Fixed the type issue betweenremark-gfm
andreact-markdown
. #5463
-
#5425
190af9fce2
Thanks @aliemir! - Updated@refinedev/core
peer dependencies to latest (^4.46.1
) -
Updated dependencies [
190af9fce2
]:- @refinedev/react-hook-form@4.8.13
- @refinedev/ui-types@1.22.4
-
#5307
f8e407f850
Thanks @jackprogramsjp! - feat: addedhideForm
props forLoginPage
andRegisterPage
forAuthPage
feature.Now with the
hideForm
props feature, you can be able to hide the forms (like email/password) to only show the OAuth providers. This avoids having to make your own entire AuthPage.
-
#5269
a23a0945d3
Thanks @BatuhanW! - feat: add "autoComplete" field for Login pages. -
#5325
7ff54b2060
Thanks @alicanerdurmaz! - fix:<AuthPage />
styling issues on mobile screens.chore: new tests are added to
<AuthPage />
.
- #5259
eac3df87ffb
Thanks @aliemir! - Updated<AutoSaveIndicator />
component to extend the<AutoSaveIndicator />
from@refinedev/core
with custom elements and render appropriate element based on the state.
-
#5026
a605e4cd318
Thanks @alicanerdurmaz! - feat: deprecated<ThemedLayout />
and<Layout />
components removed fromswizzle
. From now on, users can swizzle<ThemedLayoutV2 />
component instead.feat: swizzled
<ThemedLayoutV2 />
component destination changed tosrc/components/layout/
fromsrc/components/themedLayout
.
-
#5026
a605e4cd318
Thanks @alicanerdurmaz! - feat: deprecated<ThemedLayout />
and<Layout />
components removed fromswizzle
. From now on, users can swizzle<ThemedLayoutV2 />
component instead.feat: swizzled
<ThemedLayoutV2 />
component destination changed tosrc/components/layout/
fromsrc/components/themedLayout
.
-
#5022
80513a4e42f
Thanks @BatuhanW! - chore: update README.md- fix grammar errors.
- make all README.md files consistent.
- add code example code snippets.
-
Updated dependencies [
80513a4e42f
]:- @refinedev/react-hook-form@4.8.10
-
#5022
80513a4e42f
Thanks @BatuhanW! - chore: update README.md- fix grammar errors.
- make all README.md files consistent.
- add code example code snippets.
-
Updated dependencies [
80513a4e42f
]:- @refinedev/react-hook-form@4.8.9
-
#5003
6043c450432
Thanks @adjsky! - fix(chakra-ui): use isLoading in RefreshButtonNow the right loading prop is used.
-
#5003
6043c450432
Thanks @adjsky! - fix(chakra-ui): use isLoading in RefreshButtonNow the right loading prop is used.
- #4975
ff66a862e46
Thanks @aliemir! - Updated dependency of@tabler/icons
tov1.119.0
to fix the issue of using misconfigured versions. (Fixes #4921)
- #4975
ff66a862e46
Thanks @aliemir! - Updated dependency of@tabler/icons
tov1.119.0
to fix the issue of using misconfigured versions. (Fixes #4921)
-
#4964
85b1ac0db5f
Thanks @BatuhanW! - chore: update @refinedev/core peer dependency versions. -
Updated dependencies [
85b1ac0db5f
]:- @refinedev/react-hook-form@4.8.8
-
#4964
85b1ac0db5f
Thanks @BatuhanW! - chore: update @refinedev/core peer dependency versions. -
Updated dependencies [
85b1ac0db5f
]:- @refinedev/react-hook-form@4.8.7
- #4951
04837c62077
Thanks @aliemir! - - Update build configuration foresbuild
to use the shared plugins.- Fix the lodash replacement plugin to skip redundant files.
- Updated dependencies [
04837c62077
]:- @refinedev/ui-types@1.22.2
- #4951
04837c62077
Thanks @aliemir! - - Update build configuration foresbuild
to use the shared plugins.- Fix the lodash replacement plugin to skip redundant files.
- Updated dependencies [
04837c62077
]:- @refinedev/ui-types@1.22.1
-
#4948
8e5efffbb23
Thanks @aliemir! - Keep the hook and component names in builds for better debugging. -
Updated dependencies [
8e5efffbb23
]:- @refinedev/react-hook-form@4.8.4
-
#4948
8e5efffbb23
Thanks @aliemir! - Keep the hook and component names in builds for better debugging. -
Updated dependencies [
8e5efffbb23
]:- @refinedev/react-hook-form@4.8.3
- #4788
38680378c7a
Thanks @salihozdemir! - fix: use<IconButton />
in<HeaderV2 />
instead of using icon.
- #4788
38680378c7a
Thanks @salihozdemir! - fix: use<IconButton />
in<HeaderV2 />
instead of using icon.
- #4775
3052fb22449
Thanks @alicanerdurmaz! - fixed:<RefreshButton />
does not refresh content #4618. From now,<RefreshButton />
usesuseInvalidate
hook to refresh data instead ofuseOne
.
- Updated dependencies [
3052fb22449
]:- @refinedev/ui-types@1.22.0
- #4775
3052fb22449
Thanks @alicanerdurmaz! - fixed:<RefreshButton />
does not refresh content #4618. From now,<RefreshButton />
usesuseInvalidate
hook to refresh data instead ofuseOne
.
- Updated dependencies [
3052fb22449
]:- @refinedev/ui-types@1.21.0
-
#4764
6aba21bfde0
Thanks @salihozdemir! - fix: fixed a bug where the<ThemedLayoutv2>
component was not worked with sticky header. -
Updated dependencies [
c757355da60
]:- @refinedev/react-hook-form@4.8.2
-
#4764
6aba21bfde0
Thanks @salihozdemir! - fix: fixed a bug where the<ThemedLayoutv2>
component was not worked with sticky header. -
Updated dependencies [
c757355da60
]:- @refinedev/react-hook-form@4.8.1
- #4741
026ccf34356
Thanks @aliemir! - AddedsideEffects: false
topackage.json
to help bundlers tree-shake unused code.
- Updated dependencies [
026ccf34356
]:- @refinedev/react-hook-form@4.8.0
- #4741
026ccf34356
Thanks @aliemir! - AddedsideEffects: false
topackage.json
to help bundlers tree-shake unused code.
- Updated dependencies [
026ccf34356
]:- @refinedev/react-hook-form@4.7.0
-
#4591
f8891ead2bd
Thanks @yildirayunlu! - feat:autoSave
feature forEdit
. useForm, useDrawerForm, useModalForm, useStepsForm hooks now acceptautoSave
object.enabled
is a boolean value anddebounce
is a number value in milliseconds.debounce
is optional and default value is1000
.const { autoSaveProps } = useForm({ refineCoreProps: { autoSave: { enabled: true, debounce: 2000, // not required, default is 1000 }, } }); return ( <Edit saveButtonProps={saveButtonProps} // pass autoSaveProps to Edit component autoSaveProps={autoSaveProps} > // form fields </Edit> );
feat: Add
<AutoSaveIndicator>
component. It comes automatically whenautoSaveProps
is given to theEdit
page. However, this component can be used to position it in a different place.import { AutoSaveIndicator } from "@refinedev/chakra-ui"; const { autoSaveProps } = useForm({ refineCoreProps: { autoSave: { enabled: true, debounce: 2000, // not required, default is 1000 }, } }); return ( <div> <AutoSaveIndicator {...autoSaveProps}> </div> );
-
#4644
5da81a141bc
Thanks @yildirayunlu! - fix: broken layout on smaller screens. Addoverflow: auto
to layout content. -
Updated dependencies [
96af6d25b7a
,f8891ead2bd
]:- @refinedev/react-hook-form@4.6.0
- @refinedev/ui-types@1.20.0
-
#4591
f8891ead2bd
Thanks @yildirayunlu! - feat:autoSave
feature forEdit
. useForm, useDrawerForm, useModalForm, useStepsForm hooks now acceptautoSave
object.enabled
is a boolean value anddebounce
is a number value in milliseconds.debounce
is optional and default value is1000
.const { autoSaveProps } = useForm({ refineCoreProps: { autoSave: { enabled: true, debounce: 2000, // not required, default is 1000 }, } }); return ( <Edit saveButtonProps={saveButtonProps} // pass autoSaveProps to Edit component autoSaveProps={autoSaveProps} > // form fields </Edit> );
feat: Add
<AutoSaveIndicator>
component. It comes automatically whenautoSaveProps
is given to theEdit
page. However, this component can be used to position it in a different place.import { AutoSaveIndicator } from "@refinedev/chakra-ui"; const { autoSaveProps } = useForm({ refineCoreProps: { autoSave: { enabled: true, debounce: 2000, // not required, default is 1000 }, } }); return ( <div> <AutoSaveIndicator {...autoSaveProps}> </div> );
-
#4644
5da81a141bc
Thanks @yildirayunlu! - fix: broken layout on smaller screens. Addoverflow: auto
to layout content. -
Updated dependencies [
96af6d25b7a
,f8891ead2bd
]:- @refinedev/react-hook-form@4.5.0
- @refinedev/ui-types@1.19.0
-
#4502
c7872ca621f
Thanks @Mr0nline! - feat: ability to tweak active sider items navigationVisiting active sider items triggers page reloads due to them being links. We can now provide activeItemDisabled prop to disable such reloads.
-
#4607
fed630dcc3e
Thanks @alicanerdurmaz! - fixed: TSDoc typos. TSDoc descriptions texts has Mantine instead of Chakra UI.feat: added
ThemedLayoutV2
tests. -
#4607
fed630dcc3e
Thanks @alicanerdurmaz! - test: added tests for<ThemedSiderV2/>
. -
Updated dependencies [
c7872ca621f
]:- @refinedev/ui-types@1.18.0
-
#4502
c7872ca621f
Thanks @Mr0nline! - feat: ability to tweak active sider items navigationVisiting active sider items triggers page reloads due to them being links. We can now provide activeItemDisabled prop to disable such reloads.
-
#4607
fed630dcc3e
Thanks @alicanerdurmaz! - fixed: TSDoc typos. TSDoc descriptions texts has Mantine instead of Chakra UI.feat: added
ThemedLayoutV2
tests. -
#4607
fed630dcc3e
Thanks @alicanerdurmaz! - test: added tests for<ThemedSiderV2/>
. -
Updated dependencies [
c7872ca621f
]:- @refinedev/ui-types@1.17.0
-
#4527
ceadcd29fc9
Thanks @salihozdemir! - fix: prioritization of forgottenidentifier
If
identifier
is provided, it will be used instead ofname
.import { DeleteButton } from "@refinedev/chakra-ui"; <DeleteButton resource="identifier-value" recordItemId="123" />;
fix: use translate keys with
identifier
Previously, the translate keys were generated using resource
name
. This caused issues when you had multipleresource
usage with the same name. Now thetranslate
keys are generated usingidentifier
if it's present. -
Updated dependencies [
9a895ea39dc
,ceadcd29fc9
]:- @refinedev/react-hook-form@4.4.2
-
#4527
ceadcd29fc9
Thanks @salihozdemir! - fix: prioritization of forgottenidentifier
If
identifier
is provided, it will be used instead ofname
.import { DeleteButton } from "@refinedev/chakra-ui"; <DeleteButton resource="identifier-value" recordItemId="123" />;
fix: use translate keys with
identifier
Previously, the translate keys were generated using resource
name
. This caused issues when you had multipleresource
usage with the same name. Now thetranslate
keys are generated usingidentifier
if it's present. -
Updated dependencies [
9a895ea39dc
,ceadcd29fc9
]:- @refinedev/react-hook-form@4.4.1
-
#4449
cc84d61bc5c
Thanks @BatuhanW! - feat: updated Create, List, Show, Edit, Delete, Clone buttons to respect new globalaccessControlProvider
configuration.fix: Delete button's text wasn't rendered as
reason
field ofaccessControlProvider
.Given the following
can
method:const accessControlProvider: IAccessControlContext = { can: async (): Promise<CanReturnType> => { return { can: false, reason: "Access Denied!" }; }, };
If user is unauthorized,
Delete
button's text should beAccess Denied!
instead of defaultDelete
.This is the default behaviour for Create, List, Show, Edit, Delete, Clone buttons already.
-
#4449
cc84d61bc5c
Thanks @BatuhanW! - feat: updated Create, List, Show, Edit, Delete, Clone buttons to respect new globalaccessControlProvider
configuration.fix: Delete button's text wasn't rendered as
reason
field ofaccessControlProvider
.Given the following
can
method:const accessControlProvider: IAccessControlContext = { can: async (): Promise<CanReturnType> => { return { can: false, reason: "Access Denied!" }; }, };
If user is unauthorized,
Delete
button's text should beAccess Denied!
instead of defaultDelete
.This is the default behaviour for Create, List, Show, Edit, Delete, Clone buttons already.
- #4431
c29a3618cf6
Thanks @aliemir! - Updated the TSDoc comments to fix the broken links in the documentation.
- #4431
c29a3618cf6
Thanks @aliemir! - Updated the TSDoc comments to fix the broken links in the documentation.
-
#4404
f67967e8c87
Thanks @salihozdemir! - refactor: fix name and state inconsistency in<ThemedLayoutV2>
useSiderVisible
is deprecated, instead we created a new hookuseThemedLayoutContext
for it.useThemedLayoutContext
similar touseSiderVisible
but it returns more meaningful state names. However,useSiderVisible
is still available for backward compatibility.Updated
Sider
andHamburgerMenu
components usinguseThemedLayoutContext
.import { useThemedLayoutContext } from "@refinedev/chakra-ui"; const { siderCollapsed, setSiderCollapsed, mobileSiderOpen, setMobileSiderOpen, } = useThemedLayoutContext();
-
#4404
f67967e8c87
Thanks @salihozdemir! - refactor: fix name and state inconsistency in<ThemedLayoutV2>
useSiderVisible
is deprecated, instead we created a new hookuseThemedLayoutContext
for it.useThemedLayoutContext
similar touseSiderVisible
but it returns more meaningful state names. However,useSiderVisible
is still available for backward compatibility.Updated
Sider
andHamburgerMenu
components usinguseThemedLayoutContext
.import { useThemedLayoutContext } from "@refinedev/chakra-ui"; const { siderCollapsed, setSiderCollapsed, mobileSiderOpen, setMobileSiderOpen, } = useThemedLayoutContext();
- #4316
4690c627e05
Thanks @yildirayunlu! - fix: fixedclassName
for easier selection of all buttons and titles of CRUD components
- #4316
4690c627e05
Thanks @yildirayunlu! - fix: fixedclassName
for easier selection of all buttons and titles of CRUD components
-
#4303
0c569f42b4e
Thanks @alicanerdurmaz! - feat: added default button props into the renderer functionsheaderButtons
andfooterButtons
in CRUD components. Now, customization of the header and footer buttons can be achieved without losing the default functionality.import { DeleteButton, EditButton, ListButton, RefreshButton, Show, } from "@refinedev/chakra-ui"; const PostShow = () => { return ( <Show headerButtons={({ deleteButtonProps, editButtonProps, listButtonProps, refreshButtonProps, }) => { return ( <> {/* custom components */} {listButtonProps && ( <ListButton {...listButtonProps} meta={{ foo: "bar" }} /> )} {editButtonProps && ( <EditButton {...editButtonProps} meta={{ foo: "bar" }} /> )} {deleteButtonProps && ( <DeleteButton {...deleteButtonProps} meta={{ foo: "bar" }} /> )} <RefreshButton {...refreshButtonProps} meta={{ foo: "bar" }} /> </> ); }} > {/* ... */} </Show> ); };
-
#4312
9a5f79186c1
Thanks @yildirayunlu! - feat: addedclassName
for easier selection of all buttons and titles of CRUD components -
Updated dependencies [
0c569f42b4e
,e6eb4dea627
,9a5f79186c1
]:- @refinedev/ui-types@1.16.0
- @refinedev/react-hook-form@4.4.0
-
#4303
0c569f42b4e
Thanks @alicanerdurmaz! - feat: added default button props into the renderer functionsheaderButtons
andfooterButtons
in CRUD components. Now, customization of the header and footer buttons can be achieved without losing the default functionality.import { DeleteButton, EditButton, ListButton, RefreshButton, Show, } from "@refinedev/chakra-ui"; const PostShow = () => { return ( <Show headerButtons={({ deleteButtonProps, editButtonProps, listButtonProps, refreshButtonProps, }) => { return ( <> {/* custom components */} {listButtonProps && ( <ListButton {...listButtonProps} meta={{ foo: "bar" }} /> )} {editButtonProps && ( <EditButton {...editButtonProps} meta={{ foo: "bar" }} /> )} {deleteButtonProps && ( <DeleteButton {...deleteButtonProps} meta={{ foo: "bar" }} /> )} <RefreshButton {...refreshButtonProps} meta={{ foo: "bar" }} /> </> ); }} > {/* ... */} </Show> ); };
-
#4312
9a5f79186c1
Thanks @yildirayunlu! - feat: addedclassName
for easier selection of all buttons and titles of CRUD components -
Updated dependencies [
0c569f42b4e
,e6eb4dea627
,9a5f79186c1
]:- @refinedev/ui-types@1.15.0
- @refinedev/react-hook-form@4.3.0
-
#4295
7f24a6a2b14
Thanks @salihozdemir! - chore: bump to latest version of@refinedev/ui-types
-
Updated dependencies [
dc62abc890f
]:- @refinedev/ui-types@1.14.0
- #4295
7f24a6a2b14
Thanks @salihozdemir! - chore: bump to latest version of@refinedev/ui-types
-
#4277
7172c1b42d2
Thanks @salihozdemir! - fix: renamed the<ThemedHeaderV2/>
propisSticky
tosticky
To provide backwards compatibility, the old prop name is still supported, but it is deprecated and will be removed in the next major version.
Example:
import { Refine } from "@refinedev/core"; import { ThemedLayoutV2, ThemedHeaderV2 } from "@refinedev/antd"; // or @refinedev/chakra-ui, @refinedev/mui, @refinedev/mantine const App: React.FC = () => { return ( <Refine ... > <ThemedLayoutV2 Header={() => <ThemedHeaderV2 sticky />} > {/* ... */} </ThemedLayoutV2> </Refine> ); };
-
#4272
420d2442741
Thanks @salihozdemir! - fix: updated the sider styles to solve issues that occur when there are too many items in the sider
-
#4277
7172c1b42d2
Thanks @salihozdemir! - fix: renamed the<ThemedHeaderV2/>
propisSticky
tosticky
To provide backwards compatibility, the old prop name is still supported, but it is deprecated and will be removed in the next major version.
Example:
import { Refine } from "@refinedev/core"; import { ThemedLayoutV2, ThemedHeaderV2 } from "@refinedev/antd"; // or @refinedev/chakra-ui, @refinedev/mui, @refinedev/mantine const App: React.FC = () => { return ( <Refine ... > <ThemedLayoutV2 Header={() => <ThemedHeaderV2 sticky />} > {/* ... */} </ThemedLayoutV2> </Refine> ); };
-
#4272
420d2442741
Thanks @salihozdemir! - fix: updated the sider styles to solve issues that occur when there are too many items in the sider
-
#4277
7172c1b42d2
Thanks @salihozdemir! - fix: renamed the<ThemedHeaderV2/>
propisSticky
tosticky
To provide backwards compatibility, the old prop name is still supported, but it is deprecated and will be removed in the next major version.
Example:
import { Refine } from "@refinedev/core"; import { ThemedLayoutV2, ThemedHeaderV2 } from "@refinedev/antd"; // or @refinedev/chakra-ui, @refinedev/mui, @refinedev/mantine const App: React.FC = () => { return ( <Refine ... > <ThemedLayoutV2 Header={() => <ThemedHeaderV2 sticky />} > {/* ... */} </ThemedLayoutV2> </Refine> ); };
-
#4272
420d2442741
Thanks @salihozdemir! - fix: updated the sider styles to solve issues that occur when there are too many items in the sider
- #4255
9694245718c
Thanks @alicanerdurmaz! - fixed:ThemedLayoutContextProvider
import path in internal usage.
- #4255
9694245718c
Thanks @alicanerdurmaz! - fixed:ThemedLayoutContextProvider
import path in internal usage.
-
#4232
c99bc0ad7f7
Thanks @alicanerdurmaz! - feat:initialSiderCollapsed
added toRefineThemedLayoutV2Props
to control initial state of<ThemedSiderV2>
. From now on, you can control the initial collapsed state of<ThemedSiderV2>
by passing theinitialSiderCollapsed
prop to<ThemedLayoutV2>
.<ThemedLayoutV2 initialSiderCollapsed={true} // This will make the sider collapsed by default > {/* .. */} </ThemedLayoutV2>
-
#4209
3f4b5fef76f
Thanks @yildirayunlu! - feat: addisSticky
prop toThemedHeaderV2
componentimport { ThemedHeaderV2, ThemedLayoutV2 } from "@refinedev/chakra-ui"; const CustomHeader = () => <ThemedHeaderV2 isSticky={true} />; const App = () => ( <Refine> // ... <ThemedLayoutV2 Header={CustomHeader}> <Outlet /> </ThemedLayoutV2> // ... </Refine> );
-
#4223
c2ca3a67b22
Thanks @aliemir! - Fixed theErrorComponent
height overflow issue which was causing header to be unresponsive. -
Updated dependencies [
c99bc0ad7f7
,3f4b5fef76f
]:- @refinedev/ui-types@1.12.0
-
#4232
c99bc0ad7f7
Thanks @alicanerdurmaz! - feat:initialSiderCollapsed
added toRefineThemedLayoutV2Props
to control initial state of<ThemedSiderV2>
. From now on, you can control the initial collapsed state of<ThemedSiderV2>
by passing theinitialSiderCollapsed
prop to<ThemedLayoutV2>
.<ThemedLayoutV2 initialSiderCollapsed={true} // This will make the sider collapsed by default > {/* .. */} </ThemedLayoutV2>
-
#4209
3f4b5fef76f
Thanks @yildirayunlu! - feat: addisSticky
prop toThemedHeaderV2
componentimport { ThemedHeaderV2, ThemedLayoutV2 } from "@refinedev/chakra-ui"; const CustomHeader = () => <ThemedHeaderV2 isSticky={true} />; const App = () => ( <Refine> // ... <ThemedLayoutV2 Header={CustomHeader}> <Outlet /> </ThemedLayoutV2> // ... </Refine> );
-
#4223
c2ca3a67b22
Thanks @aliemir! - Fixed theErrorComponent
height overflow issue which was causing header to be unresponsive. -
Updated dependencies [
c99bc0ad7f7
,3f4b5fef76f
]:- @refinedev/ui-types@1.11.0
-
#4176
13448252cd7
Thanks @yildirayunlu! - feat: addThemedLayoutV2
andHamburgerMenu
componentThemeLayout
is deprecated. AddedThemedLayoutV2
instead. This update fixed some UI problems in the layout. Also, with the new<HamburgerMenu />
component, it's easier to collapse/uncollapse theSider
.See here for detailed migration guideline.
-
#4176
13448252cd7
Thanks @yildirayunlu! - feat: addThemedLayoutV2
andHamburgerMenu
componentThemeLayout
is deprecated. AddedThemedLayoutV2
instead. This update fixed some UI problems in the layout. Also, with the new<HamburgerMenu />
component, it's easier to collapse/uncollapse theSider
.See here for detailed migration guideline.
- #4131
0e7ee8876df
Thanks @alicanerdurmaz! - - Fixed:<ThemedSider>
logout icon alignment.<LogoutButton>
icon changed to<IconPower>
fromIconLogout
.
- Updated dependencies [
1c13602e308
]:- @refinedev/react-hook-form@4.2.0
- #4072
fad40e6237f
Thanks @alicanerdurmaz! - -<Layout>
is deprecated. use<ThemedLayout>
instead with 100% backward compatibility. - https://refine.dev/docs/api-reference/chakra-ui/components/chakra-ui-themed-layout
- Updated dependencies [
afdaed3dd83
]:- @refinedev/react-hook-form@4.1.4
- #4072
fad40e6237f
Thanks @alicanerdurmaz! - -<Layout>
is deprecated. use<ThemedLayout>
instead with 100% backward compatibility. - https://refine.dev/docs/api-reference/chakra-ui/components/chakra-ui-themed-layout
- Updated dependencies [
afdaed3dd83
]:- @refinedev/react-hook-form@4.1.3
-
#4024
dc6d2311eb7
Thanks @alicanerdurmaz! - - Added:wrapperStyles
prop to<ThemedTitle>
component to allow for custom styles to be passed in.- Added:
textDecoration: none
to<ThemedTitle>
component.
- Added:
-
#4024
dc6d2311eb7
Thanks @alicanerdurmaz! - - Added:wrapperStyles
prop to<ThemedTitle>
component to allow for custom styles to be passed in.- Added:
textDecoration: none
to<ThemedTitle>
component.
- Added:
- #3974
4dcc20d6a60
Thanks @salihozdemir! - Deprecated theWelcomePage
component. It'll be used from@refinedev/core
instead.
- #3974
4dcc20d6a60
Thanks @salihozdemir! - Deprecated theWelcomePage
component. It'll be used from@refinedev/core
instead.
-
#3971
2798f715361
Thanks @alicanerdurmaz! - -RefineThemes
added. It contains predefined colors for the chakra-UI components.import { RefineThemes } from "@refinedev/chakra-ui"; import { Refine } from "@refinedev/core"; import dataProvider from "@refinedev/simple-rest"; const App = () => { // --- return ( <ChakraProvider theme={RefineThemes.Magenta}> <Refine dataProvider={dataProvider("YOUR_API_URL")}> {/** your app here */} </Refine> </ChakraProvider> ); };
- default title with icon added to
AuthPage
. It usesThemedTitle
component from@refinedev/chakra-ui
. You can remove it by settingtitle
prop tofalse
.
import { AuthPage, ThemedTitle } from "@refinedev/chakra-ui"; const MyLoginPage = () => { return ( <AuthPage type="login" title={ <ThemedTitle title="My Title" icon={<img src="https://refine.dev/img/logo.png" />} /> } /> ); };
title
prop added toAuthPage
'srenderContent
prop to use in the custom content.
import { Box, Heading } from "@chakra-ui/react"; import { AuthPage } from "@refinedev/chakra-ui"; const MyLoginPage = () => { return ( <AuthPage contentProps={{ style: { width: "400px", }, }} renderContent={(content: React.ReactNode, title: React.ReactNode) => { return ( <Box bg="white" borderRadius="md" px="5" display="flex" flexDirection="column" justifyContent="center" alignItems="center" > <Heading color="white">Extra Header</Heading> {content} <Heading color="white">Extra Footer</Heading> </Box> ); }} /> ); };
-
<ThemedLayout>
,<ThemedSider>
,<ThemedTitle>
,<ThemedHeader>
created to use theme colors. -
<EditButton>
in<Show>
color changed tobrand
. -
<CreateButton>
color changed tobrand
. -
<AuthPage>
component uses colors from the theme. -
<AuthPageTitle>
added toAuthPage
- default title with icon added to
-
#3975
b1e6e32f9a1
Thanks @alicanerdurmaz! - - Fixed the unsaved changes dialog is popping up unexpectedly when the user clicks the logs out.- The `<ThemedSider>`'s `onClick` handler was changed to use the `window.confirm` API to manage the confirmation dialog.
<RefineThemes>
colors updated to match the new theme colors.
-
Updated dependencies [
2798f715361
]:- @refinedev/ui-types@1.5.0
-
#3971
2798f715361
Thanks @alicanerdurmaz! - -RefineThemes
added. It contains predefined colors for the chakra-UI components.import { RefineThemes } from "@refinedev/chakra-ui"; import { Refine } from "@refinedev/core"; import dataProvider from "@refinedev/simple-rest"; const App = () => { // --- return ( <ChakraProvider theme={RefineThemes.Magenta}> <Refine dataProvider={dataProvider("YOUR_API_URL")}> {/** your app here */} </Refine> </ChakraProvider> ); };
- default title with icon added to
AuthPage
. It usesThemedTitle
component from@refinedev/chakra-ui
. You can remove it by settingtitle
prop tofalse
.
import { AuthPage, ThemedTitle } from "@refinedev/chakra-ui"; const MyLoginPage = () => { return ( <AuthPage type="login" title={ <ThemedTitle title="My Title" icon={<img src="https://refine.dev/img/logo.png" />} /> } /> ); };
title
prop added toAuthPage
'srenderContent
prop to use in the custom content.
import { Box, Heading } from "@chakra-ui/react"; import { AuthPage } from "@refinedev/chakra-ui"; const MyLoginPage = () => { return ( <AuthPage contentProps={{ style: { width: "400px", }, }} renderContent={(content: React.ReactNode, title: React.ReactNode) => { return ( <Box bg="white" borderRadius="md" px="5" display="flex" flexDirection="column" justifyContent="center" alignItems="center" > <Heading color="white">Extra Header</Heading> {content} <Heading color="white">Extra Footer</Heading> </Box> ); }} /> ); };
-
<ThemedLayout>
,<ThemedSider>
,<ThemedTitle>
,<ThemedHeader>
created to use theme colors. -
<EditButton>
in<Show>
color changed tobrand
. -
<CreateButton>
color changed tobrand
. -
<AuthPage>
component uses colors from the theme. -
<AuthPageTitle>
added toAuthPage
- default title with icon added to
-
#3975
b1e6e32f9a1
Thanks @alicanerdurmaz! - - Fixed the unsaved changes dialog is popping up unexpectedly when the user clicks the logs out.- The `<ThemedSider>`'s `onClick` handler was changed to use the `window.confirm` API to manage the confirmation dialog.
<RefineThemes>
colors updated to match the new theme colors.
-
Updated dependencies [
2798f715361
]:- @refinedev/ui-types@1.4.0
- #3956
c54714ed9ab
Thanks @salihozdemir! - Fixed an issue where the<NumberField />
component would throw an error if thevalue
prop was set toundefined
.
- #3956
c54714ed9ab
Thanks @salihozdemir! - Fixed an issue where the<NumberField />
component would throw an error if thevalue
prop was set toundefined
.
-
#3948
b4950503334
Thanks @salihozdemir! - Fixed the unsaved changes dialog is popping up unexpectedly when the user clicks the delete button or logs out, when the form is dirty.- The
<DeleteButton>
already has a confirmation dialog, so the alert was removed. - The
<Sider>
'sonClick
handler was changed to use thewindow.confirm
API to manage the confirmation dialog.
- The
-
#3948
b4950503334
Thanks @salihozdemir! - Fixed the unsaved changes dialog is popping up unexpectedly when the user clicks the delete button or logs out, when the form is dirty.- The
<DeleteButton>
already has a confirmation dialog, so the alert was removed. - The
<Sider>
'sonClick
handler was changed to use thewindow.confirm
API to manage the confirmation dialog.
- The
- #3912
0ffe70308b2
Thanks @alicanerdurmaz! - -title
prop added toAuthPage
'srenderContent
prop to use in the custom content.title
prop added toAuthPage
to render a custom title.⚠️ These features have not been implemented yet. Only types were added. It will be implemented in the next release.
- Updated dependencies [
0ffe70308b2
]:- @refinedev/ui-types@1.3.0
- #3912
0ffe70308b2
Thanks @alicanerdurmaz! - -title
prop added toAuthPage
'srenderContent
prop to use in the custom content.title
prop added toAuthPage
to render a custom title.⚠️ These features have not been implemented yet. Only types were added. It will be implemented in the next release.
- Updated dependencies [
0ffe70308b2
]:- @refinedev/ui-types@1.2.0
- #3919
dd90bf43d50
Thanks @alicanerdurmaz! - - Fixed: Whentitle
prop isfalse
in crud components, the defaulttitle
was rendered. It should not render anything.
- #3919
dd90bf43d50
Thanks @alicanerdurmaz! - - Fixed: Whentitle
prop isfalse
in crud components, the defaulttitle
was rendered. It should not render anything.
-
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 buttons with
resource
property.resourceNameOrRouteName
is now deprecated but kept working until next major version. -
Thanks @aliemir, @alicanerdurmaz, @batuhanW, @salihozdemir, @yildirayunlu, @recepkutuk!
@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@latest refine3-to-refine4
And it's done. Now your project uses
refine@4.x.x
.All Chakra UI components re-exported from
@refinedev/chakra-ui
have been removed. You should import them from@chakra-ui/react
package 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 @chakra-ui/react @emotion/react @emotion/styled framer-motion # or pnpm add @chakra-ui/react @emotion/react @emotion/styled framer-motion # or yarn add @chakra-ui/react @emotion/react @emotion/styled framer-motion
After that, you can import them from related packages directly.
- import { - ChakraProvider, - Input, - Select, - ShowButton, - usePagination, - } from "@refinedev/chakra-ui"; + import { usePagination, ShowButton } from "@refinedev/chakra-ui"; + import { ChakraProvider, Input, Select } from "@chakra-ui/react";
-
Thanks @aliemir, @alicanerdurmaz, @batuhanW, @salihozdemir, @yildirayunlu, @recepkutuk!
<ReadyPage>
isnow deprecated.- Created a
<WelcomePage>
component to welcome users.
-
Thanks @aliemir, @alicanerdurmaz, @batuhanW, @salihozdemir, @yildirayunlu, @recepkutuk! Updated the components to match the changes in routing system of
@refinedev/core
.This 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.ignoreAccessControlProvider
prop is removed from buttons. -
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! 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.
- #3822
0baa99ba787
Thanks @BatuhanW! - - refine v4 release announcement added to "postinstall". - refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x
- Updated dependencies [
0baa99ba787
]:- @pankod/refine-react-hook-form@3.39.0
- @pankod/refine-ui-types@0.16.0
- #3822
0baa99ba787
Thanks @BatuhanW! - - refine v4 release announcement added to "postinstall". - refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x
- Updated dependencies [
0baa99ba787
]:- @pankod/refine-react-hook-form@3.38.0
- @pankod/refine-ui-types@0.15.0
03afb3215ef
Thanks @omeraplak! - fix: button disabled states
03afb3215ef
Thanks @omeraplak! - fix: button disabled states
89a020942c8
Thanks @omeraplak! - fix: deleted unused chakra-ui exports
89a020942c8
Thanks @omeraplak! - fix: deleted unused chakra-ui exports
-
#3220
b867497f469
Thanks @aliemir! - Updated image links inREADME.MD
with CDN -
Updated dependencies [
b867497f469
]:- @pankod/refine-ui-types@0.14.2
-
#3220
b867497f469
Thanks @aliemir! - Updated image links inREADME.MD
with CDN -
Updated dependencies [
b867497f469
]:- @pankod/refine-ui-types@0.14.1
- #3159
af2eefb32a4
Thanks @aliemir! - UpdatedLoginPage
andReadyPage
to use refine logos from CDN rather than bundled svg files.
- #3159
af2eefb32a4
Thanks @aliemir! - UpdatedLoginPage
andReadyPage
to use refine logos from CDN rather than bundled svg files.
- #3128
db1000a7628
Thanks @alicanerdurmaz! - Fixed:crud
components import path changed to relative path due to export issues on build.
- #3128
db1000a7628
Thanks @alicanerdurmaz! - Fixed:crud
components import path changed to relative path due to export issues on build.
- #3109
16549ed3012
Thanks @aliemir! - Updatedswizzle
items and their messages to include extra information and usage examples.
- #3109
16549ed3012
Thanks @aliemir! - Updatedswizzle
items and their messages to include extra information and usage examples.
- #3062
6c2ed708a9a
Thanks @aliemir! - - Updated components and their type imports to make them compatible withswizzle
feature.- Added
refine.config.js
to configure theswizzle
feature.
- Added
- #3062
6c2ed708a9a
Thanks @aliemir! - - Updated components and their type imports to make them compatible withswizzle
feature.- Added
refine.config.js
to configure theswizzle
feature.
- Added
- #3011
593531713c3
Thanks @aliemir! - Fixed<NumberField />
type for missingvalue
prop type, which was erroring out when using<NumberField />
.
- #3011
593531713c3
Thanks @aliemir! - Fixed<NumberField />
type for missingvalue
prop type, which was erroring out when using<NumberField />
.
- #2969
a9459550a4
Thanks @omeraplak! - Fixed peerDependencies of packages
- #2969
a9459550a4
Thanks @omeraplak! - Fixed peerDependencies of packages
- #2970
513c078df1
Thanks @salihozdemir! - Fixed responsive style for error page.
- #2970
513c078df1
Thanks @salihozdemir! - Fixed responsive style for error page.
- #2959
3cd13fa5c2
Thanks @salihozdemir! - - Fixed error and ready pages issues that dark mode compatibility and mobile view issues.- Fixed crud components mobile view issues and spacing issues.
- Update
Save
button icon button color and variant. - Rename
TextFieldComponent
export name toTextField
. - Update
DeleteButton
color scheme. - Add missing props to
RefreshButton
'sIconButton
.
- #2959
3cd13fa5c2
Thanks @salihozdemir! - - Fixed error and ready pages issues that dark mode compatibility and mobile view issues.- Fixed crud components mobile view issues and spacing issues.
- Update
Save
button icon button color and variant. - Rename
TextFieldComponent
export name toTextField
. - Update
DeleteButton
color scheme. - Add missing props to
RefreshButton
'sIconButton
.
- #2948
add3da4c76
Thanks @yildirayunlu! - Fix AuthPage styles props and dark theme colors.
- #2948
add3da4c76
Thanks @yildirayunlu! - Fix AuthPage styles props and dark theme colors.
59d6bd5b83
Thanks @salihozdemir! - Addedhref
property forBreadcrumbItem
component to be able to fix the Next.js undefinedhref
error.
59d6bd5b83
Thanks @salihozdemir! - Addedhref
property forBreadcrumbItem
component to be able to fix the Next.js undefinedhref
error.
89f20b1da4
Thanks @yildirayunlu! - Add inital release of chakra-ui package.
89f20b1da4
Thanks @yildirayunlu! - Add inital release of chakra-ui package.