@refinedev/core 4.46.3-alpha.0 → 4.47.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 (274) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +3 -3
  3. package/dist/components/authenticated/index.d.ts +3 -3
  4. package/dist/components/authenticated/index.d.ts.map +1 -1
  5. package/dist/components/canAccess/index.d.ts +8 -5
  6. package/dist/components/canAccess/index.d.ts.map +1 -1
  7. package/dist/components/containers/refine/index.d.ts +1 -1
  8. package/dist/components/containers/refine/index.d.ts.map +1 -1
  9. package/dist/components/gh-banner/index.d.ts +2 -2
  10. package/dist/components/gh-banner/index.d.ts.map +1 -1
  11. package/dist/components/pages/auth/components/forgotPassword/index.d.ts +1 -1
  12. package/dist/components/pages/auth/components/forgotPassword/index.d.ts.map +1 -1
  13. package/dist/components/pages/auth/components/login/index.d.ts +1 -1
  14. package/dist/components/pages/auth/components/login/index.d.ts.map +1 -1
  15. package/dist/components/pages/auth/components/register/index.d.ts +1 -1
  16. package/dist/components/pages/auth/components/register/index.d.ts.map +1 -1
  17. package/dist/components/pages/auth/components/updatePassword/index.d.ts +1 -1
  18. package/dist/components/pages/auth/components/updatePassword/index.d.ts.map +1 -1
  19. package/dist/components/pages/auth/index.d.ts +3 -3
  20. package/dist/components/pages/auth/index.d.ts.map +1 -1
  21. package/dist/components/pages/config-error/index.d.ts +3 -0
  22. package/dist/components/pages/config-error/index.d.ts.map +1 -0
  23. package/dist/components/pages/config-success/index.d.ts +6 -0
  24. package/dist/components/pages/config-success/index.d.ts.map +1 -0
  25. package/dist/components/pages/welcome/index.d.ts +2 -5
  26. package/dist/components/pages/welcome/index.d.ts.map +1 -1
  27. package/dist/components/routeChangeHandler/index.d.ts +1 -0
  28. package/dist/components/routeChangeHandler/index.d.ts.map +1 -1
  29. package/dist/contexts/accessControl/IAccessControlContext.d.ts +6 -3
  30. package/dist/contexts/accessControl/IAccessControlContext.d.ts.map +1 -1
  31. package/dist/contexts/accessControl/index.d.ts.map +1 -1
  32. package/dist/contexts/auditLog/IAuditLogContext.d.ts +3 -3
  33. package/dist/contexts/auditLog/IAuditLogContext.d.ts.map +1 -1
  34. package/dist/contexts/auth/IAuthContext.d.ts +5 -5
  35. package/dist/contexts/auth/IAuthContext.d.ts.map +1 -1
  36. package/dist/contexts/data/IDataContext.d.ts +9 -9
  37. package/dist/contexts/data/IDataContext.d.ts.map +1 -1
  38. package/dist/contexts/data/index.d.ts +5 -49
  39. package/dist/contexts/data/index.d.ts.map +1 -1
  40. package/dist/contexts/legacy-router/IRouterContext.d.ts +1 -1
  41. package/dist/contexts/legacy-router/IRouterContext.d.ts.map +1 -1
  42. package/dist/contexts/live/ILiveContext.d.ts +3 -2
  43. package/dist/contexts/live/ILiveContext.d.ts.map +1 -1
  44. package/dist/contexts/notification/INotificationContext.d.ts +1 -1
  45. package/dist/contexts/notification/INotificationContext.d.ts.map +1 -1
  46. package/dist/contexts/refine/IRefineContext.d.ts +2 -0
  47. package/dist/contexts/refine/IRefineContext.d.ts.map +1 -1
  48. package/dist/contexts/refine/index.d.ts.map +1 -1
  49. package/dist/contexts/resource/IResourceContext.d.ts +5 -5
  50. package/dist/contexts/resource/IResourceContext.d.ts.map +1 -1
  51. package/dist/contexts/translation/ITranslationContext.d.ts +2 -2
  52. package/dist/contexts/translation/ITranslationContext.d.ts.map +1 -1
  53. package/dist/contexts/undoableQueue/IUndoableQueueContext.d.ts +1 -0
  54. package/dist/contexts/undoableQueue/IUndoableQueueContext.d.ts.map +1 -1
  55. package/dist/definitions/helpers/downloadInBrowser/index.d.ts +2 -0
  56. package/dist/definitions/helpers/downloadInBrowser/index.d.ts.map +1 -0
  57. package/dist/definitions/helpers/handlePaginationParams/index.d.ts +1 -1
  58. package/dist/definitions/helpers/handlePaginationParams/index.d.ts.map +1 -1
  59. package/dist/definitions/helpers/handleRefineOptions/index.d.ts +2 -2
  60. package/dist/definitions/helpers/handleRefineOptions/index.d.ts.map +1 -1
  61. package/dist/definitions/helpers/index.d.ts +1 -0
  62. package/dist/definitions/helpers/index.d.ts.map +1 -1
  63. package/dist/definitions/helpers/keys/index.d.ts +10 -10
  64. package/dist/definitions/helpers/keys/index.d.ts.map +1 -1
  65. package/dist/definitions/helpers/menu/create-tree.d.ts +2 -2
  66. package/dist/definitions/helpers/menu/create-tree.d.ts.map +1 -1
  67. package/dist/definitions/helpers/redirectPage/index.d.ts +1 -1
  68. package/dist/definitions/helpers/redirectPage/index.d.ts.map +1 -1
  69. package/dist/definitions/helpers/router/get-action-routes-from-resource.d.ts +1 -1
  70. package/dist/definitions/helpers/router/get-action-routes-from-resource.d.ts.map +1 -1
  71. package/dist/definitions/helpers/sequentialPromises/index.d.ts +2 -2
  72. package/dist/definitions/helpers/sequentialPromises/index.d.ts.map +1 -1
  73. package/dist/esm/index.js +26 -7
  74. package/dist/esm/index.js.map +1 -1
  75. package/dist/hooks/accessControl/useCan/index.d.ts +2 -2
  76. package/dist/hooks/accessControl/useCan/index.d.ts.map +1 -1
  77. package/dist/hooks/auditLog/useLog/index.d.ts +3 -3
  78. package/dist/hooks/auditLog/useLog/index.d.ts.map +1 -1
  79. package/dist/hooks/auditLog/useLogList/index.d.ts +1 -1
  80. package/dist/hooks/auditLog/useLogList/index.d.ts.map +1 -1
  81. package/dist/hooks/auth/useForgotPassword/index.d.ts +6 -6
  82. package/dist/hooks/auth/useForgotPassword/index.d.ts.map +1 -1
  83. package/dist/hooks/auth/useGetIdentity/index.d.ts +6 -6
  84. package/dist/hooks/auth/useGetIdentity/index.d.ts.map +1 -1
  85. package/dist/hooks/auth/useIsAuthenticated/index.d.ts +6 -6
  86. package/dist/hooks/auth/useIsAuthenticated/index.d.ts.map +1 -1
  87. package/dist/hooks/auth/useLogin/index.d.ts +6 -6
  88. package/dist/hooks/auth/useLogin/index.d.ts.map +1 -1
  89. package/dist/hooks/auth/useLogout/index.d.ts +7 -7
  90. package/dist/hooks/auth/useLogout/index.d.ts.map +1 -1
  91. package/dist/hooks/auth/useOnError/index.d.ts +6 -6
  92. package/dist/hooks/auth/useOnError/index.d.ts.map +1 -1
  93. package/dist/hooks/auth/usePermissions/index.d.ts +6 -6
  94. package/dist/hooks/auth/usePermissions/index.d.ts.map +1 -1
  95. package/dist/hooks/auth/useRegister/index.d.ts +6 -6
  96. package/dist/hooks/auth/useRegister/index.d.ts.map +1 -1
  97. package/dist/hooks/auth/useUpdatePassword/index.d.ts +6 -6
  98. package/dist/hooks/auth/useUpdatePassword/index.d.ts.map +1 -1
  99. package/dist/hooks/breadcrumb/index.d.ts +3 -3
  100. package/dist/hooks/breadcrumb/index.d.ts.map +1 -1
  101. package/dist/hooks/data/useCreate.d.ts +3 -3
  102. package/dist/hooks/data/useCreate.d.ts.map +1 -1
  103. package/dist/hooks/data/useCreateMany.d.ts +3 -3
  104. package/dist/hooks/data/useCreateMany.d.ts.map +1 -1
  105. package/dist/hooks/data/useCustom.d.ts +1 -1
  106. package/dist/hooks/data/useCustom.d.ts.map +1 -1
  107. package/dist/hooks/data/useCustomMutation.d.ts +3 -3
  108. package/dist/hooks/data/useCustomMutation.d.ts.map +1 -1
  109. package/dist/hooks/data/useDataProvider.d.ts.map +1 -1
  110. package/dist/hooks/data/useDelete.d.ts +3 -3
  111. package/dist/hooks/data/useDelete.d.ts.map +1 -1
  112. package/dist/hooks/data/useDeleteMany.d.ts +3 -3
  113. package/dist/hooks/data/useDeleteMany.d.ts.map +1 -1
  114. package/dist/hooks/data/useInfiniteList.d.ts +2 -2
  115. package/dist/hooks/data/useInfiniteList.d.ts.map +1 -1
  116. package/dist/hooks/data/useList.d.ts +2 -2
  117. package/dist/hooks/data/useList.d.ts.map +1 -1
  118. package/dist/hooks/data/useMany.d.ts +1 -1
  119. package/dist/hooks/data/useMany.d.ts.map +1 -1
  120. package/dist/hooks/data/useOne.d.ts +1 -1
  121. package/dist/hooks/data/useOne.d.ts.map +1 -1
  122. package/dist/hooks/data/useUpdate.d.ts +3 -3
  123. package/dist/hooks/data/useUpdate.d.ts.map +1 -1
  124. package/dist/hooks/data/useUpdateMany.d.ts +3 -3
  125. package/dist/hooks/data/useUpdateMany.d.ts.map +1 -1
  126. package/dist/hooks/export/csvDownload.interface.d.ts +4 -4
  127. package/dist/hooks/export/csvDownload.interface.d.ts.map +1 -1
  128. package/dist/hooks/export/index.d.ts +29 -6
  129. package/dist/hooks/export/index.d.ts.map +1 -1
  130. package/dist/hooks/form/useForm.d.ts +4 -4
  131. package/dist/hooks/form/useForm.d.ts.map +1 -1
  132. package/dist/hooks/import/index.d.ts +10 -9
  133. package/dist/hooks/import/index.d.ts.map +1 -1
  134. package/dist/hooks/invalidate/index.d.ts +1 -1
  135. package/dist/hooks/invalidate/index.d.ts.map +1 -1
  136. package/dist/hooks/legacy-router/useRouterContext.d.ts +1 -0
  137. package/dist/hooks/legacy-router/useRouterContext.d.ts.map +1 -1
  138. package/dist/hooks/live/useResourceSubscription/index.d.ts +2 -2
  139. package/dist/hooks/live/useResourceSubscription/index.d.ts.map +1 -1
  140. package/dist/hooks/live/useSubscription/index.d.ts +1 -1
  141. package/dist/hooks/live/useSubscription/index.d.ts.map +1 -1
  142. package/dist/hooks/menu/useMenu.d.ts +3 -3
  143. package/dist/hooks/menu/useMenu.d.ts.map +1 -1
  144. package/dist/hooks/modal/useModal/index.d.ts +2 -2
  145. package/dist/hooks/modal/useModal/index.d.ts.map +1 -1
  146. package/dist/hooks/navigation/index.d.ts +1 -1
  147. package/dist/hooks/navigation/index.d.ts.map +1 -1
  148. package/dist/hooks/notification/useCancelNotification/index.d.ts +2 -1
  149. package/dist/hooks/notification/useCancelNotification/index.d.ts.map +1 -1
  150. package/dist/hooks/redirection/index.d.ts +1 -1
  151. package/dist/hooks/redirection/index.d.ts.map +1 -1
  152. package/dist/hooks/refine/useMutationMode.d.ts +1 -1
  153. package/dist/hooks/refine/useMutationMode.d.ts.map +1 -1
  154. package/dist/hooks/refine/useRefineContext.d.ts +2 -0
  155. package/dist/hooks/refine/useRefineContext.d.ts.map +1 -1
  156. package/dist/hooks/refine/useSyncWithLocation.d.ts +1 -1
  157. package/dist/hooks/refine/useSyncWithLocation.d.ts.map +1 -1
  158. package/dist/hooks/refine/useTitle.d.ts +1 -0
  159. package/dist/hooks/refine/useTitle.d.ts.map +1 -1
  160. package/dist/hooks/refine/useWarnAboutChange/index.d.ts +1 -1
  161. package/dist/hooks/refine/useWarnAboutChange/index.d.ts.map +1 -1
  162. package/dist/hooks/resource/useResource/index.d.ts +5 -5
  163. package/dist/hooks/resource/useResource/index.d.ts.map +1 -1
  164. package/dist/hooks/resource/useResourceWithRoute/index.d.ts +1 -1
  165. package/dist/hooks/resource/useResourceWithRoute/index.d.ts.map +1 -1
  166. package/dist/hooks/router/use-get-to-path/index.d.ts +2 -2
  167. package/dist/hooks/router/use-get-to-path/index.d.ts.map +1 -1
  168. package/dist/hooks/router/use-go/index.d.ts +4 -4
  169. package/dist/hooks/router/use-go/index.d.ts.map +1 -1
  170. package/dist/hooks/router/use-parse/index.d.ts +1 -1
  171. package/dist/hooks/router/use-parse/index.d.ts.map +1 -1
  172. package/dist/hooks/router/use-to-path/index.d.ts +1 -1
  173. package/dist/hooks/router/use-to-path/index.d.ts.map +1 -1
  174. package/dist/hooks/show/useShow.d.ts +2 -2
  175. package/dist/hooks/show/useShow.d.ts.map +1 -1
  176. package/dist/hooks/translate/useGetLocale.d.ts +1 -1
  177. package/dist/hooks/translate/useGetLocale.d.ts.map +1 -1
  178. package/dist/hooks/useLoadingOvertime/index.d.ts +6 -6
  179. package/dist/hooks/useLoadingOvertime/index.d.ts.map +1 -1
  180. package/dist/hooks/useSelect/index.d.ts +2 -2
  181. package/dist/hooks/useSelect/index.d.ts.map +1 -1
  182. package/dist/hooks/useTable/index.d.ts +5 -5
  183. package/dist/hooks/useTable/index.d.ts.map +1 -1
  184. package/dist/iife/index.js +26 -7
  185. package/dist/iife/index.js.map +1 -1
  186. package/dist/index.js +26 -7
  187. package/dist/index.js.map +1 -1
  188. package/dist/interfaces/actions.d.ts +6 -6
  189. package/dist/interfaces/actions.d.ts.map +1 -1
  190. package/dist/interfaces/auditLog/logData.d.ts +1 -1
  191. package/dist/interfaces/auditLog/logData.d.ts.map +1 -1
  192. package/dist/interfaces/auth.d.ts +6 -6
  193. package/dist/interfaces/auth.d.ts.map +1 -1
  194. package/dist/interfaces/autoSave.d.ts +4 -4
  195. package/dist/interfaces/autoSave.d.ts.map +1 -1
  196. package/dist/interfaces/bindings/access-control.d.ts +3 -3
  197. package/dist/interfaces/bindings/access-control.d.ts.map +1 -1
  198. package/dist/interfaces/bindings/auth.d.ts +12 -7
  199. package/dist/interfaces/bindings/auth.d.ts.map +1 -1
  200. package/dist/interfaces/bindings/data.d.ts +3 -3
  201. package/dist/interfaces/bindings/data.d.ts.map +1 -1
  202. package/dist/interfaces/bindings/i18n.d.ts +4 -4
  203. package/dist/interfaces/bindings/i18n.d.ts.map +1 -1
  204. package/dist/interfaces/bindings/live.d.ts +5 -5
  205. package/dist/interfaces/bindings/live.d.ts.map +1 -1
  206. package/dist/interfaces/bindings/notifications.d.ts +1 -1
  207. package/dist/interfaces/bindings/notifications.d.ts.map +1 -1
  208. package/dist/interfaces/bindings/resource.d.ts +7 -7
  209. package/dist/interfaces/bindings/resource.d.ts.map +1 -1
  210. package/dist/interfaces/bindings/router.d.ts +8 -7
  211. package/dist/interfaces/bindings/router.d.ts.map +1 -1
  212. package/dist/interfaces/customComponents.d.ts +3 -3
  213. package/dist/interfaces/customComponents.d.ts.map +1 -1
  214. package/dist/interfaces/errors/RefineError.d.ts +1 -1
  215. package/dist/interfaces/errors/RefineError.d.ts.map +1 -1
  216. package/dist/interfaces/form-url-params.d.ts +1 -1
  217. package/dist/interfaces/form-url-params.d.ts.map +1 -1
  218. package/dist/interfaces/index.d.ts +5 -5
  219. package/dist/interfaces/index.d.ts.map +1 -1
  220. package/dist/interfaces/live/LiveEvent.d.ts +1 -1
  221. package/dist/interfaces/live/LiveEvent.d.ts.map +1 -1
  222. package/dist/interfaces/live/LiveModeProps.d.ts +2 -2
  223. package/dist/interfaces/live/LiveModeProps.d.ts.map +1 -1
  224. package/dist/interfaces/metaData/fields.d.ts +1 -1
  225. package/dist/interfaces/metaData/fields.d.ts.map +1 -1
  226. package/dist/interfaces/metaData/graphqlQueryOptions.d.ts +1 -1
  227. package/dist/interfaces/metaData/graphqlQueryOptions.d.ts.map +1 -1
  228. package/dist/interfaces/metaData/metaDataQuery.d.ts +1 -1
  229. package/dist/interfaces/metaData/metaDataQuery.d.ts.map +1 -1
  230. package/dist/interfaces/metaData/metaQuery.d.ts +1 -1
  231. package/dist/interfaces/metaData/metaQuery.d.ts.map +1 -1
  232. package/dist/interfaces/metaData/nestedField.d.ts +1 -1
  233. package/dist/interfaces/metaData/nestedField.d.ts.map +1 -1
  234. package/dist/interfaces/metaData/variableOptions.d.ts +1 -1
  235. package/dist/interfaces/metaData/variableOptions.d.ts.map +1 -1
  236. package/dist/interfaces/mutationMode.d.ts +6 -6
  237. package/dist/interfaces/mutationMode.d.ts.map +1 -1
  238. package/dist/interfaces/optimistic-update-map.d.ts +2 -2
  239. package/dist/interfaces/optimistic-update-map.d.ts.map +1 -1
  240. package/dist/interfaces/prettify.d.ts +1 -1
  241. package/dist/interfaces/prettify.d.ts.map +1 -1
  242. package/dist/interfaces/resourceErrorRouterParams.d.ts +1 -1
  243. package/dist/interfaces/resourceErrorRouterParams.d.ts.map +1 -1
  244. package/dist/interfaces/resourceRouterParams.d.ts +1 -1
  245. package/dist/interfaces/resourceRouterParams.d.ts.map +1 -1
  246. package/dist/interfaces/successErrorNotification.d.ts +1 -1
  247. package/dist/interfaces/successErrorNotification.d.ts.map +1 -1
  248. package/dist/interfaces/telemetry.d.ts +1 -1
  249. package/dist/interfaces/telemetry.d.ts.map +1 -1
  250. package/dist/interfaces/textTransformers.d.ts +1 -1
  251. package/dist/interfaces/textTransformers.d.ts.map +1 -1
  252. package/package.json +1 -2
  253. package/src/components/canAccess/index.tsx +6 -0
  254. package/src/components/containers/refine/index.tsx +1 -1
  255. package/src/components/pages/config-error/index.tsx +444 -0
  256. package/src/components/pages/config-success/index.tsx +294 -0
  257. package/src/components/pages/welcome/index.tsx +10 -289
  258. package/src/contexts/accessControl/IAccessControlContext.ts +3 -0
  259. package/src/contexts/accessControl/index.tsx +1 -0
  260. package/src/contexts/data/index.tsx +9 -24
  261. package/src/contexts/refine/IRefineContext.ts +2 -0
  262. package/src/contexts/refine/index.tsx +1 -0
  263. package/src/definitions/helpers/downloadInBrowser/index.ts +25 -0
  264. package/src/definitions/helpers/index.ts +1 -0
  265. package/src/hooks/accessControl/useCan/index.ts +12 -5
  266. package/src/hooks/auth/useForgotPassword/index.ts +17 -1
  267. package/src/hooks/auth/useLogin/index.ts +22 -1
  268. package/src/hooks/auth/useLogout/index.ts +17 -1
  269. package/src/hooks/auth/useRegister/index.ts +22 -1
  270. package/src/hooks/auth/useUpdatePassword/index.ts +17 -1
  271. package/src/hooks/data/useDataProvider.tsx +3 -2
  272. package/src/hooks/export/index.ts +90 -9
  273. package/src/hooks/refine/useRefineContext.ts +2 -0
  274. package/src/interfaces/bindings/auth.ts +6 -0
