@refinedev/core 4.47.2 → 4.48.0

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 (409) hide show
  1. package/CHANGELOG.md +2944 -2919
  2. package/dist/components/authenticated/index.d.ts.map +1 -1
  3. package/dist/components/autoSaveIndicator/index.d.ts.map +1 -1
  4. package/dist/components/canAccess/index.d.ts.map +1 -1
  5. package/dist/components/containers/refine/index.d.ts.map +1 -1
  6. package/dist/components/layoutWrapper/index.d.ts.map +1 -1
  7. package/dist/components/pages/auth/components/forgotPassword/index.d.ts.map +1 -1
  8. package/dist/components/pages/auth/components/login/index.d.ts.map +1 -1
  9. package/dist/components/pages/auth/components/register/index.d.ts.map +1 -1
  10. package/dist/components/pages/auth/components/updatePassword/index.d.ts.map +1 -1
  11. package/dist/components/pages/auth/index.d.ts.map +1 -1
  12. package/dist/components/pages/config-error/index.d.ts.map +1 -1
  13. package/dist/components/pages/config-success/index.d.ts.map +1 -1
  14. package/dist/components/pages/login/index.d.ts.map +1 -1
  15. package/dist/components/pages/ready/index.d.ts.map +1 -1
  16. package/dist/components/undoableQueue/index.d.ts.map +1 -1
  17. package/dist/contexts/accessControl/IAccessControlContext.d.ts.map +1 -1
  18. package/dist/contexts/accessControl/index.d.ts.map +1 -1
  19. package/dist/contexts/auditLog/IAuditLogContext.d.ts.map +1 -1
  20. package/dist/contexts/auditLog/index.d.ts.map +1 -1
  21. package/dist/contexts/auth/IAuthContext.d.ts +1 -1
  22. package/dist/contexts/auth/IAuthContext.d.ts.map +1 -1
  23. package/dist/contexts/auth/index.d.ts.map +1 -1
  24. package/dist/contexts/data/IDataContext.d.ts.map +1 -1
  25. package/dist/contexts/data/index.d.ts.map +1 -1
  26. package/dist/contexts/legacy-router/IRouterContext.d.ts.map +1 -1
  27. package/dist/contexts/legacy-router/index.d.ts.map +1 -1
  28. package/dist/contexts/live/ILiveContext.d.ts.map +1 -1
  29. package/dist/contexts/live/index.d.ts.map +1 -1
  30. package/dist/contexts/notification/INotificationContext.d.ts.map +1 -1
  31. package/dist/contexts/notification/index.d.ts.map +1 -1
  32. package/dist/contexts/refine/IRefineContext.d.ts.map +1 -1
  33. package/dist/contexts/refine/index.d.ts.map +1 -1
  34. package/dist/contexts/resource/IResourceContext.d.ts.map +1 -1
  35. package/dist/contexts/resource/index.d.ts.map +1 -1
  36. package/dist/contexts/router/index.d.ts.map +1 -1
  37. package/dist/contexts/translation/ITranslationContext.d.ts.map +1 -1
  38. package/dist/contexts/translation/index.d.ts.map +1 -1
  39. package/dist/contexts/undoableQueue/IUndoableQueueContext.d.ts.map +1 -1
  40. package/dist/contexts/undoableQueue/actionTypes.d.ts.map +1 -1
  41. package/dist/contexts/undoableQueue/index.d.ts.map +1 -1
  42. package/dist/contexts/undoableQueue/undoableQueueContext.d.ts.map +1 -1
  43. package/dist/contexts/unsavedWarn/IUnsavedWarnContext.d.ts.map +1 -1
  44. package/dist/definitions/helpers/check-router-prop-misuse/index.d.ts.map +1 -1
  45. package/dist/definitions/helpers/downloadInBrowser/index.d.ts.map +1 -1
  46. package/dist/definitions/helpers/flatten-object-keys/index.d.ts.map +1 -1
  47. package/dist/definitions/helpers/generateDocumentTitle/index.d.ts.map +1 -1
  48. package/dist/definitions/helpers/handlePaginationParams/index.d.ts.map +1 -1
  49. package/dist/definitions/helpers/handleRefineOptions/index.d.ts.map +1 -1
  50. package/dist/definitions/helpers/hasPermission/index.d.ts.map +1 -1
  51. package/dist/definitions/helpers/importCSVMapper/index.d.ts.map +1 -1
  52. package/dist/definitions/helpers/index.d.ts.map +1 -1
  53. package/dist/definitions/helpers/keys/index.d.ts +0 -11
  54. package/dist/definitions/helpers/keys/index.d.ts.map +1 -1
  55. package/dist/definitions/helpers/legacy-resource-transform/index.d.ts.map +1 -1
  56. package/dist/definitions/helpers/menu/create-resource-key.d.ts.map +1 -1
  57. package/dist/definitions/helpers/menu/create-tree.d.ts.map +1 -1
  58. package/dist/definitions/helpers/pick-resource/index.d.ts.map +1 -1
  59. package/dist/definitions/helpers/pickDataProvider/index.d.ts.map +1 -1
  60. package/dist/definitions/helpers/queryKeys/index.d.ts.map +1 -1
  61. package/dist/definitions/helpers/redirectPage/index.d.ts.map +1 -1
  62. package/dist/definitions/helpers/routeGenerator/index.d.ts.map +1 -1
  63. package/dist/definitions/helpers/router/compose-route.d.ts.map +1 -1
  64. package/dist/definitions/helpers/router/get-action-routes-from-resource.d.ts.map +1 -1
  65. package/dist/definitions/helpers/router/get-default-action-path.d.ts.map +1 -1
  66. package/dist/definitions/helpers/router/get-parent-prefix-for-resource.d.ts.map +1 -1
  67. package/dist/definitions/helpers/router/get-parent-resource.d.ts.map +1 -1
  68. package/dist/definitions/helpers/router/match-resource-from-route.d.ts.map +1 -1
  69. package/dist/definitions/helpers/router/pick-matched-route.d.ts.map +1 -1
  70. package/dist/definitions/helpers/router/prepare-route-params.d.ts.map +1 -1
  71. package/dist/definitions/helpers/safe-translate/index.d.ts.map +1 -1
  72. package/dist/definitions/helpers/sanitize-resource/index.d.ts.map +1 -1
  73. package/dist/definitions/helpers/sequentialPromises/index.d.ts.map +1 -1
  74. package/dist/definitions/helpers/treeView/createTreeView/index.d.ts.map +1 -1
  75. package/dist/definitions/helpers/useActiveAuthProvider/index.d.ts +2 -2
  76. package/dist/definitions/helpers/useUserFriendlyName/index.d.ts.map +1 -1
  77. package/dist/definitions/helpers/userFriendlyResourceName/index.d.ts.map +1 -1
  78. package/dist/definitions/table/index.d.ts.map +1 -1
  79. package/dist/esm/index.js +18 -18
  80. package/dist/esm/index.js.map +1 -1
  81. package/dist/hooks/accessControl/useCan/index.d.ts.map +1 -1
  82. package/dist/hooks/accessControl/useCanWithoutCache.d.ts.map +1 -1
  83. package/dist/hooks/auditLog/useLog/index.d.ts.map +1 -1
  84. package/dist/hooks/auditLog/useLogList/index.d.ts.map +1 -1
  85. package/dist/hooks/auth/useForgotPassword/index.d.ts.map +1 -1
  86. package/dist/hooks/auth/useGetIdentity/index.d.ts.map +1 -1
  87. package/dist/hooks/auth/useIsAuthenticated/index.d.ts.map +1 -1
  88. package/dist/hooks/auth/useLogin/index.d.ts.map +1 -1
  89. package/dist/hooks/auth/useLogout/index.d.ts.map +1 -1
  90. package/dist/hooks/auth/useOnError/index.d.ts.map +1 -1
  91. package/dist/hooks/auth/usePermissions/index.d.ts +9 -6
  92. package/dist/hooks/auth/usePermissions/index.d.ts.map +1 -1
  93. package/dist/hooks/auth/useRegister/index.d.ts.map +1 -1
  94. package/dist/hooks/auth/useUpdatePassword/index.d.ts.map +1 -1
  95. package/dist/hooks/breadcrumb/index.d.ts.map +1 -1
  96. package/dist/hooks/data/useApiUrl.d.ts.map +1 -1
  97. package/dist/hooks/data/useCreate.d.ts.map +1 -1
  98. package/dist/hooks/data/useCreateMany.d.ts.map +1 -1
  99. package/dist/hooks/data/useCustom.d.ts.map +1 -1
  100. package/dist/hooks/data/useCustomMutation.d.ts.map +1 -1
  101. package/dist/hooks/data/useDataProvider.d.ts.map +1 -1
  102. package/dist/hooks/data/useDelete.d.ts.map +1 -1
  103. package/dist/hooks/data/useDeleteMany.d.ts.map +1 -1
  104. package/dist/hooks/data/useInfiniteList.d.ts.map +1 -1
  105. package/dist/hooks/data/useList.d.ts.map +1 -1
  106. package/dist/hooks/data/useMany.d.ts.map +1 -1
  107. package/dist/hooks/data/useOne.d.ts.map +1 -1
  108. package/dist/hooks/data/useUpdate.d.ts.map +1 -1
  109. package/dist/hooks/data/useUpdateMany.d.ts.map +1 -1
  110. package/dist/hooks/export/csvDownload.interface.d.ts.map +1 -1
  111. package/dist/hooks/export/index.d.ts +1 -1
  112. package/dist/hooks/export/index.d.ts.map +1 -1
  113. package/dist/hooks/form/useForm.d.ts.map +1 -1
  114. package/dist/hooks/import/index.d.ts.map +1 -1
  115. package/dist/hooks/invalidate/index.d.ts.map +1 -1
  116. package/dist/hooks/live/useLiveMode/index.d.ts.map +1 -1
  117. package/dist/hooks/live/useResourceSubscription/index.d.ts.map +1 -1
  118. package/dist/hooks/live/useSubscription/index.d.ts.map +1 -1
  119. package/dist/hooks/menu/useMenu.d.ts.map +1 -1
  120. package/dist/hooks/modal/useModal/index.d.ts.map +1 -1
  121. package/dist/hooks/navigation/index.d.ts.map +1 -1
  122. package/dist/hooks/notification/useCancelNotification/index.d.ts.map +1 -1
  123. package/dist/hooks/notification/useHandleNotification/index.d.ts.map +1 -1
  124. package/dist/hooks/redirection/index.d.ts.map +1 -1
  125. package/dist/hooks/refine/useMutationMode.d.ts.map +1 -1
  126. package/dist/hooks/refine/useSyncWithLocation.d.ts.map +1 -1
  127. package/dist/hooks/refine/useWarnAboutChange/index.d.ts.map +1 -1
  128. package/dist/hooks/resource/useResource/index.d.ts.map +1 -1
  129. package/dist/hooks/router/use-get-to-path/index.d.ts.map +1 -1
  130. package/dist/hooks/router/use-go/index.d.ts.map +1 -1
  131. package/dist/hooks/router/use-link/index.d.ts.map +1 -1
  132. package/dist/hooks/router/use-parse/index.d.ts.map +1 -1
  133. package/dist/hooks/router/use-to-path/index.d.ts.map +1 -1
  134. package/dist/hooks/show/useShow.d.ts.map +1 -1
  135. package/dist/hooks/translate/useSetLocale.d.ts.map +1 -1
  136. package/dist/hooks/translate/useTranslate.d.ts.map +1 -1
  137. package/dist/hooks/useLoadingOvertime/index.d.ts.map +1 -1
  138. package/dist/hooks/useSelect/index.d.ts +18 -4
  139. package/dist/hooks/useSelect/index.d.ts.map +1 -1
  140. package/dist/hooks/useTable/index.d.ts.map +1 -1
  141. package/dist/iife/index.js +18 -18
  142. package/dist/iife/index.js.map +1 -1
  143. package/dist/index.d.ts.map +1 -1
  144. package/dist/index.js +18 -18
  145. package/dist/index.js.map +1 -1
  146. package/dist/interfaces/actions.d.ts.map +1 -1
  147. package/dist/interfaces/auditLog/logData.d.ts.map +1 -1
  148. package/dist/interfaces/auth.d.ts.map +1 -1
  149. package/dist/interfaces/autoSave.d.ts.map +1 -1
  150. package/dist/interfaces/bindings/access-control.d.ts.map +1 -1
  151. package/dist/interfaces/bindings/auth.d.ts +1 -1
  152. package/dist/interfaces/bindings/auth.d.ts.map +1 -1
  153. package/dist/interfaces/bindings/data.d.ts.map +1 -1
  154. package/dist/interfaces/bindings/i18n.d.ts.map +1 -1
  155. package/dist/interfaces/bindings/index.d.ts.map +1 -1
  156. package/dist/interfaces/bindings/live.d.ts.map +1 -1
  157. package/dist/interfaces/bindings/notifications.d.ts.map +1 -1
  158. package/dist/interfaces/bindings/resource.d.ts.map +1 -1
  159. package/dist/interfaces/bindings/router.d.ts.map +1 -1
  160. package/dist/interfaces/customComponents.d.ts.map +1 -1
  161. package/dist/interfaces/errors/HttpError.d.ts.map +1 -1
  162. package/dist/interfaces/form-url-params.d.ts.map +1 -1
  163. package/dist/interfaces/index.d.ts.map +1 -1
  164. package/dist/interfaces/live/LiveEvent.d.ts.map +1 -1
  165. package/dist/interfaces/live/LiveModeProps.d.ts.map +1 -1
  166. package/dist/interfaces/mapDataFn.d.ts.map +1 -1
  167. package/dist/interfaces/metaData/graphqlQueryOptions.d.ts.map +1 -1
  168. package/dist/interfaces/metaData/metaDataQuery.d.ts.map +1 -1
  169. package/dist/interfaces/metaData/metaQuery.d.ts.map +1 -1
  170. package/dist/interfaces/metaData/nestedField.d.ts.map +1 -1
  171. package/dist/interfaces/metaData/queryBuilderOptions.d.ts.map +1 -1
  172. package/dist/interfaces/metaData/variableOptions.d.ts.map +1 -1
  173. package/dist/interfaces/mutationMode.d.ts.map +1 -1
  174. package/dist/interfaces/notification.d.ts.map +1 -1
  175. package/dist/interfaces/optimistic-update-map.d.ts.map +1 -1
  176. package/dist/interfaces/prettify.d.ts.map +1 -1
  177. package/dist/interfaces/queryKey.d.ts.map +1 -1
  178. package/dist/interfaces/resourceErrorRouterParams.d.ts.map +1 -1
  179. package/dist/interfaces/resourceRouterParams.d.ts.map +1 -1
  180. package/dist/interfaces/successErrorNotification.d.ts +4 -4
  181. package/dist/interfaces/successErrorNotification.d.ts.map +1 -1
  182. package/dist/interfaces/telemetry.d.ts.map +1 -1
  183. package/dist/interfaces/textTransformers.d.ts.map +1 -1
  184. package/package.json +2 -2
  185. package/refine.config.js +99 -102
  186. package/src/components/authenticated/index.tsx +157 -159
  187. package/src/components/autoSaveIndicator/index.tsx +23 -27
  188. package/src/components/canAccess/index.tsx +93 -93
  189. package/src/components/containers/refine/index.tsx +312 -353
  190. package/src/components/gh-banner/index.tsx +235 -242
  191. package/src/components/gh-banner/styles.ts +5 -5
  192. package/src/components/layoutWrapper/defaultLayout/index.tsx +1 -1
  193. package/src/components/layoutWrapper/index.tsx +87 -87
  194. package/src/components/pages/auth/components/forgotPassword/index.tsx +87 -96
  195. package/src/components/pages/auth/components/login/index.tsx +166 -181
  196. package/src/components/pages/auth/components/register/index.tsx +141 -159
  197. package/src/components/pages/auth/components/updatePassword/index.tsx +81 -87
  198. package/src/components/pages/auth/index.tsx +28 -28
  199. package/src/components/pages/config-error/index.tsx +422 -422
  200. package/src/components/pages/config-success/index.tsx +249 -260
  201. package/src/components/pages/error/index.tsx +48 -48
  202. package/src/components/pages/login/index.tsx +59 -73
  203. package/src/components/pages/ready/index.tsx +21 -29
  204. package/src/components/pages/welcome/index.tsx +7 -7
  205. package/src/components/routeChangeHandler/index.tsx +7 -7
  206. package/src/components/telemetry/index.tsx +31 -31
  207. package/src/components/undoableQueue/index.tsx +49 -49
  208. package/src/contexts/accessControl/IAccessControlContext.ts +34 -34
  209. package/src/contexts/accessControl/index.tsx +35 -35
  210. package/src/contexts/auditLog/IAuditLogContext.ts +22 -22
  211. package/src/contexts/auditLog/index.tsx +8 -8
  212. package/src/contexts/auth/IAuthContext.ts +10 -10
  213. package/src/contexts/auth/index.tsx +169 -169
  214. package/src/contexts/data/IDataContext.ts +203 -203
  215. package/src/contexts/data/index.tsx +18 -18
  216. package/src/contexts/legacy-router/IRouterContext.ts +23 -27
  217. package/src/contexts/legacy-router/index.tsx +30 -30
  218. package/src/contexts/live/ILiveContext.ts +49 -49
  219. package/src/contexts/live/index.tsx +5 -7
  220. package/src/contexts/notification/INotificationContext.ts +8 -8
  221. package/src/contexts/notification/index.tsx +8 -8
  222. package/src/contexts/refine/IRefineContext.ts +119 -119
  223. package/src/contexts/refine/index.tsx +80 -80
  224. package/src/contexts/resource/IResourceContext.ts +35 -35
  225. package/src/contexts/resource/index.tsx +16 -16
  226. package/src/contexts/router/index.tsx +7 -7
  227. package/src/contexts/router-picker/index.tsx +2 -2
  228. package/src/contexts/translation/ITranslationContext.ts +7 -7
  229. package/src/contexts/translation/index.tsx +12 -12
  230. package/src/contexts/undoableQueue/IUndoableQueueContext.ts +2 -2
  231. package/src/contexts/undoableQueue/actionTypes.ts +3 -3
  232. package/src/contexts/undoableQueue/index.ts +2 -2
  233. package/src/contexts/undoableQueue/undoableQueueContext.tsx +59 -60
  234. package/src/contexts/unsavedWarn/IUnsavedWarnContext.ts +2 -2
  235. package/src/contexts/unsavedWarn/index.tsx +7 -7
  236. package/src/definitions/helpers/check-router-prop-misuse/index.ts +20 -20
  237. package/src/definitions/helpers/downloadInBrowser/index.ts +19 -20
  238. package/src/definitions/helpers/flatten-object-keys/index.ts +26 -29
  239. package/src/definitions/helpers/generateDocumentTitle/index.ts +39 -45
  240. package/src/definitions/helpers/handleMultiple/index.ts +4 -4
  241. package/src/definitions/helpers/handlePaginationParams/index.ts +17 -18
  242. package/src/definitions/helpers/handleRefineOptions/index.ts +88 -90
  243. package/src/definitions/helpers/handleUseParams/index.tsx +7 -7
  244. package/src/definitions/helpers/hasPermission/index.ts +6 -6
  245. package/src/definitions/helpers/humanizeString/index.ts +9 -9
  246. package/src/definitions/helpers/importCSVMapper/index.ts +8 -8
  247. package/src/definitions/helpers/index.ts +2 -2
  248. package/src/definitions/helpers/keys/index.ts +205 -258
  249. package/src/definitions/helpers/legacy-resource-transform/index.ts +14 -14
  250. package/src/definitions/helpers/menu/create-resource-key.ts +20 -23
  251. package/src/definitions/helpers/menu/create-tree.ts +61 -63
  252. package/src/definitions/helpers/pick-resource/index.ts +25 -25
  253. package/src/definitions/helpers/pickDataProvider/index.ts +15 -15
  254. package/src/definitions/helpers/pickNotDeprecated/index.ts +2 -2
  255. package/src/definitions/helpers/property-path-to-array/index.ts +3 -3
  256. package/src/definitions/helpers/queryKeys/index.ts +92 -92
  257. package/src/definitions/helpers/redirectPage/index.ts +19 -19
  258. package/src/definitions/helpers/routeGenerator/index.ts +15 -15
  259. package/src/definitions/helpers/router/__tests__/check-by-segments.ts +12 -15
  260. package/src/definitions/helpers/router/__tests__/compose-route.ts +48 -48
  261. package/src/definitions/helpers/router/__tests__/get-action-routes-from-resource.ts +152 -152
  262. package/src/definitions/helpers/router/__tests__/get-default-action-path.ts +39 -41
  263. package/src/definitions/helpers/router/__tests__/get-parent-prefix-for-resource.ts +69 -73
  264. package/src/definitions/helpers/router/__tests__/get-parent-resource.ts +40 -40
  265. package/src/definitions/helpers/router/__tests__/is-segment-counts-same.ts +11 -14
  266. package/src/definitions/helpers/router/__tests__/match-resource-from-route.ts +55 -55
  267. package/src/definitions/helpers/router/__tests__/pick-matched-route.ts +74 -74
  268. package/src/definitions/helpers/router/__tests__/pick-route-params.ts +12 -12
  269. package/src/definitions/helpers/router/__tests__/prepare-route-params.ts +18 -18
  270. package/src/definitions/helpers/router/__tests__/remove-leading-trailing-slashes.ts +9 -9
  271. package/src/definitions/helpers/router/__tests__/split-to-segments.ts +9 -9
  272. package/src/definitions/helpers/router/check-by-segments.ts +12 -12
  273. package/src/definitions/helpers/router/compose-route.ts +25 -27
  274. package/src/definitions/helpers/router/get-action-routes-from-resource.ts +41 -47
  275. package/src/definitions/helpers/router/get-default-action-path.ts +19 -19
  276. package/src/definitions/helpers/router/get-parent-prefix-for-resource.ts +22 -24
  277. package/src/definitions/helpers/router/get-parent-resource.ts +18 -18
  278. package/src/definitions/helpers/router/is-parameter.ts +1 -1
  279. package/src/definitions/helpers/router/is-segment-counts-same.ts +3 -3
  280. package/src/definitions/helpers/router/match-resource-from-route.ts +19 -19
  281. package/src/definitions/helpers/router/pick-matched-route.ts +44 -44
  282. package/src/definitions/helpers/router/pick-route-params.ts +7 -7
  283. package/src/definitions/helpers/router/prepare-route-params.ts +13 -10
  284. package/src/definitions/helpers/router/remove-leading-trailing-slashes.ts +1 -1
  285. package/src/definitions/helpers/router/split-to-segments.ts +2 -2
  286. package/src/definitions/helpers/safe-translate/index.ts +12 -12
  287. package/src/definitions/helpers/sanitize-resource/index.ts +26 -27
  288. package/src/definitions/helpers/sequentialPromises/index.ts +21 -21
  289. package/src/definitions/helpers/treeView/createTreeView/index.ts +33 -33
  290. package/src/definitions/helpers/useActiveAuthProvider/index.ts +18 -18
  291. package/src/definitions/helpers/useInfinitePagination/index.ts +16 -16
  292. package/src/definitions/helpers/useMediaQuery/index.ts +11 -11
  293. package/src/definitions/helpers/useUserFriendlyName/index.ts +11 -14
  294. package/src/definitions/helpers/userFriendlyResourceName/index.ts +7 -7
  295. package/src/definitions/helpers/userFriendlySeconds/index.ts +1 -1
  296. package/src/definitions/table/index.ts +127 -130
  297. package/src/definitions/upload/file2Base64/index.ts +15 -15
  298. package/src/hooks/accessControl/useCan/index.ts +52 -54
  299. package/src/hooks/accessControl/useCanWithoutCache.ts +25 -26
  300. package/src/hooks/auditLog/useLog/index.ts +114 -114
  301. package/src/hooks/auditLog/useLogList/index.ts +44 -44
  302. package/src/hooks/auth/useForgotPassword/index.ts +158 -163
  303. package/src/hooks/auth/useGetIdentity/index.ts +55 -57
  304. package/src/hooks/auth/useInvalidateAuthStore/index.ts +12 -12
  305. package/src/hooks/auth/useIsAuthenticated/index.ts +44 -48
  306. package/src/hooks/auth/useIsExistAuthentication/index.ts +3 -3
  307. package/src/hooks/auth/useLogin/index.ts +181 -194
  308. package/src/hooks/auth/useLogout/index.ts +175 -177
  309. package/src/hooks/auth/useOnError/index.ts +76 -76
  310. package/src/hooks/auth/usePermissions/index.ts +94 -61
  311. package/src/hooks/auth/useRegister/index.ts +166 -178
  312. package/src/hooks/auth/useUpdatePassword/index.ts +183 -194
  313. package/src/hooks/breadcrumb/index.ts +99 -106
  314. package/src/hooks/data/useApiUrl.ts +7 -8
  315. package/src/hooks/data/useCreate.ts +241 -241
  316. package/src/hooks/data/useCreateMany.ts +219 -226
  317. package/src/hooks/data/useCustom.ts +181 -182
  318. package/src/hooks/data/useCustomMutation.ts +174 -174
  319. package/src/hooks/data/useDataProvider.tsx +27 -29
  320. package/src/hooks/data/useDelete.ts +447 -454
  321. package/src/hooks/data/useDeleteMany.ts +475 -484
  322. package/src/hooks/data/useInfiniteList.ts +280 -280
  323. package/src/hooks/data/useList.ts +280 -283
  324. package/src/hooks/data/useMany.ts +215 -216
  325. package/src/hooks/data/useOne.ts +210 -211
  326. package/src/hooks/data/useUpdate.ts +529 -556
  327. package/src/hooks/data/useUpdateMany.ts +556 -584
  328. package/src/hooks/deepMemo/index.tsx +5 -5
  329. package/src/hooks/export/csvDownload.interface.ts +13 -13
  330. package/src/hooks/export/index.ts +223 -217
  331. package/src/hooks/form/useForm.ts +543 -560
  332. package/src/hooks/import/index.tsx +254 -260
  333. package/src/hooks/invalidate/index.tsx +75 -75
  334. package/src/hooks/legacy-router/useRouterContext.ts +11 -11
  335. package/src/hooks/live/useLiveMode/index.ts +4 -4
  336. package/src/hooks/live/usePublish/index.ts +2 -2
  337. package/src/hooks/live/useResourceSubscription/index.ts +103 -103
  338. package/src/hooks/live/useSubscription/index.ts +77 -77
  339. package/src/hooks/memoized/index.tsx +6 -6
  340. package/src/hooks/menu/useMenu.tsx +113 -120
  341. package/src/hooks/modal/useModal/index.tsx +16 -16
  342. package/src/hooks/navigation/index.ts +362 -392
  343. package/src/hooks/notification/useCancelNotification/index.tsx +5 -5
  344. package/src/hooks/notification/useHandleNotification/index.ts +17 -17
  345. package/src/hooks/notification/useNotification/index.ts +2 -2
  346. package/src/hooks/redirection/index.ts +45 -46
  347. package/src/hooks/refine/useMutationMode.ts +4 -4
  348. package/src/hooks/refine/useRefineContext.ts +36 -36
  349. package/src/hooks/refine/useSyncWithLocation.ts +3 -3
  350. package/src/hooks/refine/useTitle.tsx +2 -2
  351. package/src/hooks/refine/useWarnAboutChange/index.ts +12 -12
  352. package/src/hooks/resource/useResource/index.ts +141 -146
  353. package/src/hooks/resource/useResourceWithRoute/index.ts +12 -12
  354. package/src/hooks/router/use-back/index.tsx +7 -7
  355. package/src/hooks/router/use-get-to-path/index.ts +35 -35
  356. package/src/hooks/router/use-go/index.tsx +66 -66
  357. package/src/hooks/router/use-link/index.tsx +8 -9
  358. package/src/hooks/router/use-parse/index.tsx +13 -13
  359. package/src/hooks/router/use-parsed/index.tsx +4 -4
  360. package/src/hooks/router/use-router-misuse-warning/index.ts +10 -10
  361. package/src/hooks/router/use-to-path/index.ts +10 -10
  362. package/src/hooks/show/useShow.ts +135 -135
  363. package/src/hooks/translate/useGetLocale.ts +2 -2
  364. package/src/hooks/translate/useSetLocale.ts +2 -2
  365. package/src/hooks/translate/useTranslate.ts +24 -25
  366. package/src/hooks/useKeys/index.tsx +7 -7
  367. package/src/hooks/useLoadingOvertime/index.ts +74 -76
  368. package/src/hooks/useMeta/index.ts +20 -20
  369. package/src/hooks/useSelect/index.ts +317 -277
  370. package/src/hooks/useTable/index.ts +483 -507
  371. package/src/hooks/useTelemetryData/index.ts +48 -48
  372. package/src/index.tsx +125 -125
  373. package/src/interfaces/actions.ts +2 -2
  374. package/src/interfaces/auditLog/logData.ts +9 -9
  375. package/src/interfaces/auth.tsx +176 -176
  376. package/src/interfaces/autoSave.ts +37 -37
  377. package/src/interfaces/bindings/access-control.ts +21 -21
  378. package/src/interfaces/bindings/auth.ts +27 -25
  379. package/src/interfaces/bindings/data.ts +2 -2
  380. package/src/interfaces/bindings/i18n.ts +8 -8
  381. package/src/interfaces/bindings/index.ts +15 -15
  382. package/src/interfaces/bindings/live.ts +28 -28
  383. package/src/interfaces/bindings/notifications.ts +8 -8
  384. package/src/interfaces/bindings/resource.ts +127 -127
  385. package/src/interfaces/bindings/router.ts +26 -26
  386. package/src/interfaces/customComponents.ts +17 -17
  387. package/src/interfaces/errors/HttpError.ts +8 -8
  388. package/src/interfaces/form-url-params.ts +6 -6
  389. package/src/interfaces/index.ts +8 -10
  390. package/src/interfaces/live/LiveEvent.ts +10 -10
  391. package/src/interfaces/live/LiveModeProps.ts +21 -21
  392. package/src/interfaces/mapDataFn.ts +1 -1
  393. package/src/interfaces/metaData/graphqlQueryOptions.ts +49 -49
  394. package/src/interfaces/metaData/metaDataQuery.ts +2 -2
  395. package/src/interfaces/metaData/metaQuery.ts +3 -3
  396. package/src/interfaces/metaData/nestedField.ts +3 -3
  397. package/src/interfaces/metaData/queryBuilderOptions.ts +3 -3
  398. package/src/interfaces/metaData/variableOptions.ts +8 -8
  399. package/src/interfaces/mutationMode.ts +14 -14
  400. package/src/interfaces/notification.ts +7 -7
  401. package/src/interfaces/optimistic-update-map.ts +42 -42
  402. package/src/interfaces/prettify.ts +1 -1
  403. package/src/interfaces/queryKey.ts +16 -16
  404. package/src/interfaces/resourceErrorRouterParams.ts +2 -2
  405. package/src/interfaces/resourceRouterParams.ts +3 -3
  406. package/src/interfaces/successErrorNotification.ts +24 -24
  407. package/src/interfaces/telemetry.ts +13 -13
  408. package/src/interfaces/textTransformers.ts +18 -18
  409. package/tsconfig.json +26 -26
@@ -2,10 +2,10 @@ import { useContext } from "react";
2
2
 
3
3
  import { ResourceContext } from "@contexts/resource";
4
4
  import {
5
- Action,
6
- BaseKey,
7
- IResourceItem,
8
- ResourceRouterParams,
5
+ Action,
6
+ BaseKey,
7
+ IResourceItem,
8
+ ResourceRouterParams,
9
9
  } from "../../../interfaces";
10
10
  import { useRouterContext, useResourceWithRoute } from "@hooks";
11
11
  import { useRouterType } from "../../../contexts/router-picker";
@@ -13,21 +13,21 @@ import { useParsed } from "../../router/use-parsed";
13
13
  import { pickResource } from "../../../definitions/helpers/pick-resource";
14
14
 
15
15
  export type UseResourceLegacyProps = {
16
- /**
17
- * Determines which resource to use for redirection
18
- * @deprecated resourceName deprecated. Use resourceNameOrRouteName instead # https://github.com/refinedev/refine/issues/1618
19
- */
20
- resourceName?: string;
21
- /**
22
- * Determines which resource to use for redirection
23
- * @default Resource name that it reads from route
24
- */
25
- resourceNameOrRouteName?: string;
26
- /**
27
- * Adds id to the end of the URL
28
- * @deprecated resourceName deprecated. Use resourceNameOrRouteName instead # https://github.com/refinedev/refine/issues/1618
29
- */
30
- recordItemId?: BaseKey;
16
+ /**
17
+ * Determines which resource to use for redirection
18
+ * @deprecated resourceName deprecated. Use resourceNameOrRouteName instead # https://github.com/refinedev/refine/issues/1618
19
+ */
20
+ resourceName?: string;
21
+ /**
22
+ * Determines which resource to use for redirection
23
+ * @default Resource name that it reads from route
24
+ */
25
+ resourceNameOrRouteName?: string;
26
+ /**
27
+ * Adds id to the end of the URL
28
+ * @deprecated resourceName deprecated. Use resourceNameOrRouteName instead # https://github.com/refinedev/refine/issues/1618
29
+ */
30
+ recordItemId?: BaseKey;
31
31
  };