@@ -0,0 +1,294 @@
1
+ import React, { useState } from "react";
2
+
3
+ import { useMediaQuery } from "@definitions/helpers";
4
+
5
+ type CardInfo = {
6
+ title: string;
7
+ description: string;
8
+ link: string;
9
+ iconUrl: string;
10
+ };
11
+
12
+ const cards: CardInfo[] = [
13
+ {
14
+ title: "Documentation",
15
+ description:
16
+ "Learn about the technical details of using refine in your projects.",
17
+ link: "https://refine.dev/",
18
+ iconUrl:
19
+ "https://refine.ams3.cdn.digitaloceanspaces.com/welcome-page/book.svg",
20
+ },
21
+ {
22
+ title: "Tutorial",
23
+ description:
24
+ "Learn how to use refine by building a fully-functioning CRUD app, from scratch to full launch.",
25
+ link: "https://refine.dev/docs/tutorial/introduction/index/",
26
+ iconUrl:
27
+ "https://refine.ams3.cdn.digitaloceanspaces.com/welcome-page/hat.svg",
28
+ },
29
+ {
30
+ title: "Examples",
31
+ description:
32
+ "A collection of reference applications you can use as a starting point.",
33
+ link: "https://refine.dev/examples",
34
+ iconUrl:
35
+ "https://refine.ams3.cdn.digitaloceanspaces.com/welcome-page/application.svg",
36
+ },
37
+ {
38
+ title: "Community",
39
+ description:
40
+ "Join our Discord community and keep up with the latest news.",
41
+ link: "https://discord.gg/refine",
42
+ iconUrl:
43
+ "https://refine.ams3.cdn.digitaloceanspaces.com/welcome-page/discord.svg",
44
+ },
45
+ ];
46
+
47
+ /**
48
+ * It is a page that welcomes you after the configuration is completed.
49
+ */
50
+ export const ConfigSuccessPage: React.FC = () => {
51
+ const isTablet = useMediaQuery("(max-width: 1010px)");
52
+ const isMobile = useMediaQuery("(max-width: 650px)");
53
+
54
+ const getGridTemplateColumns = () => {
55
+ if (isMobile) {
56
+ return "1, 280px";
57
+ } else if (isTablet) {
58
+ return "2, 280px";
59
+ } else {
60
+ return "4, 1fr";
61
+ }
62
+ };
63
+
64
+ const getHeaderFontSize = () => {
65
+ if (isMobile) {
66
+ return "32px";
67
+ } else if (isTablet) {
68
+ return "40px";
69
+ } else {
70
+ return "48px";
71
+ }
72
+ };
73
+
74
+ const getSubHeaderFontSize = () => {
75
+ if (isMobile) {
76
+ return "16px";
77
+ } else if (isTablet) {
78
+ return "20px";
79
+ } else {
80
+ return "24px";
81
+ }
82
+ };
83
+
84
+ return (
85
+ <div
86
+ style={{
87
+ position: "fixed",
88
+ zIndex: 10,
89
+ inset: 0,
90
+ overflow: "auto",
91
+ width: "100dvw",
92
+ height: "100dvh",
93
+ }}
94
+ >
95
+ <div
96
+ style={{
97
+ overflow: "hidden",
98
+ position: "relative",
99
+ backgroundSize: "cover",
100
+ backgroundRepeat: "no-repeat",
101
+ background: isMobile
102
+ ? "url(https://refine.ams3.cdn.digitaloceanspaces.com/website/static/assets/landing-noise.webp), radial-gradient(88.89% 50% at 50% 100%, rgba(38, 217, 127, 0.10) 0%, rgba(38, 217, 127, 0.00) 100%), radial-gradient(88.89% 50% at 50% 0%, rgba(71, 235, 235, 0.15) 0%, rgba(71, 235, 235, 0.00) 100%), #1D1E30"
103
+ : isTablet
104
+ ? "url(https://refine.ams3.cdn.digitaloceanspaces.com/website/static/assets/landing-noise.webp), radial-gradient(66.67% 50% at 50% 100%, rgba(38, 217, 127, 0.10) 0%, rgba(38, 217, 127, 0.00) 100%), radial-gradient(66.67% 50% at 50% 0%, rgba(71, 235, 235, 0.15) 0%, rgba(71, 235, 235, 0.00) 100%), #1D1E30"
105
+ : "url(https://refine.ams3.cdn.digitaloceanspaces.com/website/static/assets/landing-noise.webp), radial-gradient(35.56% 50% at 50% 100%, rgba(38, 217, 127, 0.12) 0%, rgba(38, 217, 127, 0) 100%), radial-gradient(35.56% 50% at 50% 0%, rgba(71, 235, 235, 0.18) 0%, rgba(71, 235, 235, 0) 100%), #1D1E30",
106
+ minHeight: "100%",
107
+ minWidth: "100%",
108
+ fontFamily: "Arial",
109
+ color: "#FFFFFF",
110
+ }}
111
+ >
112
+ <div
113
+ style={{
114
+ zIndex: 2,
115
+ position: "absolute",
116
+ width: isMobile ? "400px" : "800px",
117
+ height: "552px",
118
+ opacity: "0.5",
119
+ background:
120
+ "url(https://refine.ams3.cdn.digitaloceanspaces.com/assets/welcome-page-hexagon.png)",
121
+ backgroundRepeat: "no-repeat",
122
+ backgroundSize: "contain",
123
+ top: "0",
124
+ left: "50%",
125
+ transform: "translateX(-50%)",
126
+ }}
127
+ />
128
+ <div style={{ height: isMobile ? "40px" : "80px" }}></div>
129
+ <div style={{ display: "flex", justifyContent: "center" }}>
130
+ <div
131
+ style={{
132
+ backgroundRepeat: "no-repeat",
133
+ backgroundSize: isMobile
134
+ ? "112px 58px"
135
+ : "224px 116px",
136
+ backgroundImage:
137
+ "url(https://refine.ams3.cdn.digitaloceanspaces.com/assets/refine-logo.svg)",
138
+ width: isMobile ? 112 : 224,
139
+ height: isMobile ? 58 : 116,
140
+ }}
141
+ />
142
+ </div>
143
+ <div
144
+ style={{
145
+ height: isMobile
146
+ ? "120px"
147
+ : isTablet
148
+ ? "200px"
149
+ : "30vh",
150
+ minHeight: isMobile
151
+ ? "120px"
152
+ : isTablet
153
+ ? "200px"
154
+ : "200px",
155
+ }}
156
+ ></div>
157
+ <div
158
+ style={{
159
+ display: "flex",
160
+ flexDirection: "column",
161
+ gap: "16px",
162
+ textAlign: "center",
163
+ }}
164
+ >
165
+ <h1
166
+ style={{
167
+ fontSize: getHeaderFontSize(),
168
+ fontWeight: 700,
169
+ margin: "0px",
170
+ }}
171
+ >
172
+ Welcome Aboard!
173
+ </h1>
174
+ <h4
175
+ style={{
176
+ fontSize: getSubHeaderFontSize(),
177
+ fontWeight: 400,
178
+ margin: "0px",
179
+ }}
180
+ >
181
+ Your configuration is completed.
182
+ </h4>
183
+ </div>
184
+ <div style={{ height: "64px" }}></div>
185
+ <div
186
+ style={{
187
+ display: "grid",
188
+ gridTemplateColumns: `repeat(${getGridTemplateColumns()})`,
189
+ justifyContent: "center",
190
+ gap: "48px",
191
+ paddingRight: "16px",
192
+ paddingLeft: "16px",
193
+ paddingBottom: "32px",
194
+ maxWidth: "976px",
195
+ margin: "auto",
196
+ }}
197
+ >
198
+ {cards.map((card) => (
199
+ <Card key={`welcome-page-${card.title}`} card={card} />
200
+ ))}
201
+ </div>
202
+ </div>
203
+ </div>
204
+ );
205
+ };
206
+
207
+ type CardProps = {
208
+ card: CardInfo;
209
+ };
210
+
211
+ const Card: React.FC<CardProps> = ({ card }) => {
212
+ const { title, description, iconUrl, link } = card;
213
+
214
+ const [isHover, setIsHover] = useState(false);
215
+
216
+ return (
217
+ <div
218
+ style={{
219
+ display: "flex",
220
+ flexDirection: "column",
221
+ gap: "16px",
222
+ }}
223
+ >
224
+ <div
225
+ style={{
226
+ display: "flex",
227
+ alignItems: "center",
228
+ }}
229
+ >
230
+ <a
231
+ onPointerEnter={() => setIsHover(true)}
232
+ onPointerLeave={() => setIsHover(false)}
233
+ style={{
234
+ display: "flex",
235
+ alignItems: "center",
236
+ color: "#fff",
237
+ textDecoration: "none",
238
+ }}
239
+ href={link}
240
+ >
241
+ <div
242
+ style={{
243
+ width: "16px",
244
+ height: "16px",
245
+ backgroundPosition: "center",
246
+ backgroundSize: "contain",
247
+ backgroundRepeat: "no-repeat",
248
+ backgroundImage: `url(${iconUrl})`,
249
+ }}
250
+ />
251
+ <span
252
+ style={{
253
+ fontSize: "16px",
254
+ fontWeight: 700,
255
+ marginLeft: "13px",
256
+ marginRight: "14px",
257
+ }}
258
+ >
259
+ {title}
260
+ </span>
261
+ <svg
262
+ style={{
263
+ transition:
264
+ "transform 0.5s ease-in-out, opacity 0.2s ease-in-out",
265
+ ...(isHover && {
266
+ transform: "translateX(4px)",
267
+ opacity: 1,
268
+ }),
269
+ }}
270
+ width="12"
271
+ height="8"
272
+ fill="none"
273
+ opacity="0.5"
274
+ xmlns="http://www.w3.org/2000/svg"
275
+ >
276
+ <path
277
+ d="M7.293.293a1 1 0 0 1 1.414 0l3 3a1 1 0 0 1 0 1.414l-3 3a1 1 0 0 1-1.414-1.414L8.586 5H1a1 1 0 0 1 0-2h7.586L7.293 1.707a1 1 0 0 1 0-1.414Z"
278
+ fill="#fff"
279
+ />
280
+ </svg>
281
+ </a>
282
+ </div>
283
+ <span
284
+ style={{
285
+ fontSize: "12px",
286
+ opacity: 0.5,
287
+ lineHeight: "16px",
288
+ }}
289
+ >
290
+ {description}
291
+ </span>
292
+ </div>
293
+ );
294
+ };
@@ -1,294 +1,15 @@
1
- import React, { useState } from "react";
1
+ import React from "react";
2
+ import { ConfigSuccessPage } from "../config-success";
3
+ import { useRefineContext } from "@hooks/refine";
4
+ import { ConfigErrorPage } from "../config-error";
2
5
 