32
32
 
33
33
  /**
@@ -38,161 +38,156 @@ export type UseResourceLegacyProps = {
38
38
  export type UseResourceParam = string | undefined;
39
39
 
40
40
  type SelectReturnType<T extends boolean> = T extends true
41
- ? { resource: IResourceItem; identifier: string }
42
- : { resource: IResourceItem; identifier: string } | undefined;
41
+ ? { resource: IResourceItem; identifier: string }
42
+ : { resource: IResourceItem; identifier: string } | undefined;
43
43
 
44
44
  export type UseResourceReturnType = {
45
- resources: IResourceItem[];
46
- resource?: IResourceItem;
47
- /**
48
- * @deprecated Use `resource.name` instead when you need to get the resource name.
49
- */
50
- resourceName?: string;
51
- id?: BaseKey;
52
- action?: Action;
53
- select: <T extends boolean = true>(
54
- resourceName: string,
55
- force?: T,
56
- ) => SelectReturnType<T>;
57
- identifier?: string;
45
+ resources: IResourceItem[];
46
+ resource?: IResourceItem;
47
+ /**
48
+ * @deprecated Use `resource.name` instead when you need to get the resource name.
49
+ */
50
+ resourceName?: string;
51
+ id?: BaseKey;
52
+ action?: Action;
53
+ select: <T extends boolean = true>(
54
+ resourceName: string,
55
+ force?: T,
56
+ ) => SelectReturnType<T>;
57
+ identifier?: string;
58
58
  };
59
59
 
60
60
  type UseResourceReturnTypeWithResource = UseResourceReturnType & {
61
- resource: IResourceItem;
62
- identifier: string;
61
+ resource: IResourceItem;
62
+ identifier: string;
63
63
  };
64
64
 
65
65
  /**
66
66
  * @deprecated Use `useResource` with `identifier` property instead. (`identifier` does not check by route name in new router)
67
67
  */
68
68
  export function useResource(
69
- props: UseResourceLegacyProps,
69
+ props: UseResourceLegacyProps,
70
70
  ): UseResourceReturnType;
71
71
  export function useResource(): UseResourceReturnType;
72
72
  export function useResource<TIdentifier = UseResourceParam>(
73
- identifier: TIdentifier,
73
+ identifier: TIdentifier,
74
74
  ): TIdentifier extends NonNullable<UseResourceParam>
75
- ? UseResourceReturnTypeWithResource
76
- : UseResourceReturnType;
75
+ ? UseResourceReturnTypeWithResource
76
+ : UseResourceReturnType;
77
77
  /**
78
78
  * `useResource` is used to get `resources` that are defined as property of the `<Refine>` component.
79
79
  *
80
80
  * @see {@link https://refine.dev/docs/api-reference/core/hooks/resource/useResource} for more details.
81
81
  */