3
- import { useMediaQuery } from "@definitions/helpers";
4
-
5
- type CardInfo = {
6
- title: string;
7
- description: string;
8
- link: string;
9
- iconUrl: string;
10
- };
11
-
12
- const cards: CardInfo[] = [
13
- {
14
- title: "Documentation",
15
- description:
16
- "Learn about the technical details of using refine in your projects.",
17
- link: "https://refine.dev/",
18
- iconUrl:
19
- "https://refine.ams3.cdn.digitaloceanspaces.com/welcome-page/book.svg",
20
- },
21
- {
22
- title: "Tutorial",
23
- description:
24
- "Learn how to use refine by building a fully-functioning CRUD app, from scratch to full launch.",
25
- link: "https://refine.dev/docs/tutorial/introduction/index/",
26
- iconUrl:
27
- "https://refine.ams3.cdn.digitaloceanspaces.com/welcome-page/hat.svg",
28
- },
29
- {
30
- title: "Examples",
31
- description:
32
- "A collection of reference applications you can use as a starting point.",
33
- link: "https://refine.dev/examples",
34
- iconUrl:
35
- "https://refine.ams3.cdn.digitaloceanspaces.com/welcome-page/application.svg",
36
- },
37
- {
38
- title: "Community",
39
- description:
40
- "Join our Discord community and keep up with the latest news.",
41
- link: "https://discord.gg/refine",
42
- iconUrl:
43
- "https://refine.ams3.cdn.digitaloceanspaces.com/welcome-page/discord.svg",
44
- },
45
- ];
46
-
47
- /**
48
- * It is a page that welcomes you after the configuration is completed.
49
- */
50
- export const WelcomePage: React.FC = () => {
51
- const isTablet = useMediaQuery("(max-width: 1010px)");
52
- const isMobile = useMediaQuery("(max-width: 650px)");
53
-
54
- const getGridTemplateColumns = () => {
55
- if (isMobile) {
56
- return "1, 280px";
57
- } else if (isTablet) {
58
- return "2, 280px";
59
- } else {
60
- return "4, 1fr";
61
- }
62
- };
63
-
64
- const getHeaderFontSize = () => {
65
- if (isMobile) {
66
- return "32px";
67
- } else if (isTablet) {
68
- return "40px";
69
- } else {
70
- return "48px";
71
- }
72
- };
73
-
74
- const getSubHeaderFontSize = () => {
75
- if (isMobile) {
76
- return "16px";
77
- } else if (isTablet) {
78
- return "20px";
79
- } else {
80
- return "24px";
81
- }
82
- };
83
-
84
- return (
85
- <div
86
- style={{
87
- position: "fixed",
88
- zIndex: 10,
89
- inset: 0,
90
- overflow: "auto",
91
- width: "100dvw",
92
- height: "100dvh",
93
- }}
94
- >
95
- <div
96
- style={{
97
- overflow: "hidden",
98
- position: "relative",
99
- backgroundSize: "cover",
100
- backgroundRepeat: "no-repeat",
101
- background: isMobile
102
- ? "url(https://refine.ams3.cdn.digitaloceanspaces.com/website/static/assets/landing-noise.webp), radial-gradient(88.89% 50% at 50% 100%, rgba(38, 217, 127, 0.10) 0%, rgba(38, 217, 127, 0.00) 100%), radial-gradient(88.89% 50% at 50% 0%, rgba(71, 235, 235, 0.15) 0%, rgba(71, 235, 235, 0.00) 100%), #1D1E30"
103
- : isTablet
104
- ? "url(https://refine.ams3.cdn.digitaloceanspaces.com/website/static/assets/landing-noise.webp), radial-gradient(66.67% 50% at 50% 100%, rgba(38, 217, 127, 0.10) 0%, rgba(38, 217, 127, 0.00) 100%), radial-gradient(66.67% 50% at 50% 0%, rgba(71, 235, 235, 0.15) 0%, rgba(71, 235, 235, 0.00) 100%), #1D1E30"
105
- : "url(https://refine.ams3.cdn.digitaloceanspaces.com/website/static/assets/landing-noise.webp), radial-gradient(35.56% 50% at 50% 100%, rgba(38, 217, 127, 0.12) 0%, rgba(38, 217, 127, 0) 100%), radial-gradient(35.56% 50% at 50% 0%, rgba(71, 235, 235, 0.18) 0%, rgba(71, 235, 235, 0) 100%), #1D1E30",
106
- minHeight: "100%",
107
- minWidth: "100%",
108
- fontFamily: "Arial",
109
- color: "#FFFFFF",
110
- }}
111
- >
112
- <div
113
- style={{
114
- zIndex: 2,
115
- position: "absolute",
116
- width: isMobile ? "400px" : "800px",
117
- height: "552px",
118
- opacity: "0.5",
119
- background:
120
- "url(https://refine.ams3.cdn.digitaloceanspaces.com/assets/welcome-page-hexagon.png)",
121
- backgroundRepeat: "no-repeat",
122
- backgroundSize: "contain",
123
- top: "0",
124
- left: "50%",
125
- transform: "translateX(-50%)",
126
- }}
127
- />
128
- <div style={{ height: isMobile ? "40px" : "80px" }}></div>
129
- <div style={{ display: "flex", justifyContent: "center" }}>
130
- <div
131
- style={{
132
- backgroundRepeat: "no-repeat",
133
- backgroundSize: isMobile
134
- ? "112px 58px"
135
- : "224px 116px",
136
- backgroundImage:
137
- "url(https://refine.ams3.cdn.digitaloceanspaces.com/assets/refine-logo.svg)",
138
- width: isMobile ? 112 : 224,
139
- height: isMobile ? 58 : 116,
140
- }}
141
- />
142
- </div>
143
- <div
144
- style={{
145
- height: isMobile
146
- ? "120px"
147
- : isTablet
148
- ? "270px"
149
- : "40vh",
150
- minHeight: isMobile
151
- ? "120px"
152
- : isTablet
153
- ? "270px"
154
- : "270px",
155
- }}
156
- ></div>
157
- <div
158
- style={{
159
- display: "flex",
160
- flexDirection: "column",
161
- gap: "16px",
162
- textAlign: "center",
163
- }}
164
- >
165
- <h1
166
- style={{
167
- fontSize: getHeaderFontSize(),
168
- fontWeight: 700,
169
- margin: "0px",
170
- }}
171
- >
172
- Welcome Aboard!
173
- </h1>
174
- <h4
175
- style={{
176
- fontSize: getSubHeaderFontSize(),
177
- fontWeight: 400,
178
- margin: "0px",
179
- }}
180
- >
181
- Your configuration is completed.
182
- </h4>
183
- </div>
184
- <div style={{ height: "64px" }}></div>
185
- <div
186
- style={{
187
- display: "grid",
188
- gridTemplateColumns: `repeat(${getGridTemplateColumns()})`,
189
- justifyContent: "center",
190
- gap: "48px",
191
- paddingRight: "16px",
192
- paddingLeft: "16px",
193
- paddingBottom: "32px",
194
- maxWidth: "976px",
195
- margin: "auto",
196
- }}
197
- >
198
- {cards.map((card) => (
199
- <Card key={`welcome-page-${card.title}`} card={card} />
200
- ))}
201
- </div>
202
- </div>
203
- </div>
204
- );
205
- };
206
-
207
- type CardProps = {
208
- card: CardInfo;
209
- };
210
-
211
- const Card: React.FC<CardProps> = ({ card }) => {
212
- const { title, description, iconUrl, link } = card;
213
-
214
- const [isHover, setIsHover] = useState(false);
6
+ export const WelcomePage = () => {
7
+ const { __initialized } = useRefineContext();
215
8
 
216
9
  return (
217
- <div
218
- style={{
219
- display: "flex",
220
- flexDirection: "column",
221
- gap: "16px",
222
- }}
223
- >
224
- <div
225
- style={{
226
- display: "flex",
227
- alignItems: "center",
228
- }}
229
- >
230
- <a
231
- onPointerEnter={() => setIsHover(true)}
232
- onPointerLeave={() => setIsHover(false)}
233
- style={{
234
- display: "flex",
235
- alignItems: "center",
236
- color: "#fff",
237
- textDecoration: "none",
238
- }}
239
- href={link}
240
- >
241
- <div
242
- style={{
243
- width: "16px",
244
- height: "16px",
245
- backgroundPosition: "center",
246
- backgroundSize: "contain",
247
- backgroundRepeat: "no-repeat",
248
- backgroundImage: `url(${iconUrl})`,
249
- }}
250
- />
251
- <span
252
- style={{
253
- fontSize: "16px",
254
- fontWeight: 700,
255
- marginLeft: "13px",
256
- marginRight: "14px",
257
- }}
258
- >
259
- {title}
260
- </span>
261
- <svg
262
- style={{
263
- transition:
264
- "transform 0.5s ease-in-out, opacity 0.2s ease-in-out",
265
- ...(isHover && {
266
- transform: "translateX(4px)",
267
- opacity: 1,
268
- }),
269
- }}
270
- width="12"
271
- height="8"
272
- fill="none"
273
- opacity="0.5"
274
- xmlns="http://www.w3.org/2000/svg"
275
- >
276
- <path
277
- d="M7.293.293a1 1 0 0 1 1.414 0l3 3a1 1 0 0 1 0 1.414l-3 3a1 1 0 0 1-1.414-1.414L8.586 5H1a1 1 0 0 1 0-2h7.586L7.293 1.707a1 1 0 0 1 0-1.414Z"
278
- fill="#fff"
279
- />
280
- </svg>
281
- </a>
282
- </div>
283
- <span
284
- style={{
285
- fontSize: "12px",
286
- opacity: 0.5,
287
- lineHeight: "16px",
288
- }}
289
- >
290
- {description}
291
- </span>
292
- </div>
10
+ <>
11
+ <ConfigSuccessPage />
12
+ {!__initialized && <ConfigErrorPage />}
13
+ </>
293
14
  );
294
15
  };
@@ -1,4 +1,5 @@
1
1
  import { BaseKey, IResourceItem, ITreeMenu } from "../../interfaces";
2
+ import { UseQueryOptions } from "@tanstack/react-query";
2
3
 
3
4
  export type CanParams = {
4
5
  /**
@@ -32,6 +33,7 @@ export interface IAccessControlContext {
32
33
  enableAccessControl?: boolean;
33
34
  hideIfUnauthorized?: boolean;
34
35
  };
36
+ queryOptions?: UseQueryOptions<CanReturnType>;
35
37
  };
36
38
  }
37
39
 
@@ -42,6 +44,7 @@ export interface IAccessControlContextReturnType {
42
44
  enableAccessControl?: boolean;
43
45
  hideIfUnauthorized?: boolean;
44
46
  };
47
+ queryOptions?: UseQueryOptions<CanReturnType>;
45
48
  };
46
49
  }
47
50
 
@@ -40,6 +40,7 @@ export const AccessControlContextProvider: React.FC<
40
40
  enableAccessControl: true,
41
41
  hideIfUnauthorized: false,
42
42
  },
43
+ queryOptions: undefined,
43
44
  },
44
45
  }}
45
46
  >
@@ -7,33 +7,18 @@ import {
7
7
  } from "../../interfaces";
8
8
 
9
9
  export const defaultDataProvider = () => {
10
- return {
11
- default: {
12
- create: () => Promise.resolve({ data: { id: 1 } }),
13
- createMany: () => Promise.resolve({ data: [] }),
14
- deleteOne: () => Promise.resolve({ data: { id: 1 } }),
15
- deleteMany: () => Promise.resolve({ data: [] }),
16
- getList: () => Promise.resolve({ data: [], total: 0 }),
17
- getMany: () => Promise.resolve({ data: [] }),
18
- getOne: () => Promise.resolve({ data: { id: 1 } }),
19
- update: () => Promise.resolve({ data: { id: 1 } }),
20
- updateMany: () => Promise.resolve({ data: [] }),
21
- custom: () => Promise.resolve({ data: {} }),
22
- getApiUrl: () => "",
23
- },
24
- };
10
+ return {};
25
11
  };
26
12
 
27
- export const DataContext = React.createContext<IDataMultipleContextProvider>(
28
- defaultDataProvider() as IDataMultipleContextProvider,
29
- );
13
+ export const DataContext = React.createContext<
14
+ Partial<IDataMultipleContextProvider>
15
+ >(defaultDataProvider());
30
16
 
31
- export const DataContextProvider: React.FC<
32
- | IDataMultipleContextProvider
33
- | (IDataContextProvider & {
34
- children: ReactNode;
35
- })
36
- > = ({ children, ...rest }) => {
17
+ type Props = React.PropsWithChildren<
18
+ Partial<IDataMultipleContextProvider> | IDataContextProvider
19
+ >;
20
+
21
+ export const DataContextProvider: React.FC<Props> = ({ children, ...rest }) => {
37
22
  let dataProviders;
38
23
  if (!rest.getList || !rest.getOne) {
39
24
  dataProviders = rest as IDataMultipleContextProvider;
@@ -67,6 +67,7 @@ export interface IRefineContextOptions {
67
67
  }
68
68
 
69
69
  export interface IRefineContext {
70
+ __initialized?: boolean;
70
71
  hasDashboard: boolean;
71
72
  mutationMode: MutationMode;
72
73
  /**
@@ -90,6 +91,7 @@ export interface IRefineContext {
90
91
  }
91
92
 
92
93
  export interface IRefineContextProvider {
94
+ __initialized?: boolean;
93
95
  hasDashboard: boolean;
94
96
  mutationMode: MutationMode;
95
97
  warnWhenUnsavedChanges: boolean;