82
82
  export function useResource(
83
- args?: UseResourceLegacyProps | UseResourceParam,
83
+ args?: UseResourceLegacyProps | UseResourceParam,
84
84
  ): UseResourceReturnType {
85
- const { resources } = useContext(ResourceContext);
85
+ const { resources } = useContext(ResourceContext);
86
+
87
+ const routerType = useRouterType();
88
+
89
+ const params = useParsed();
90
+
91
+ const oldProps = {
92
+ resourceName: args && typeof args !== "string" ? args.resourceName : args,
93
+ resourceNameOrRouteName:
94
+ args && typeof args !== "string" ? args.resourceNameOrRouteName : args,
95
+ recordItemId:
96
+ args && typeof args !== "string" ? args.recordItemId : undefined,
97
+ };
98
+
99
+ const select = <T extends boolean = true>(
100
+ resourceName: string,
101
+ force = true,
102
+ ): SelectReturnType<T> => {
103
+ const isLegacy = routerType === "legacy";
104
+ const pickedResource = pickResource(resourceName, resources, isLegacy);
105
+
106
+ if (pickedResource) {
107
+ return {
108
+ resource: pickedResource,
109
+ identifier: pickedResource.identifier ?? pickedResource.name,
110
+ } as SelectReturnType<T>;
111
+ }
86
112
 
87
- const routerType = useRouterType();
113
+ if (force) {
114
+ const resource: IResourceItem = {
115
+ name: resourceName,
116
+ identifier: resourceName,
117
+ };
88
118
 
89
- const params = useParsed();
119
+ const identifier = resource.identifier ?? resource.name;
90
120
 
91
- const oldProps = {
92
- resourceName:
93
- args && typeof args !== "string" ? args.resourceName : args,
94
- resourceNameOrRouteName:
95
- args && typeof args !== "string"
96
- ? args.resourceNameOrRouteName
97
- : args,
98
- recordItemId:
99
- args && typeof args !== "string" ? args.recordItemId : undefined,
100
- };
121
+ return {
122
+ resource,
123
+ identifier,
124
+ } as SelectReturnType<T>;
125
+ }
101
126
 
102
- const select = <T extends boolean = true>(
103
- resourceName: string,
104
- force = true,
105
- ): SelectReturnType<T> => {
106
- const isLegacy = routerType === "legacy";
107
- const pickedResource = pickResource(resourceName, resources, isLegacy);
108
-
109
- if (pickedResource) {
110
- return {
111
- resource: pickedResource,
112
- identifier: pickedResource.identifier ?? pickedResource.name,
113
- } as SelectReturnType<T>;
114
- }
115
-
116
- if (force) {
117
- const resource: IResourceItem = {
118
- name: resourceName,
119
- identifier: resourceName,
120
- };
121
-
122
- const identifier = resource.identifier ?? resource.name;
123
-
124
- return {
125
- resource,
126
- identifier,
127
- } as SelectReturnType<T>;
128
- }
129
-
130
- return undefined as SelectReturnType<T>;
131
- };
127
+ return undefined as SelectReturnType<T>;
128
+ };
132
129
 
133
- /**
134
- * Legacy Router - Start
135
- *
136
- * using `useParams` and `route` to match resource and get params.
137
- */
138
- const resourceWithRoute = useResourceWithRoute();
139
-
140
- const { useParams } = useRouterContext();
141
-
142
- const legacyParams = useParams<Partial<ResourceRouterParams>>();
143
-
144
- if (routerType === "legacy") {
145
- const resourceKeyToCheck = oldProps.resourceNameOrRouteName
146
- ? oldProps.resourceNameOrRouteName
147
- : legacyParams.resource;
148
-
149
- const legacyResource = resourceKeyToCheck
150
- ? resourceWithRoute(resourceKeyToCheck)
151
- : undefined;
152
- const legacyId = oldProps?.recordItemId ?? legacyParams.id;
153
- const legacyAction = legacyParams.action;
154
- const legacyResourceName =
155
- oldProps?.resourceName ?? legacyResource?.name;
156
- const legacyIdentifier =
157
- legacyResource?.identifier ?? legacyResource?.name;
158
-
159
- return {
160
- resources,
161
- resource: legacyResource,
162
- resourceName: legacyResourceName,
163
- id: legacyId,
164
- action: legacyAction,
165
- select,
166
- identifier: legacyIdentifier,
167
- };
168
- }
169
- /** Legacy Router - End */
170
-
171
- /** New Router */
172
- let resource: IResourceItem | undefined = undefined;
173
- // we try to pick the resource from props first
174
- const identifier =
175
- typeof args === "string" ? args : oldProps?.resourceNameOrRouteName;
176
- if (identifier) {
177
- const pickedFromProps = pickResource(identifier, resources);
178
- if (pickedFromProps) {
179
- resource = pickedFromProps;
180
- } else {
181
- resource = {
182
- name: identifier as string,
183
- };
184
- }
185
- } else if (params?.resource) {
186
- resource = params.resource;
187
- }
130
+ /**
131
+ * Legacy Router - Start
132
+ *
133
+ * using `useParams` and `route` to match resource and get params.
134
+ */
135
+ const resourceWithRoute = useResourceWithRoute();
136
+
137
+ const { useParams } = useRouterContext();
138
+
139
+ const legacyParams = useParams<Partial<ResourceRouterParams>>();
140
+
141
+ if (routerType === "legacy") {
142
+ const resourceKeyToCheck = oldProps.resourceNameOrRouteName
143
+ ? oldProps.resourceNameOrRouteName
144
+ : legacyParams.resource;
145
+
146
+ const legacyResource = resourceKeyToCheck
147
+ ? resourceWithRoute(resourceKeyToCheck)
148
+ : undefined;
149
+ const legacyId = oldProps?.recordItemId ?? legacyParams.id;
150
+ const legacyAction = legacyParams.action;
151
+ const legacyResourceName = oldProps?.resourceName ?? legacyResource?.name;
152
+ const legacyIdentifier = legacyResource?.identifier ?? legacyResource?.name;
188
153
 
189
154
  return {
190
- resources,
191
- resource,
192
- resourceName: resource?.name,
193
- id: params.id,
194
- action: params.action,
195
- select,
196
- identifier: resource?.identifier ?? resource?.name,
155
+ resources,
156
+ resource: legacyResource,
157
+ resourceName: legacyResourceName,
158
+ id: legacyId,
159
+ action: legacyAction,
160
+ select,
161
+ identifier: legacyIdentifier,
197
162
  };
163
+ }
164
+ /** Legacy Router - End */
165
+
166
+ /** New Router */
167
+ let resource: IResourceItem | undefined = undefined;
168
+ // we try to pick the resource from props first
169
+ const identifier =
170
+ typeof args === "string" ? args : oldProps?.resourceNameOrRouteName;
171
+ if (identifier) {
172
+ const pickedFromProps = pickResource(identifier, resources);
173
+ if (pickedFromProps) {
174
+ resource = pickedFromProps;
175
+ } else {
176
+ resource = {
177
+ name: identifier as string,
178
+ };
179
+ }
180
+ } else if (params?.resource) {
181
+ resource = params.resource;
182
+ }
183
+
184
+ return {
185
+ resources,
186
+ resource,
187
+ resourceName: resource?.name,
188
+ id: params.id,
189
+ action: params.action,
190
+ select,
191
+ identifier: resource?.identifier ?? resource?.name,
192
+ };
198
193
  }
@@ -10,18 +10,18 @@ export type UseResourceWithRouteReturnType = (route: string) => IResourceItem;
10
10
  * @internal This hook is for internal use only. And is kept for backward compatibility.
11
11
  */
12
12
  export const useResourceWithRoute = (): UseResourceWithRouteReturnType => {
13
- const { resources } = useContext(ResourceContext);
13
+ const { resources } = useContext(ResourceContext);
14
14
 
15
- const resourceWithRoute = useCallback(
16
- (route: string) => {
17
- const picked = pickResource(route, resources, true);
18
- if (picked) {
19
- return picked;
20
- }
21
- return { name: route, route: route } as IResourceItem;
22
- },
23
- [resources],
24
- );
15
+ const resourceWithRoute = useCallback(
16
+ (route: string) => {
17
+ const picked = pickResource(route, resources, true);
18
+ if (picked) {
19
+ return picked;
20
+ }
21
+ return { name: route, route: route } as IResourceItem;
22
+ },
23
+ [resources],
24
+ );
25
25
 
26
- return resourceWithRoute;
26
+ return resourceWithRoute;
27
27
  };
@@ -2,14 +2,14 @@ import { RouterBindingsContext } from "@contexts/router";
2
2
  import React, { useContext } from "react";
3
3
 
4
4
  export const useBack = () => {
5
- const bindings = useContext(RouterBindingsContext);
5
+ const bindings = useContext(RouterBindingsContext);
6
6
 
7
- const useBack = React.useMemo(
8
- () => bindings?.back ?? (() => () => undefined),
9
- [bindings?.back],
10
- );
7
+ const useBack = React.useMemo(
8
+ () => bindings?.back ?? (() => () => undefined),
9
+ [bindings?.back],
10
+ );
11
11
 
12
- const back = useBack();
12
+ const back = useBack();
13
13
 
14
- return back;
14
+ return back;
15
15
  };
@@ -7,10 +7,10 @@ import { composeRoute } from "../../../definitions/helpers/router/compose-route"
7
7
  import { useRouterType } from "./../../../contexts/router-picker";
8
8
 
9
9
  type UseToPathParams = {
10
- resource?: IResourceItem;
11
- action: Action;
12
- meta?: Record<string, unknown>;
13
- legacy?: boolean;
10
+ resource?: IResourceItem;
11
+ action: Action;
12
+ meta?: Record<string, unknown>;
13
+ legacy?: boolean;
14
14
  };
15
15
 
16
16
  type GetToPathFn = (params: UseToPathParams) => string | undefined;
@@ -23,43 +23,43 @@ type GetToPathFn = (params: UseToPathParams) => string | undefined;
23
23
  * `meta` can be provided to compose the routes with parameters. (Can be used for nested routes.)
24
24
  */
25
25
  export const useGetToPath = (): GetToPathFn => {
26
- const routerType = useRouterType();
27
- const { resource: resourceFromRoute, resources } = useResource();
28
- const parsed = useParsed();
26
+ const routerType = useRouterType();
27
+ const { resource: resourceFromRoute, resources } = useResource();
28
+ const parsed = useParsed();
29
29
 
30
- const fn = React.useCallback(
31
- ({ resource, action, meta }: UseToPathParams): string | undefined => {
32
- const selectedResource = resource || resourceFromRoute;
30
+ const fn = React.useCallback(
31
+ ({ resource, action, meta }: UseToPathParams): string | undefined => {
32
+ const selectedResource = resource || resourceFromRoute;
33
33
 
34
- if (!selectedResource) {
35
- return undefined;
36
- }
34
+ if (!selectedResource) {
35
+ return undefined;
36
+ }
37
37
 
38
- const actionRoutes = getActionRoutesFromResource(
39
- selectedResource,
40
- resources,
41
- routerType === "legacy",
42
- );
38
+ const actionRoutes = getActionRoutesFromResource(
39
+ selectedResource,
40
+ resources,
41
+ routerType === "legacy",
42
+ );
43
43
 
44
- const actionRoute = actionRoutes.find(
45
- (item) => item.action === action,
46
- )?.route;
44
+ const actionRoute = actionRoutes.find(
45
+ (item) => item.action === action,
46
+ )?.route;
47
47
 
48
- if (!actionRoute) {
49
- return undefined;
50
- }
48
+ if (!actionRoute) {
49
+ return undefined;
50
+ }
51
51
 
52
- const composed = composeRoute(
53
- actionRoute,
54
- selectedResource?.meta,
55
- parsed,
56
- meta,
57
- );
52
+ const composed = composeRoute(
53
+ actionRoute,
54
+ selectedResource?.meta,
55
+ parsed,
56
+ meta,
57
+ );
58
58
 
59
- return composed;
60
- },
61
- [resources, resourceFromRoute, parsed],
62
- );
59
+ return composed;
60
+ },
61
+ [resources, resourceFromRoute, parsed],
62
+ );
63
63
 
64
- return fn;
64
+ return fn;
65
65
  };
@@ -2,79 +2,79 @@ import { RouterBindingsContext } from "@contexts/router";
2
2
  import { useResource } from "@hooks/resource";
3
3
  import React, { useCallback, useContext } from "react";
4
4
  import type {
5
- Action,
6
- BaseKey,
7
- GoConfig as GoConfigBase,
8
- IResourceItem,
5
+ Action,
6
+ BaseKey,
7
+ GoConfig as GoConfigBase,
8
+ IResourceItem,
9
9
  } from "../../../interfaces";
10
10
  import { useGetToPath } from "../use-get-to-path";
11
11
 
12
12
  type ResourceWithoutId = {
13
- /**
14
- * The name or identifier of the resource.
15
- */
16
- resource: string;
17
- action: Extract<Action, "create" | "list">;
18
- id?: never;
19
- meta?: Record<string, unknown>;
13
+ /**
14
+ * The name or identifier of the resource.
15
+ */
16
+ resource: string;
17
+ action: Extract<Action, "create" | "list">;
18
+ id?: never;
19
+ meta?: Record<string, unknown>;
20
20
  };
21
21
 
22
22
  type ResourceWithId = {
23
- /**
24
- * The name or identifier of the resource.
25
- */
26
- resource: string;
27
- action: Extract<Action, "edit" | "show" | "clone">;
28
- id: BaseKey;
29
- meta?: Record<string, unknown>;
23
+ /**
24
+ * The name or identifier of the resource.
25
+ */
26
+ resource: string;
27
+ action: Extract<Action, "edit" | "show" | "clone">;
28
+ id: BaseKey;
29
+ meta?: Record<string, unknown>;
30
30
  };
31
31
 
32
32
  export type Resource = ResourceWithoutId | ResourceWithId;
33
33
 
34
34
  export type GoConfigWithResource = Omit<GoConfigBase, "to"> & {
35
- to?: GoConfigBase["to"] | Resource;
35
+ to?: GoConfigBase["to"] | Resource;
36
36
  };
37
37
 
38
38
  export const useGo = () => {
39
- const bindings = useContext(RouterBindingsContext);
40
- const { select: resourceSelect } = useResource();
41
- const getToPath = useGetToPath();
39
+ const bindings = useContext(RouterBindingsContext);
40
+ const { select: resourceSelect } = useResource();
41
+ const getToPath = useGetToPath();
42
42
 
43
- const useGo = React.useMemo(
44
- () => bindings?.go ?? (() => () => undefined),
45
- [bindings?.go],
46
- );
47
-
48
- const goFromRouter = useGo();
43
+ const useGo = React.useMemo(
44
+ () => bindings?.go ?? (() => () => undefined),
45
+ [bindings?.go],
46
+ );
49
47
 
50
- const go = useCallback(
51
- (config: GoConfigWithResource | GoConfigBase) => {
52
- if (typeof config.to !== "object") {
53
- return goFromRouter({ ...config, to: config.to });
54
- }
48
+ const goFromRouter = useGo();
55
49
 
56
- // when config.to is an object, it means that we want to go to a resource.
57
- // so we need to find the path for the resource.
58
- const { resource } = resourceSelect(config.to.resource);
59
- handleResourceErrors(config.to, resource);
60
- const newTo = getToPath({
61
- resource,
62
- action: config.to.action,
63
- meta: {
64
- id: config.to.id,
65
- ...config.to.meta,
66
- },
67
- });
50
+ const go = useCallback(
51
+ (config: GoConfigWithResource | GoConfigBase) => {
52
+ if (typeof config.to !== "object") {
53
+ return goFromRouter({ ...config, to: config.to });
54
+ }
68
55
 
69
- return goFromRouter({
70
- ...config,
71
- to: newTo,
72
- });
56
+ // when config.to is an object, it means that we want to go to a resource.
57
+ // so we need to find the path for the resource.
58
+ const { resource } = resourceSelect(config.to.resource);
59
+ handleResourceErrors(config.to, resource);
60
+ const newTo = getToPath({
61
+ resource,
62
+ action: config.to.action,
63
+ meta: {
64
+ id: config.to.id,
65
+ ...config.to.meta,
73
66
  },
74
- [resourceSelect, goFromRouter],
75
- );
67
+ });
76
68
 
77
- return go;
69
+ return goFromRouter({
70
+ ...config,
71
+ to: newTo,
72
+ });
73
+ },
74
+ [resourceSelect, goFromRouter],
75
+ );
76
+
77
+ return go;
78
78
  };
79
79
 
80
80
  /**
@@ -82,20 +82,20 @@ export const useGo = () => {
82
82
  * @internal
83
83
  */
84
84
  export const handleResourceErrors = (to: Resource, resource: IResourceItem) => {
85
- if (!to?.action || !to?.resource) {
86
- throw new Error(`[useGo]: "action" or "resource" is required.`);
87
- }
85
+ if (!to?.action || !to?.resource) {
86
+ throw new Error(`[useGo]: "action" or "resource" is required.`);
87
+ }
88
88
 
89
- if (["edit", "show", "clone"].includes(to?.action) && !to.id) {
90
- throw new Error(
91
- `[useGo]: [action: ${to.action}] requires an "id" for resource [resource: ${to.resource}]`,
92
- );
93
- }
89
+ if (["edit", "show", "clone"].includes(to?.action) && !to.id) {
90
+ throw new Error(
91
+ `[useGo]: [action: ${to.action}] requires an "id" for resource [resource: ${to.resource}]`,
92
+ );
93
+ }
94
94
 
95
- const actionUrl = resource[to.action];
96
- if (!actionUrl) {
97
- throw new Error(
98
- `[useGo]: [action: ${to.action}] is not defined for [resource: ${to.resource}]`,
99
- );
100
- }
95
+ const actionUrl = resource[to.action];
96
+ if (!actionUrl) {
97
+ throw new Error(
98
+ `[useGo]: [action: ${to.action}] is not defined for [resource: ${to.resource}]`,
99
+ );
100
+ }
101
101
  };
@@ -2,16 +2,15 @@ import { RouterBindingsContext } from "@contexts/router";
2
2
  import React, { useContext } from "react";
3
3
 
4
4
  export const useLink = () => {
5
- const bindings = useContext(RouterBindingsContext);
5
+ const bindings = useContext(RouterBindingsContext);
6
6
 
7
- if (bindings?.Link) {
8
- return bindings.Link;
9
- }
7
+ if (bindings?.Link) {
8
+ return bindings.Link;
9
+ }
10
10
 
11
- const FallbackLink: Required<typeof bindings>["Link"] = ({
12
- to,
13
- ...rest
14
- }) => <a href={to} {...rest} />;
11
+ const FallbackLink: Required<typeof bindings>["Link"] = ({ to, ...rest }) => (
12
+ <a href={to} {...rest} />
13
+ );
15
14
 
16
- return FallbackLink;
15
+ return FallbackLink;
17
16
  };