@webiny/app 6.3.0 → 6.4.0-beta.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 (276) hide show
  1. package/App.js +70 -77
  2. package/App.js.map +1 -1
  3. package/AppContainer.js +3 -6
  4. package/AppContainer.js.map +1 -1
  5. package/apollo-client/InMemoryCache.js +11 -13
  6. package/apollo-client/InMemoryCache.js.map +1 -1
  7. package/apollo-client/IntrospectionFragmentMatcher.js +26 -38
  8. package/apollo-client/IntrospectionFragmentMatcher.js.map +1 -1
  9. package/components/Image.js +11 -17
  10. package/components/Image.js.map +1 -1
  11. package/components/index.js +0 -2
  12. package/config/RouterConfig/Route.js +23 -28
  13. package/config/RouterConfig/Route.js.map +1 -1
  14. package/config/RouterConfig.js +11 -10
  15. package/config/RouterConfig.js.map +1 -1
  16. package/config.js +19 -20
  17. package/config.js.map +1 -1
  18. package/contexts/Ui/index.js +26 -28
  19. package/contexts/Ui/index.js.map +1 -1
  20. package/core/Plugin.js +7 -9
  21. package/core/Plugin.js.map +1 -1
  22. package/core/Plugins.js +15 -34
  23. package/core/Plugins.js.map +1 -1
  24. package/core/Provider.js +5 -13
  25. package/core/Provider.js.map +1 -1
  26. package/core/createProvider.js +3 -6
  27. package/core/createProvider.js.map +1 -1
  28. package/core/createProviderPlugin.js +8 -13
  29. package/core/createProviderPlugin.js.map +1 -1
  30. package/errors/AuthenticationErrorEvent.js +8 -5
  31. package/errors/AuthenticationErrorEvent.js.map +1 -1
  32. package/errors/NetworkErrorEvent.js +8 -5
  33. package/errors/NetworkErrorEvent.js.map +1 -1
  34. package/errors/abstractions.js +3 -2
  35. package/errors/abstractions.js.map +1 -1
  36. package/errors/index.js +1 -4
  37. package/exports/admin/env-config.js +0 -2
  38. package/exports/admin/graphql-client.js +0 -2
  39. package/exports/admin/local-storage.js +0 -2
  40. package/exports/admin/router.js +0 -2
  41. package/exports/admin/security.js +0 -2
  42. package/exports/admin.js +0 -2
  43. package/features/envConfig/EnvConfig.js +12 -13
  44. package/features/envConfig/EnvConfig.js.map +1 -1
  45. package/features/envConfig/abstractions.js +2 -1
  46. package/features/envConfig/abstractions.js.map +1 -1
  47. package/features/envConfig/feature.js +9 -8
  48. package/features/envConfig/feature.js.map +1 -1
  49. package/features/envConfig/index.js +0 -2
  50. package/features/eventPublisher/EventPublisher.js +13 -21
  51. package/features/eventPublisher/EventPublisher.js.map +1 -1
  52. package/features/eventPublisher/abstractions.js +7 -9
  53. package/features/eventPublisher/abstractions.js.map +1 -1
  54. package/features/eventPublisher/feature.js +13 -12
  55. package/features/eventPublisher/feature.js.map +1 -1
  56. package/features/eventPublisher/index.js +1 -3
  57. package/features/graphqlClient/AuthenticationErrorPublishing.js +26 -26
  58. package/features/graphqlClient/AuthenticationErrorPublishing.js.map +1 -1
  59. package/features/graphqlClient/BatchingGraphQLClient.js +104 -149
  60. package/features/graphqlClient/BatchingGraphQLClient.js.map +1 -1
  61. package/features/graphqlClient/FetchGraphQLClient.js +41 -48
  62. package/features/graphqlClient/FetchGraphQLClient.js.map +1 -1
  63. package/features/graphqlClient/NetworkErrorPublishing.js +35 -42
  64. package/features/graphqlClient/NetworkErrorPublishing.js.map +1 -1
  65. package/features/graphqlClient/RequestValue.js +42 -41
  66. package/features/graphqlClient/RequestValue.js.map +1 -1
  67. package/features/graphqlClient/RetryGraphQLClient.js +36 -45
  68. package/features/graphqlClient/RetryGraphQLClient.js.map +1 -1
  69. package/features/graphqlClient/__tests__/GraphQLClient.test.js +383 -356
  70. package/features/graphqlClient/__tests__/GraphQLClient.test.js.map +1 -1
  71. package/features/graphqlClient/abstractions.js +2 -1
  72. package/features/graphqlClient/abstractions.js.map +1 -1
  73. package/features/graphqlClient/feature.js +14 -20
  74. package/features/graphqlClient/feature.js.map +1 -1
  75. package/features/graphqlClient/index.js +0 -2
  76. package/features/graphqlClient/types.js +0 -3
  77. package/features/localStorage/BrowserLocalStorageGateway.js +56 -63
  78. package/features/localStorage/BrowserLocalStorageGateway.js.map +1 -1
  79. package/features/localStorage/LocalStorage.js +27 -24
  80. package/features/localStorage/LocalStorage.js.map +1 -1
  81. package/features/localStorage/LocalStorageRepository.js +75 -88
  82. package/features/localStorage/LocalStorageRepository.js.map +1 -1
  83. package/features/localStorage/abstractions.js +5 -16
  84. package/features/localStorage/abstractions.js.map +1 -1
  85. package/features/localStorage/feature.js +17 -28
  86. package/features/localStorage/feature.js.map +1 -1
  87. package/features/localStorage/index.js +1 -3
  88. package/features/mainGraphQLClient/MainGraphQLClient.js +18 -14
  89. package/features/mainGraphQLClient/MainGraphQLClient.js.map +1 -1
  90. package/features/mainGraphQLClient/abstractions.js +2 -1
  91. package/features/mainGraphQLClient/abstractions.js.map +1 -1
  92. package/features/mainGraphQLClient/feature.js +11 -10
  93. package/features/mainGraphQLClient/feature.js.map +1 -1
  94. package/features/mainGraphQLClient/index.js +0 -2
  95. package/features/router/HistoryRouterGateway.js +75 -105
  96. package/features/router/HistoryRouterGateway.js.map +1 -1
  97. package/features/router/HistoryRouterGateway.test.js +184 -193
  98. package/features/router/HistoryRouterGateway.test.js.map +1 -1
  99. package/features/router/Route.js +38 -54
  100. package/features/router/Route.js.map +1 -1
  101. package/features/router/RouteUrl.js +84 -217
  102. package/features/router/RouteUrl.js.map +1 -1
  103. package/features/router/Router.js +67 -124
  104. package/features/router/Router.js.map +1 -1
  105. package/features/router/RouterPresenter.js +44 -49
  106. package/features/router/RouterPresenter.js.map +1 -1
  107. package/features/router/RouterRepository.js +103 -111
  108. package/features/router/RouterRepository.js.map +1 -1
  109. package/features/router/RouterRepository.test.js +119 -150
  110. package/features/router/RouterRepository.test.js.map +1 -1
  111. package/features/router/abstractions.js +4 -14
  112. package/features/router/abstractions.js.map +1 -1
  113. package/features/router/feature.js +13 -12
  114. package/features/router/feature.js.map +1 -1
  115. package/features/router/index.js +1 -3
  116. package/helpers/InterfaceGenerator/date.js +0 -3
  117. package/helpers/InterfaceGenerator/id.js +0 -3
  118. package/helpers/InterfaceGenerator/identity.js +0 -3
  119. package/helpers/InterfaceGenerator/index.js +0 -3
  120. package/helpers/InterfaceGenerator/numeric.js +0 -3
  121. package/helpers/InterfaceGenerator/truthful.js +0 -3
  122. package/hooks/useAutocomplete/index.js +0 -2
  123. package/hooks/useAutocomplete/useAutocomplete.js +12 -15
  124. package/hooks/useAutocomplete/useAutocomplete.js.map +1 -1
  125. package/hooks/useDataList/functions/getData.js +2 -1
  126. package/hooks/useDataList/functions/getData.js.map +1 -1
  127. package/hooks/useDataList/functions/getError.js +2 -1
  128. package/hooks/useDataList/functions/getError.js.map +1 -1
  129. package/hooks/useDataList/functions/getMeta.js +2 -1
  130. package/hooks/useDataList/functions/getMeta.js.map +1 -1
  131. package/hooks/useDataList/functions/index.js +0 -2
  132. package/hooks/useDataList/functions/searchDataByKey.js +9 -14
  133. package/hooks/useDataList/functions/searchDataByKey.js.map +1 -1
  134. package/hooks/useDataList/index.js +0 -2
  135. package/hooks/useDataList/useDataList.js +131 -152
  136. package/hooks/useDataList/useDataList.js.map +1 -1
  137. package/hooks/useDataList/utils/index.js +0 -2
  138. package/hooks/useDataList/utils/prepareLoadListParams.js +25 -34
  139. package/hooks/useDataList/utils/prepareLoadListParams.js.map +1 -1
  140. package/hooks/useHandler.js +12 -16
  141. package/hooks/useHandler.js.map +1 -1
  142. package/hooks/useHandlers.js +18 -20
  143. package/hooks/useHandlers.js.map +1 -1
  144. package/hooks/useRegisterLegacyPlugin.js +7 -6
  145. package/hooks/useRegisterLegacyPlugin.js.map +1 -1
  146. package/hooks/useUi.js +2 -3
  147. package/hooks/useUi.js.map +1 -1
  148. package/i18n/i18n.js +8 -4
  149. package/i18n/i18n.js.map +1 -1
  150. package/i18n/index.js +0 -2
  151. package/index.js +6 -11
  152. package/package.json +13 -13
  153. package/plugins/AddQuerySelectionPlugin.js +36 -61
  154. package/plugins/AddQuerySelectionPlugin.js.map +1 -1
  155. package/plugins/ApolloCacheObjectIdPlugin.js +12 -11
  156. package/plugins/ApolloCacheObjectIdPlugin.js.map +1 -1
  157. package/plugins/ApolloDynamicLink.js +20 -22
  158. package/plugins/ApolloDynamicLink.js.map +1 -1
  159. package/plugins/ApolloLinkPlugin.js +16 -15
  160. package/plugins/ApolloLinkPlugin.js.map +1 -1
  161. package/plugins/ConsoleLinkPlugin.js +19 -21
  162. package/plugins/ConsoleLinkPlugin.js.map +1 -1
  163. package/plugins/NetworkErrorLinkPlugin/ErrorOverlay.js +39 -45
  164. package/plugins/NetworkErrorLinkPlugin/ErrorOverlay.js.map +1 -1
  165. package/plugins/NetworkErrorLinkPlugin/GqlErrorOverlay.js +18 -22
  166. package/plugins/NetworkErrorLinkPlugin/GqlErrorOverlay.js.map +1 -1
  167. package/plugins/NetworkErrorLinkPlugin/LocalAwsLambdaTimeoutMessage.js +21 -29
  168. package/plugins/NetworkErrorLinkPlugin/LocalAwsLambdaTimeoutMessage.js.map +1 -1
  169. package/plugins/NetworkErrorLinkPlugin/StyledComponents.js +6 -15
  170. package/plugins/NetworkErrorLinkPlugin/StyledComponents.js.map +1 -1
  171. package/plugins/NetworkErrorLinkPlugin/Typography.js +9 -14
  172. package/plugins/NetworkErrorLinkPlugin/Typography.js.map +1 -1
  173. package/plugins/NetworkErrorLinkPlugin/assets/close_24px.js +19 -0
  174. package/plugins/NetworkErrorLinkPlugin/assets/close_24px.js.map +1 -0
  175. package/plugins/NetworkErrorLinkPlugin/createErrorOverlay.js +11 -18
  176. package/plugins/NetworkErrorLinkPlugin/createErrorOverlay.js.map +1 -1
  177. package/plugins/NetworkErrorLinkPlugin.js +41 -58
  178. package/plugins/NetworkErrorLinkPlugin.js.map +1 -1
  179. package/plugins/OmitTypenameLinkPlugin.js +9 -14
  180. package/plugins/OmitTypenameLinkPlugin.js.map +1 -1
  181. package/plugins/TenantHeaderLinkPlugin.js +23 -32
  182. package/plugins/TenantHeaderLinkPlugin.js.map +1 -1
  183. package/plugins/components/Image.js +8 -15
  184. package/plugins/components/Image.js.map +1 -1
  185. package/plugins/image.js +94 -133
  186. package/plugins/image.js.map +1 -1
  187. package/plugins/index.js +35 -59
  188. package/plugins/index.js.map +1 -1
  189. package/presentation/envConfig/useEnvConfig.js +4 -8
  190. package/presentation/envConfig/useEnvConfig.js.map +1 -1
  191. package/presentation/localStorage/index.js +0 -2
  192. package/presentation/localStorage/useLocalStorage.js +10 -16
  193. package/presentation/localStorage/useLocalStorage.js.map +1 -1
  194. package/presentation/localStorage/useLocalStorageValue.js +15 -13
  195. package/presentation/localStorage/useLocalStorageValue.js.map +1 -1
  196. package/presentation/localStorage/useLocalStorageValues.js +23 -30
  197. package/presentation/localStorage/useLocalStorageValues.js.map +1 -1
  198. package/presentation/router/RouteElementRegistry.js +22 -25
  199. package/presentation/router/RouteElementRegistry.js.map +1 -1
  200. package/presentation/router/abstractions.js +2 -1
  201. package/presentation/router/abstractions.js.map +1 -1
  202. package/presentation/router/components/Redirect.js +8 -10
  203. package/presentation/router/components/Redirect.js.map +1 -1
  204. package/presentation/router/components/RouteContent.js +14 -17
  205. package/presentation/router/components/RouteContent.js.map +1 -1
  206. package/presentation/router/components/RouteLink.js +11 -16
  207. package/presentation/router/components/RouteLink.js.map +1 -1
  208. package/presentation/router/components/SimpleLink.js +18 -24
  209. package/presentation/router/components/SimpleLink.js.map +1 -1
  210. package/presentation/router/hooks/useRoute.js +15 -23
  211. package/presentation/router/hooks/useRoute.js.map +1 -1
  212. package/presentation/router/hooks/useRouter.js +22 -23
  213. package/presentation/router/hooks/useRouter.js.map +1 -1
  214. package/presentation/router/index.js +0 -2
  215. package/presentation/router/types.js +0 -3
  216. package/react-butterfiles/Files.js +148 -217
  217. package/react-butterfiles/Files.js.map +1 -1
  218. package/react-butterfiles/index.js +2 -1
  219. package/react-butterfiles/index.js.map +1 -1
  220. package/react-butterfiles/utils/generateId.js +2 -3
  221. package/react-butterfiles/utils/generateId.js.map +1 -1
  222. package/react-butterfiles/utils/readFileContent.js +9 -13
  223. package/react-butterfiles/utils/readFileContent.js.map +1 -1
  224. package/renderApp.js +7 -6
  225. package/renderApp.js.map +1 -1
  226. package/router.js +0 -3
  227. package/rslib-runtime.js +14 -0
  228. package/rslib-runtime.js.map +1 -0
  229. package/shared/di/DiContainerProvider.js +8 -12
  230. package/shared/di/DiContainerProvider.js.map +1 -1
  231. package/shared/di/createFeature.js +7 -8
  232. package/shared/di/createFeature.js.map +1 -1
  233. package/shared/di/useFeature.js +7 -3
  234. package/shared/di/useFeature.js.map +1 -1
  235. package/static/svg/close_24px.33adaadc.svg +1 -0
  236. package/types.js +0 -3
  237. package/utils/createGenericContext.js +17 -21
  238. package/utils/createGenericContext.js.map +1 -1
  239. package/utils/createHashing.js +13 -16
  240. package/utils/createHashing.js.map +1 -1
  241. package/utils/index.js +0 -2
  242. package/utils/legacyPluginToReactComponent.js +11 -10
  243. package/utils/legacyPluginToReactComponent.js.map +1 -1
  244. package/components/index.js.map +0 -1
  245. package/errors/index.js.map +0 -1
  246. package/exports/admin/env-config.js.map +0 -1
  247. package/exports/admin/graphql-client.js.map +0 -1
  248. package/exports/admin/local-storage.js.map +0 -1
  249. package/exports/admin/router.js.map +0 -1
  250. package/exports/admin/security.js.map +0 -1
  251. package/exports/admin.js.map +0 -1
  252. package/features/envConfig/index.js.map +0 -1
  253. package/features/eventPublisher/index.js.map +0 -1
  254. package/features/graphqlClient/index.js.map +0 -1
  255. package/features/graphqlClient/types.js.map +0 -1
  256. package/features/localStorage/index.js.map +0 -1
  257. package/features/mainGraphQLClient/index.js.map +0 -1
  258. package/features/router/index.js.map +0 -1
  259. package/helpers/InterfaceGenerator/date.js.map +0 -1
  260. package/helpers/InterfaceGenerator/id.js.map +0 -1
  261. package/helpers/InterfaceGenerator/identity.js.map +0 -1
  262. package/helpers/InterfaceGenerator/index.js.map +0 -1
  263. package/helpers/InterfaceGenerator/numeric.js.map +0 -1
  264. package/helpers/InterfaceGenerator/truthful.js.map +0 -1
  265. package/hooks/useAutocomplete/index.js.map +0 -1
  266. package/hooks/useDataList/functions/index.js.map +0 -1
  267. package/hooks/useDataList/index.js.map +0 -1
  268. package/hooks/useDataList/utils/index.js.map +0 -1
  269. package/i18n/index.js.map +0 -1
  270. package/index.js.map +0 -1
  271. package/presentation/localStorage/index.js.map +0 -1
  272. package/presentation/router/index.js.map +0 -1
  273. package/presentation/router/types.js.map +0 -1
  274. package/router.js.map +0 -1
  275. package/types.js.map +0 -1
  276. package/utils/index.js.map +0 -1
@@ -3,37 +3,30 @@ import { autorun } from "mobx";
3
3
  import isEqual from "lodash/isEqual.js";
4
4
  import { LocalStorageFeature } from "../../features/localStorage/feature.js";
5
5
  import { useFeature } from "../../shared/di/useFeature.js";
6
-
7
- /**
8
- * Observes multiple keys in LocalStorage and returns an object of { key: value }.
9
- * Re-renders when any of the observed keys change.
10
- */
11
- export function useLocalStorageValues(keys) {
12
- const {
13
- localStorageService
14
- } = useFeature(LocalStorageFeature);
15
- const [values, setValues] = useState(() => {
16
- const initial = {};
17
- for (const key of keys) {
18
- initial[key] = localStorageService.get(key);
19
- }
20
- return initial;
21
- });
22
- const valuesRef = useRef(values);
23
- useEffect(() => {
24
- const dispose = autorun(() => {
25
- const snapshot = {};
26
- for (const key of keys) {
27
- snapshot[key] = localStorageService.get(key);
28
- }
29
- if (!isEqual(snapshot, valuesRef.current)) {
30
- setValues(snapshot);
31
- valuesRef.current = snapshot;
32
- }
6
+ function useLocalStorageValues(keys) {
7
+ const { localStorageService } = useFeature(LocalStorageFeature);
8
+ const [values, setValues] = useState(()=>{
9
+ const initial = {};
10
+ for (const key of keys)initial[key] = localStorageService.get(key);
11
+ return initial;
33
12
  });
34
- return () => dispose();
35
- }, [localStorageService, keys.join(",")]);
36
- return values;
13
+ const valuesRef = useRef(values);
14
+ useEffect(()=>{
15
+ const dispose = autorun(()=>{
16
+ const snapshot = {};
17
+ for (const key of keys)snapshot[key] = localStorageService.get(key);
18
+ if (!isEqual(snapshot, valuesRef.current)) {
19
+ setValues(snapshot);
20
+ valuesRef.current = snapshot;
21
+ }
22
+ });
23
+ return ()=>dispose();
24
+ }, [
25
+ localStorageService,
26
+ keys.join(",")
27
+ ]);
28
+ return values;
37
29
  }
30
+ export { useLocalStorageValues };
38
31
 
39
32
  //# sourceMappingURL=useLocalStorageValues.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","useState","autorun","isEqual","LocalStorageFeature","useFeature","useLocalStorageValues","keys","localStorageService","values","setValues","initial","key","get","valuesRef","dispose","snapshot","current","join"],"sources":["useLocalStorageValues.ts"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport { autorun } from \"mobx\";\nimport isEqual from \"lodash/isEqual.js\";\nimport { LocalStorageFeature } from \"~/features/localStorage/feature.js\";\nimport { useFeature } from \"~/shared/di/useFeature.js\";\n\n/**\n * Observes multiple keys in LocalStorage and returns an object of { key: value }.\n * Re-renders when any of the observed keys change.\n */\nexport function useLocalStorageValues<T extends Record<string, any>>(\n keys: (keyof T & string)[]\n): Partial<T> {\n const { localStorageService } = useFeature(LocalStorageFeature);\n\n const [values, setValues] = useState<Partial<T>>(() => {\n const initial: Partial<T> = {};\n for (const key of keys) {\n initial[key] = localStorageService.get<any>(key);\n }\n return initial;\n });\n\n const valuesRef = useRef(values);\n\n useEffect(() => {\n const dispose = autorun(() => {\n const snapshot: Partial<T> = {};\n for (const key of keys) {\n snapshot[key] = localStorageService.get<any>(key);\n }\n\n if (!isEqual(snapshot, valuesRef.current)) {\n setValues(snapshot);\n valuesRef.current = snapshot;\n }\n });\n return () => dispose();\n }, [localStorageService, keys.join(\",\")]);\n\n return values;\n}\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACnD,SAASC,OAAO,QAAQ,MAAM;AAC9B,OAAOC,OAAO,MAAM,mBAAmB;AACvC,SAASC,mBAAmB;AAC5B,SAASC,UAAU;;AAEnB;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CACjCC,IAA0B,EAChB;EACV,MAAM;IAAEC;EAAoB,CAAC,GAAGH,UAAU,CAACD,mBAAmB,CAAC;EAE/D,MAAM,CAACK,MAAM,EAAEC,SAAS,CAAC,GAAGT,QAAQ,CAAa,MAAM;IACnD,MAAMU,OAAmB,GAAG,CAAC,CAAC;IAC9B,KAAK,MAAMC,GAAG,IAAIL,IAAI,EAAE;MACpBI,OAAO,CAACC,GAAG,CAAC,GAAGJ,mBAAmB,CAACK,GAAG,CAAMD,GAAG,CAAC;IACpD;IACA,OAAOD,OAAO;EAClB,CAAC,CAAC;EAEF,MAAMG,SAAS,GAAGd,MAAM,CAACS,MAAM,CAAC;EAEhCV,SAAS,CAAC,MAAM;IACZ,MAAMgB,OAAO,GAAGb,OAAO,CAAC,MAAM;MAC1B,MAAMc,QAAoB,GAAG,CAAC,CAAC;MAC/B,KAAK,MAAMJ,GAAG,IAAIL,IAAI,EAAE;QACpBS,QAAQ,CAACJ,GAAG,CAAC,GAAGJ,mBAAmB,CAACK,GAAG,CAAMD,GAAG,CAAC;MACrD;MAEA,IAAI,CAACT,OAAO,CAACa,QAAQ,EAAEF,SAAS,CAACG,OAAO,CAAC,EAAE;QACvCP,SAAS,CAACM,QAAQ,CAAC;QACnBF,SAAS,CAACG,OAAO,GAAGD,QAAQ;MAChC;IACJ,CAAC,CAAC;IACF,OAAO,MAAMD,OAAO,CAAC,CAAC;EAC1B,CAAC,EAAE,CAACP,mBAAmB,EAAED,IAAI,CAACW,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;EAEzC,OAAOT,MAAM;AACjB","ignoreList":[]}
1
+ {"version":3,"file":"presentation/localStorage/useLocalStorageValues.js","sources":["../../../src/presentation/localStorage/useLocalStorageValues.ts"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport { autorun } from \"mobx\";\nimport isEqual from \"lodash/isEqual.js\";\nimport { LocalStorageFeature } from \"~/features/localStorage/feature.js\";\nimport { useFeature } from \"~/shared/di/useFeature.js\";\n\n/**\n * Observes multiple keys in LocalStorage and returns an object of { key: value }.\n * Re-renders when any of the observed keys change.\n */\nexport function useLocalStorageValues<T extends Record<string, any>>(\n keys: (keyof T & string)[]\n): Partial<T> {\n const { localStorageService } = useFeature(LocalStorageFeature);\n\n const [values, setValues] = useState<Partial<T>>(() => {\n const initial: Partial<T> = {};\n for (const key of keys) {\n initial[key] = localStorageService.get<any>(key);\n }\n return initial;\n });\n\n const valuesRef = useRef(values);\n\n useEffect(() => {\n const dispose = autorun(() => {\n const snapshot: Partial<T> = {};\n for (const key of keys) {\n snapshot[key] = localStorageService.get<any>(key);\n }\n\n if (!isEqual(snapshot, valuesRef.current)) {\n setValues(snapshot);\n valuesRef.current = snapshot;\n }\n });\n return () => dispose();\n }, [localStorageService, keys.join(\",\")]);\n\n return values;\n}\n"],"names":["useLocalStorageValues","keys","localStorageService","useFeature","LocalStorageFeature","values","setValues","useState","initial","key","valuesRef","useRef","useEffect","dispose","autorun","snapshot","isEqual"],"mappings":";;;;;AAUO,SAASA,sBACZC,IAA0B;IAE1B,MAAM,EAAEC,mBAAmB,EAAE,GAAGC,WAAWC;IAE3C,MAAM,CAACC,QAAQC,UAAU,GAAGC,SAAqB;QAC7C,MAAMC,UAAsB,CAAC;QAC7B,KAAK,MAAMC,OAAOR,KACdO,OAAO,CAACC,IAAI,GAAGP,oBAAoB,GAAG,CAAMO;QAEhD,OAAOD;IACX;IAEA,MAAME,YAAYC,OAAON;IAEzBO,UAAU;QACN,MAAMC,UAAUC,QAAQ;YACpB,MAAMC,WAAuB,CAAC;YAC9B,KAAK,MAAMN,OAAOR,KACdc,QAAQ,CAACN,IAAI,GAAGP,oBAAoB,GAAG,CAAMO;YAGjD,IAAI,CAACO,QAAQD,UAAUL,UAAU,OAAO,GAAG;gBACvCJ,UAAUS;gBACVL,UAAU,OAAO,GAAGK;YACxB;QACJ;QACA,OAAO,IAAMF;IACjB,GAAG;QAACX;QAAqBD,KAAK,IAAI,CAAC;KAAK;IAExC,OAAOI;AACX"}
@@ -1,32 +1,29 @@
1
1
  import { createImplementation } from "@webiny/di";
2
2
  import { RouteElementRegistry } from "./abstractions.js";
3
3
  class RouteElementRegistryImplementation {
4
- elements = new Map();
5
-
6
- /** Register a React element for a given route. */
7
- register(routeName, element) {
8
- this.elements.set(routeName, element);
9
- }
10
-
11
- /** Get the element for a matched route by name. */
12
- getElement(routeName) {
13
- return this.elements.get(routeName) ?? null;
14
- }
15
-
16
- /** Clear all registered elements. Useful in tests or hot reloads. */
17
- clear() {
18
- this.elements.clear();
19
- }
20
-
21
- /** List all registered route names. */
22
- list() {
23
- return [...this.elements.keys()];
24
- }
4
+ register(routeName, element) {
5
+ this.elements.set(routeName, element);
6
+ }
7
+ getElement(routeName) {
8
+ return this.elements.get(routeName) ?? null;
9
+ }
10
+ clear() {
11
+ this.elements.clear();
12
+ }
13
+ list() {
14
+ return [
15
+ ...this.elements.keys()
16
+ ];
17
+ }
18
+ constructor(){
19
+ this.elements = new Map();
20
+ }
25
21
  }
26
- export const DefaultRouteElementRegistry = createImplementation({
27
- implementation: RouteElementRegistryImplementation,
28
- abstraction: RouteElementRegistry,
29
- dependencies: []
22
+ const DefaultRouteElementRegistry = createImplementation({
23
+ implementation: RouteElementRegistryImplementation,
24
+ abstraction: RouteElementRegistry,
25
+ dependencies: []
30
26
  });
27
+ export { DefaultRouteElementRegistry };
31
28
 
32
29
  //# sourceMappingURL=RouteElementRegistry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createImplementation","RouteElementRegistry","RouteElementRegistryImplementation","elements","Map","register","routeName","element","set","getElement","get","clear","list","keys","DefaultRouteElementRegistry","implementation","abstraction","dependencies"],"sources":["RouteElementRegistry.ts"],"sourcesContent":["import React from \"react\";\nimport { createImplementation } from \"@webiny/di\";\nimport { RouteElementRegistry } from \"./abstractions.js\";\n\nclass RouteElementRegistryImplementation {\n private readonly elements = new Map<string, React.ReactNode>();\n\n /** Register a React element for a given route. */\n register(routeName: string, element: React.ReactNode): void {\n this.elements.set(routeName, element);\n }\n\n /** Get the element for a matched route by name. */\n getElement(routeName: string): React.ReactNode | null {\n return this.elements.get(routeName) ?? null;\n }\n\n /** Clear all registered elements. Useful in tests or hot reloads. */\n clear(): void {\n this.elements.clear();\n }\n\n /** List all registered route names. */\n list(): string[] {\n return [...this.elements.keys()];\n }\n}\n\nexport const DefaultRouteElementRegistry = createImplementation({\n implementation: RouteElementRegistryImplementation,\n abstraction: RouteElementRegistry,\n dependencies: []\n});\n"],"mappings":"AACA,SAASA,oBAAoB,QAAQ,YAAY;AACjD,SAASC,oBAAoB;AAE7B,MAAMC,kCAAkC,CAAC;EACpBC,QAAQ,GAAG,IAAIC,GAAG,CAA0B,CAAC;;EAE9D;EACAC,QAAQA,CAACC,SAAiB,EAAEC,OAAwB,EAAQ;IACxD,IAAI,CAACJ,QAAQ,CAACK,GAAG,CAACF,SAAS,EAAEC,OAAO,CAAC;EACzC;;EAEA;EACAE,UAAUA,CAACH,SAAiB,EAA0B;IAClD,OAAO,IAAI,CAACH,QAAQ,CAACO,GAAG,CAACJ,SAAS,CAAC,IAAI,IAAI;EAC/C;;EAEA;EACAK,KAAKA,CAAA,EAAS;IACV,IAAI,CAACR,QAAQ,CAACQ,KAAK,CAAC,CAAC;EACzB;;EAEA;EACAC,IAAIA,CAAA,EAAa;IACb,OAAO,CAAC,GAAG,IAAI,CAACT,QAAQ,CAACU,IAAI,CAAC,CAAC,CAAC;EACpC;AACJ;AAEA,OAAO,MAAMC,2BAA2B,GAAGd,oBAAoB,CAAC;EAC5De,cAAc,EAAEb,kCAAkC;EAClDc,WAAW,EAAEf,oBAAoB;EACjCgB,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"presentation/router/RouteElementRegistry.js","sources":["../../../src/presentation/router/RouteElementRegistry.ts"],"sourcesContent":["import React from \"react\";\nimport { createImplementation } from \"@webiny/di\";\nimport { RouteElementRegistry } from \"./abstractions.js\";\n\nclass RouteElementRegistryImplementation {\n private readonly elements = new Map<string, React.ReactNode>();\n\n /** Register a React element for a given route. */\n register(routeName: string, element: React.ReactNode): void {\n this.elements.set(routeName, element);\n }\n\n /** Get the element for a matched route by name. */\n getElement(routeName: string): React.ReactNode | null {\n return this.elements.get(routeName) ?? null;\n }\n\n /** Clear all registered elements. Useful in tests or hot reloads. */\n clear(): void {\n this.elements.clear();\n }\n\n /** List all registered route names. */\n list(): string[] {\n return [...this.elements.keys()];\n }\n}\n\nexport const DefaultRouteElementRegistry = createImplementation({\n implementation: RouteElementRegistryImplementation,\n abstraction: RouteElementRegistry,\n dependencies: []\n});\n"],"names":["RouteElementRegistryImplementation","routeName","element","Map","DefaultRouteElementRegistry","createImplementation","RouteElementRegistry"],"mappings":";;AAIA,MAAMA;IAIF,SAASC,SAAiB,EAAEC,OAAwB,EAAQ;QACxD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAACD,WAAWC;IACjC;IAGA,WAAWD,SAAiB,EAA0B;QAClD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAACA,cAAc;IAC3C;IAGA,QAAc;QACV,IAAI,CAAC,QAAQ,CAAC,KAAK;IACvB;IAGA,OAAiB;QACb,OAAO;eAAI,IAAI,CAAC,QAAQ,CAAC,IAAI;SAAG;IACpC;;aApBiB,QAAQ,GAAG,IAAIE;;AAqBpC;AAEO,MAAMC,8BAA8BC,qBAAqB;IAC5D,gBAAgBL;IAChB,aAAaM;IACb,cAAc,EAAE;AACpB"}
@@ -1,4 +1,5 @@
1
1
  import { Abstraction } from "@webiny/di";
2
- export const RouteElementRegistry = new Abstraction("RouteElementRegistry");
2
+ const RouteElementRegistry = new Abstraction("RouteElementRegistry");
3
+ export { RouteElementRegistry };
3
4
 
4
5
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Abstraction","RouteElementRegistry"],"sources":["abstractions.ts"],"sourcesContent":["import React from \"react\";\nimport { Abstraction } from \"@webiny/di\";\n\ninterface IRouteElementRegistry {\n register(name: string, element: React.ReactElement): void;\n getElement(routeName: string): React.ReactNode | null;\n clear(): void;\n list(): string[];\n}\n\nexport const RouteElementRegistry = new Abstraction<IRouteElementRegistry>(\"RouteElementRegistry\");\n\nexport namespace RouteElementRegistry {\n export type Interface = IRouteElementRegistry;\n}\n"],"mappings":"AACA,SAASA,WAAW,QAAQ,YAAY;AASxC,OAAO,MAAMC,oBAAoB,GAAG,IAAID,WAAW,CAAwB,sBAAsB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"presentation/router/abstractions.js","sources":["../../../src/presentation/router/abstractions.ts"],"sourcesContent":["import React from \"react\";\nimport { Abstraction } from \"@webiny/di\";\n\ninterface IRouteElementRegistry {\n register(name: string, element: React.ReactElement): void;\n getElement(routeName: string): React.ReactNode | null;\n clear(): void;\n list(): string[];\n}\n\nexport const RouteElementRegistry = new Abstraction<IRouteElementRegistry>(\"RouteElementRegistry\");\n\nexport namespace RouteElementRegistry {\n export type Interface = IRouteElementRegistry;\n}\n"],"names":["RouteElementRegistry","Abstraction"],"mappings":";AAUO,MAAMA,uBAAuB,IAAIC,YAAmC"}
@@ -1,15 +1,13 @@
1
1
  import { useEffect } from "react";
2
2
  import { useRouter } from "../../../router.js";
3
- export const RedirectComponent = props => {
4
- const router = useRouter();
5
- const {
6
- route,
7
- ...rest
8
- } = props;
9
- useEffect(() => {
10
- router.goToRoute(route, rest.params);
11
- }, []);
12
- return null;
3
+ const RedirectComponent = (props)=>{
4
+ const router = useRouter();
5
+ const { route, ...rest } = props;
6
+ useEffect(()=>{
7
+ router.goToRoute(route, rest.params);
8
+ }, []);
9
+ return null;
13
10
  };
11
+ export { RedirectComponent };
14
12
 
15
13
  //# sourceMappingURL=Redirect.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRouter","RedirectComponent","props","router","route","rest","goToRoute","params"],"sources":["Redirect.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport type { Route, RouteParamsDefinition, RouteParamsInfer } from \"~/features/router/Route.js\";\nimport { useRouter } from \"~/router.js\";\nimport type { RequiredKeysOf } from \"type-fest\";\n\nexport type RedirectProps<TParams extends RouteParamsDefinition | undefined> = [\n TParams extends RouteParamsDefinition\n ? RequiredKeysOf<RouteParamsInfer<TParams>> extends never\n ? { route: Route<TParams>; params?: RouteParamsInfer<TParams> }\n : { route: Route<TParams>; params: RouteParamsInfer<TParams> }\n : { route: Route<TParams> }\n][0];\n\nexport const RedirectComponent = <TParams extends RouteParamsDefinition | undefined>(\n props: RedirectProps<TParams>\n) => {\n const router = useRouter();\n const { route, ...rest } = props as any;\n\n useEffect(() => {\n router.goToRoute(route, rest.params);\n }, []);\n\n return null;\n};\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AAEjC,SAASC,SAAS;AAWlB,OAAO,MAAMC,iBAAiB,GAC1BC,KAA6B,IAC5B;EACD,MAAMC,MAAM,GAAGH,SAAS,CAAC,CAAC;EAC1B,MAAM;IAAEI,KAAK;IAAE,GAAGC;EAAK,CAAC,GAAGH,KAAY;EAEvCH,SAAS,CAAC,MAAM;IACZI,MAAM,CAACG,SAAS,CAACF,KAAK,EAAEC,IAAI,CAACE,MAAM,CAAC;EACxC,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO,IAAI;AACf,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"presentation/router/components/Redirect.js","sources":["../../../../src/presentation/router/components/Redirect.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport type { Route, RouteParamsDefinition, RouteParamsInfer } from \"~/features/router/Route.js\";\nimport { useRouter } from \"~/router.js\";\nimport type { RequiredKeysOf } from \"type-fest\";\n\nexport type RedirectProps<TParams extends RouteParamsDefinition | undefined> = [\n TParams extends RouteParamsDefinition\n ? RequiredKeysOf<RouteParamsInfer<TParams>> extends never\n ? { route: Route<TParams>; params?: RouteParamsInfer<TParams> }\n : { route: Route<TParams>; params: RouteParamsInfer<TParams> }\n : { route: Route<TParams> }\n][0];\n\nexport const RedirectComponent = <TParams extends RouteParamsDefinition | undefined>(\n props: RedirectProps<TParams>\n) => {\n const router = useRouter();\n const { route, ...rest } = props as any;\n\n useEffect(() => {\n router.goToRoute(route, rest.params);\n }, []);\n\n return null;\n};\n"],"names":["RedirectComponent","props","router","useRouter","route","rest","useEffect"],"mappings":";;AAaO,MAAMA,oBAAoB,CAC7BC;IAEA,MAAMC,SAASC;IACf,MAAM,EAAEC,KAAK,EAAE,GAAGC,MAAM,GAAGJ;IAE3BK,UAAU;QACNJ,OAAO,SAAS,CAACE,OAAOC,KAAK,MAAM;IACvC,GAAG,EAAE;IAEL,OAAO;AACX"}
@@ -1,23 +1,20 @@
1
- import React from "react";
1
+ import react from "react";
2
2
  import { DevToolsSection } from "@webiny/react-properties";
3
3
  import { RouteElementRegistry, useRoute } from "../index.js";
4
4
  import { useContainer } from "../../../shared/di/DiContainerProvider.js";
5
- export const RouteContent = () => {
6
- const {
7
- route
8
- } = useRoute();
9
- const container = useContainer();
10
- const elementRegistry = container.resolve(RouteElementRegistry);
11
- if (!route) {
12
- return null;
13
- }
14
- const element = elementRegistry.getElement(route.name);
15
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DevToolsSection, {
16
- name: "Current Route",
17
- group: "Router",
18
- data: route,
19
- views: "raw"
20
- }), element ?? null);
5
+ const RouteContent = ()=>{
6
+ const { route } = useRoute();
7
+ const container = useContainer();
8
+ const elementRegistry = container.resolve(RouteElementRegistry);
9
+ if (!route) return null;
10
+ const element = elementRegistry.getElement(route.name);
11
+ return /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(DevToolsSection, {
12
+ name: "Current Route",
13
+ group: "Router",
14
+ data: route,
15
+ views: "raw"
16
+ }), element ?? null);
21
17
  };
18
+ export { RouteContent };
22
19
 
23
20
  //# sourceMappingURL=RouteContent.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","DevToolsSection","RouteElementRegistry","useRoute","useContainer","RouteContent","route","container","elementRegistry","resolve","element","getElement","name","createElement","Fragment","group","data","views"],"sources":["RouteContent.tsx"],"sourcesContent":["import React from \"react\";\nimport { DevToolsSection } from \"@webiny/react-properties\";\nimport { RouteElementRegistry, useRoute } from \"~/presentation/router/index.js\";\nimport { useContainer } from \"~/shared/di/DiContainerProvider.js\";\n\nexport const RouteContent = () => {\n const { route } = useRoute();\n const container = useContainer();\n const elementRegistry = container.resolve(RouteElementRegistry);\n\n if (!route) {\n return null;\n }\n\n const element = elementRegistry.getElement(route.name);\n\n return (\n <>\n <DevToolsSection name={\"Current Route\"} group={\"Router\"} data={route} views={\"raw\"} />\n {element ?? null}\n </>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,QAAQ,0BAA0B;AAC1D,SAASC,oBAAoB,EAAEC,QAAQ;AACvC,SAASC,YAAY;AAErB,OAAO,MAAMC,YAAY,GAAGA,CAAA,KAAM;EAC9B,MAAM;IAAEC;EAAM,CAAC,GAAGH,QAAQ,CAAC,CAAC;EAC5B,MAAMI,SAAS,GAAGH,YAAY,CAAC,CAAC;EAChC,MAAMI,eAAe,GAAGD,SAAS,CAACE,OAAO,CAACP,oBAAoB,CAAC;EAE/D,IAAI,CAACI,KAAK,EAAE;IACR,OAAO,IAAI;EACf;EAEA,MAAMI,OAAO,GAAGF,eAAe,CAACG,UAAU,CAACL,KAAK,CAACM,IAAI,CAAC;EAEtD,oBACIZ,KAAA,CAAAa,aAAA,CAAAb,KAAA,CAAAc,QAAA,qBACId,KAAA,CAAAa,aAAA,CAACZ,eAAe;IAACW,IAAI,EAAE,eAAgB;IAACG,KAAK,EAAE,QAAS;IAACC,IAAI,EAAEV,KAAM;IAACW,KAAK,EAAE;EAAM,CAAE,CAAC,EACrFP,OAAO,IAAI,IACd,CAAC;AAEX,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"presentation/router/components/RouteContent.js","sources":["../../../../src/presentation/router/components/RouteContent.tsx"],"sourcesContent":["import React from \"react\";\nimport { DevToolsSection } from \"@webiny/react-properties\";\nimport { RouteElementRegistry, useRoute } from \"~/presentation/router/index.js\";\nimport { useContainer } from \"~/shared/di/DiContainerProvider.js\";\n\nexport const RouteContent = () => {\n const { route } = useRoute();\n const container = useContainer();\n const elementRegistry = container.resolve(RouteElementRegistry);\n\n if (!route) {\n return null;\n }\n\n const element = elementRegistry.getElement(route.name);\n\n return (\n <>\n <DevToolsSection name={\"Current Route\"} group={\"Router\"} data={route} views={\"raw\"} />\n {element ?? null}\n </>\n );\n};\n"],"names":["RouteContent","route","useRoute","container","useContainer","elementRegistry","RouteElementRegistry","element","DevToolsSection"],"mappings":";;;;AAKO,MAAMA,eAAe;IACxB,MAAM,EAAEC,KAAK,EAAE,GAAGC;IAClB,MAAMC,YAAYC;IAClB,MAAMC,kBAAkBF,UAAU,OAAO,CAACG;IAE1C,IAAI,CAACL,OACD,OAAO;IAGX,MAAMM,UAAUF,gBAAgB,UAAU,CAACJ,MAAM,IAAI;IAErD,OAAO,WAAP,GACI,wDACI,oBAACO,iBAAeA;QAAC,MAAM;QAAiB,OAAO;QAAU,MAAMP;QAAO,OAAO;QAC5EM,WAAW;AAGxB"}
@@ -1,22 +1,17 @@
1
- import React from "react";
1
+ import react from "react";
2
2
  import { makeDecoratable } from "@webiny/react-composition";
3
3
  import { SimpleLink } from "./SimpleLink.js";
4
4
  import { useRouter } from "../../../router.js";
5
-
6
- // The props are generic over the Route's schema.
7
-
8
- export const RouteLink = makeDecoratable("RouteLink", props => {
9
- const router = useRouter();
10
- const {
11
- children,
12
- route,
13
- ...rest
14
- } = props;
15
- const href = rest.params ? router.getLink(route, rest.params) : router.getLink(route);
16
- return /*#__PURE__*/React.createElement(SimpleLink, Object.assign({
17
- to: href
18
- }, rest), children);
5
+ const RouteLink = makeDecoratable("RouteLink", (props)=>{
6
+ const router = useRouter();
7
+ const { children, route, ...rest } = props;
8
+ const href = rest.params ? router.getLink(route, rest.params) : router.getLink(route);
9
+ return /*#__PURE__*/ react.createElement(SimpleLink, {
10
+ to: href,
11
+ ...rest
12
+ }, children);
19
13
  });
20
- export const RouteLinkComponent = RouteLink;
14
+ const RouteLinkComponent = RouteLink;
15
+ export { RouteLink, RouteLinkComponent };
21
16
 
22
17
  //# sourceMappingURL=RouteLink.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","makeDecoratable","SimpleLink","useRouter","RouteLink","props","router","children","route","rest","href","params","getLink","createElement","Object","assign","to","RouteLinkComponent"],"sources":["RouteLink.tsx"],"sourcesContent":["import React from \"react\";\nimport { makeDecoratable } from \"@webiny/react-composition\";\nimport type { Route, RouteParamsDefinition, RouteParamsInfer } from \"~/features/router/Route.js\";\nimport { SimpleLink } from \"./SimpleLink.js\";\nimport { useRouter } from \"~/router.js\";\n\ntype BaseAnchorAttributes = Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, \"href\">;\n\n// The props are generic over the Route's schema.\nexport type RouteLinkProps<TParams extends RouteParamsDefinition | undefined> = [\n TParams extends RouteParamsDefinition\n ? {\n route: Route<TParams>;\n params: RouteParamsInfer<TParams>;\n }\n : { route: Route<TParams> }\n][0] &\n BaseAnchorAttributes;\n\nexport const RouteLink = makeDecoratable(\n \"RouteLink\",\n <TParams extends RouteParamsDefinition | undefined>(props: RouteLinkProps<TParams>) => {\n const router = useRouter();\n\n const { children, route, ...rest } = props as any;\n\n const href = rest.params ? router.getLink(route!, rest.params) : router.getLink(route!);\n\n return (\n <SimpleLink to={href} {...rest}>\n {children}\n </SimpleLink>\n );\n }\n);\n\nexport const RouteLinkComponent = RouteLink;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,QAAQ,2BAA2B;AAE3D,SAASC,UAAU;AACnB,SAASC,SAAS;;AAIlB;;AAWA,OAAO,MAAMC,SAAS,GAAGH,eAAe,CACpC,WAAW,EACyCI,KAA8B,IAAK;EACnF,MAAMC,MAAM,GAAGH,SAAS,CAAC,CAAC;EAE1B,MAAM;IAAEI,QAAQ;IAAEC,KAAK;IAAE,GAAGC;EAAK,CAAC,GAAGJ,KAAY;EAEjD,MAAMK,IAAI,GAAGD,IAAI,CAACE,MAAM,GAAGL,MAAM,CAACM,OAAO,CAACJ,KAAK,EAAGC,IAAI,CAACE,MAAM,CAAC,GAAGL,MAAM,CAACM,OAAO,CAACJ,KAAM,CAAC;EAEvF,oBACIR,KAAA,CAAAa,aAAA,CAACX,UAAU,EAAAY,MAAA,CAAAC,MAAA;IAACC,EAAE,EAAEN;EAAK,GAAKD,IAAI,GACzBF,QACO,CAAC;AAErB,CACJ,CAAC;AAED,OAAO,MAAMU,kBAAkB,GAAGb,SAAS","ignoreList":[]}
1
+ {"version":3,"file":"presentation/router/components/RouteLink.js","sources":["../../../../src/presentation/router/components/RouteLink.tsx"],"sourcesContent":["import React from \"react\";\nimport { makeDecoratable } from \"@webiny/react-composition\";\nimport type { Route, RouteParamsDefinition, RouteParamsInfer } from \"~/features/router/Route.js\";\nimport { SimpleLink } from \"./SimpleLink.js\";\nimport { useRouter } from \"~/router.js\";\n\ntype BaseAnchorAttributes = Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, \"href\">;\n\n// The props are generic over the Route's schema.\nexport type RouteLinkProps<TParams extends RouteParamsDefinition | undefined> = [\n TParams extends RouteParamsDefinition\n ? {\n route: Route<TParams>;\n params: RouteParamsInfer<TParams>;\n }\n : { route: Route<TParams> }\n][0] &\n BaseAnchorAttributes;\n\nexport const RouteLink = makeDecoratable(\n \"RouteLink\",\n <TParams extends RouteParamsDefinition | undefined>(props: RouteLinkProps<TParams>) => {\n const router = useRouter();\n\n const { children, route, ...rest } = props as any;\n\n const href = rest.params ? router.getLink(route!, rest.params) : router.getLink(route!);\n\n return (\n <SimpleLink to={href} {...rest}>\n {children}\n </SimpleLink>\n );\n }\n);\n\nexport const RouteLinkComponent = RouteLink;\n"],"names":["RouteLink","makeDecoratable","props","router","useRouter","children","route","rest","href","SimpleLink","RouteLinkComponent"],"mappings":";;;;AAmBO,MAAMA,YAAYC,gBACrB,aACA,CAAoDC;IAChD,MAAMC,SAASC;IAEf,MAAM,EAAEC,QAAQ,EAAEC,KAAK,EAAE,GAAGC,MAAM,GAAGL;IAErC,MAAMM,OAAOD,KAAK,MAAM,GAAGJ,OAAO,OAAO,CAACG,OAAQC,KAAK,MAAM,IAAIJ,OAAO,OAAO,CAACG;IAEhF,OAAO,WAAP,GACI,oBAACG,YAAUA;QAAC,IAAID;QAAO,GAAGD,IAAI;OACzBF;AAGb;AAGG,MAAMK,qBAAqBV"}
@@ -1,30 +1,24 @@
1
- import React from "react";
1
+ import react from "react";
2
2
  import { makeDecoratable } from "@webiny/react-composition";
3
3
  import { RouterGateway } from "../../../features/router/abstractions.js";
4
4
  import { useContainer } from "../../../shared/di/DiContainerProvider.js";
5
- export const SimpleLink = makeDecoratable("SimpleLink", ({
6
- children,
7
- to,
8
- ...rest
9
- }) => {
10
- const container = useContainer();
11
- const routerGateway = container.resolve(RouterGateway);
12
- const handleClick = event => {
13
- // Respect cmd+click / ctrl+click / middle click → open in new tab
14
- if (event.defaultPrevented || event.button !== 0 || event.metaKey || event.altKey || event.ctrlKey || event.shiftKey || rest.target === "_blank") {
15
- return;
16
- }
17
- event.preventDefault();
18
- routerGateway.pushState(to);
19
- };
20
- const onClick = rest.onClick ?? handleClick;
21
- return /*#__PURE__*/React.createElement("a", Object.assign({
22
- href: to,
23
- rel: "noreferrer noopener"
24
- }, rest, {
25
- onClick: onClick
26
- }), children);
5
+ const SimpleLink = makeDecoratable("SimpleLink", ({ children, to, ...rest })=>{
6
+ const container = useContainer();
7
+ const routerGateway = container.resolve(RouterGateway);
8
+ const handleClick = (event)=>{
9
+ if (event.defaultPrevented || 0 !== event.button || event.metaKey || event.altKey || event.ctrlKey || event.shiftKey || "_blank" === rest.target) return;
10
+ event.preventDefault();
11
+ routerGateway.pushState(to);
12
+ };
13
+ const onClick = rest.onClick ?? handleClick;
14
+ return /*#__PURE__*/ react.createElement("a", {
15
+ href: to,
16
+ rel: "noreferrer noopener",
17
+ ...rest,
18
+ onClick: onClick
19
+ }, children);
27
20
  });
28
- export const LinkComponent = SimpleLink;
21
+ const LinkComponent = SimpleLink;
22
+ export { LinkComponent, SimpleLink };
29
23
 
30
24
  //# sourceMappingURL=SimpleLink.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","makeDecoratable","RouterGateway","useContainer","SimpleLink","children","to","rest","container","routerGateway","resolve","handleClick","event","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","target","preventDefault","pushState","onClick","createElement","Object","assign","href","rel","LinkComponent"],"sources":["SimpleLink.tsx"],"sourcesContent":["import React from \"react\";\nimport { makeDecoratable } from \"@webiny/react-composition\";\nimport { RouterGateway } from \"~/features/router/abstractions.js\";\nimport { useContainer } from \"~/shared/di/DiContainerProvider.js\";\n\ntype BaseAnchorAttributes = Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, \"href\">;\n\nexport type SimpleLinkProps = BaseAnchorAttributes & {\n to: string;\n};\n\nexport const SimpleLink = makeDecoratable(\n \"SimpleLink\",\n ({ children, to, ...rest }: SimpleLinkProps) => {\n const container = useContainer();\n\n const routerGateway = container.resolve(RouterGateway);\n\n const handleClick = (event: React.MouseEvent<HTMLAnchorElement>) => {\n // Respect cmd+click / ctrl+click / middle click → open in new tab\n if (\n event.defaultPrevented ||\n event.button !== 0 ||\n event.metaKey ||\n event.altKey ||\n event.ctrlKey ||\n event.shiftKey ||\n rest.target === \"_blank\"\n ) {\n return;\n }\n\n event.preventDefault();\n routerGateway.pushState(to);\n };\n\n const onClick = rest.onClick ?? handleClick;\n\n return (\n <a href={to} rel=\"noreferrer noopener\" {...rest} onClick={onClick}>\n {children}\n </a>\n );\n }\n);\n\nexport const LinkComponent = SimpleLink;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,QAAQ,2BAA2B;AAC3D,SAASC,aAAa;AACtB,SAASC,YAAY;AAQrB,OAAO,MAAMC,UAAU,GAAGH,eAAe,CACrC,YAAY,EACZ,CAAC;EAAEI,QAAQ;EAAEC,EAAE;EAAE,GAAGC;AAAsB,CAAC,KAAK;EAC5C,MAAMC,SAAS,GAAGL,YAAY,CAAC,CAAC;EAEhC,MAAMM,aAAa,GAAGD,SAAS,CAACE,OAAO,CAACR,aAAa,CAAC;EAEtD,MAAMS,WAAW,GAAIC,KAA0C,IAAK;IAChE;IACA,IACIA,KAAK,CAACC,gBAAgB,IACtBD,KAAK,CAACE,MAAM,KAAK,CAAC,IAClBF,KAAK,CAACG,OAAO,IACbH,KAAK,CAACI,MAAM,IACZJ,KAAK,CAACK,OAAO,IACbL,KAAK,CAACM,QAAQ,IACdX,IAAI,CAACY,MAAM,KAAK,QAAQ,EAC1B;MACE;IACJ;IAEAP,KAAK,CAACQ,cAAc,CAAC,CAAC;IACtBX,aAAa,CAACY,SAAS,CAACf,EAAE,CAAC;EAC/B,CAAC;EAED,MAAMgB,OAAO,GAAGf,IAAI,CAACe,OAAO,IAAIX,WAAW;EAE3C,oBACIX,KAAA,CAAAuB,aAAA,MAAAC,MAAA,CAAAC,MAAA;IAAGC,IAAI,EAAEpB,EAAG;IAACqB,GAAG,EAAC;EAAqB,GAAKpB,IAAI;IAAEe,OAAO,EAAEA;EAAQ,IAC7DjB,QACF,CAAC;AAEZ,CACJ,CAAC;AAED,OAAO,MAAMuB,aAAa,GAAGxB,UAAU","ignoreList":[]}
1
+ {"version":3,"file":"presentation/router/components/SimpleLink.js","sources":["../../../../src/presentation/router/components/SimpleLink.tsx"],"sourcesContent":["import React from \"react\";\nimport { makeDecoratable } from \"@webiny/react-composition\";\nimport { RouterGateway } from \"~/features/router/abstractions.js\";\nimport { useContainer } from \"~/shared/di/DiContainerProvider.js\";\n\ntype BaseAnchorAttributes = Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, \"href\">;\n\nexport type SimpleLinkProps = BaseAnchorAttributes & {\n to: string;\n};\n\nexport const SimpleLink = makeDecoratable(\n \"SimpleLink\",\n ({ children, to, ...rest }: SimpleLinkProps) => {\n const container = useContainer();\n\n const routerGateway = container.resolve(RouterGateway);\n\n const handleClick = (event: React.MouseEvent<HTMLAnchorElement>) => {\n // Respect cmd+click / ctrl+click / middle click → open in new tab\n if (\n event.defaultPrevented ||\n event.button !== 0 ||\n event.metaKey ||\n event.altKey ||\n event.ctrlKey ||\n event.shiftKey ||\n rest.target === \"_blank\"\n ) {\n return;\n }\n\n event.preventDefault();\n routerGateway.pushState(to);\n };\n\n const onClick = rest.onClick ?? handleClick;\n\n return (\n <a href={to} rel=\"noreferrer noopener\" {...rest} onClick={onClick}>\n {children}\n </a>\n );\n }\n);\n\nexport const LinkComponent = SimpleLink;\n"],"names":["SimpleLink","makeDecoratable","children","to","rest","container","useContainer","routerGateway","RouterGateway","handleClick","event","onClick","LinkComponent"],"mappings":";;;;AAWO,MAAMA,aAAaC,gBACtB,cACA,CAAC,EAAEC,QAAQ,EAAEC,EAAE,EAAE,GAAGC,MAAuB;IACvC,MAAMC,YAAYC;IAElB,MAAMC,gBAAgBF,UAAU,OAAO,CAACG;IAExC,MAAMC,cAAc,CAACC;QAEjB,IACIA,MAAM,gBAAgB,IACtBA,AAAiB,MAAjBA,MAAM,MAAM,IACZA,MAAM,OAAO,IACbA,MAAM,MAAM,IACZA,MAAM,OAAO,IACbA,MAAM,QAAQ,IACdN,AAAgB,aAAhBA,KAAK,MAAM,EAEX;QAGJM,MAAM,cAAc;QACpBH,cAAc,SAAS,CAACJ;IAC5B;IAEA,MAAMQ,UAAUP,KAAK,OAAO,IAAIK;IAEhC,OAAO,WAAP,GACI,oBAAC;QAAE,MAAMN;QAAI,KAAI;QAAuB,GAAGC,IAAI;QAAE,SAASO;OACrDT;AAGb;AAGG,MAAMU,gBAAgBZ"}
@@ -2,29 +2,21 @@ import { useEffect, useState } from "react";
2
2
  import { autorun } from "mobx";
3
3
  import { RouterFeature } from "../../../features/router/feature.js";
4
4
  import { useFeature } from "../../../shared/di/useFeature.js";
5
- export function useRoute(
6
- // oxlint-disable-next-line typescript/no-unused-vars
7
- route) {
8
- const {
9
- presenter
10
- } = useFeature(RouterFeature);
11
- const [currentRoute, setCurrentRoute] = useState(presenter.vm.currentRoute);
12
- useEffect(() => {
13
- autorun(() => {
14
- const route = presenter.vm.currentRoute;
15
- if (!route) {
16
- return;
17
- }
18
- setCurrentRoute(route);
19
- });
20
- }, []);
21
-
22
- // TODO: add validation (the requested route must match the current route)
23
-
24
- return {
25
- route: currentRoute,
26
- setRouteParams: presenter.setRouteParams.bind(presenter)
27
- };
5
+ function useRoute(route) {
6
+ const { presenter } = useFeature(RouterFeature);
7
+ const [currentRoute, setCurrentRoute] = useState(presenter.vm.currentRoute);
8
+ useEffect(()=>{
9
+ autorun(()=>{
10
+ const route = presenter.vm.currentRoute;
11
+ if (!route) return;
12
+ setCurrentRoute(route);
13
+ });
14
+ }, []);
15
+ return {
16
+ route: currentRoute,
17
+ setRouteParams: presenter.setRouteParams.bind(presenter)
18
+ };
28
19
  }
20
+ export { useRoute };
29
21
 
30
22
  //# sourceMappingURL=useRoute.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useState","autorun","RouterFeature","useFeature","useRoute","route","presenter","currentRoute","setCurrentRoute","vm","setRouteParams","bind"],"sources":["useRoute.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { autorun } from \"mobx\";\nimport type { Route, RouteParamsDefinition, RouteParamsInfer } from \"~/features/router/Route.js\";\nimport { MatchedRoute } from \"~/features/router/abstractions.js\";\nimport { RouterFeature } from \"~/features/router/feature.js\";\nimport { useFeature } from \"~/shared/di/useFeature.js\";\n\nexport function useRoute<TParams extends RouteParamsDefinition | undefined = undefined>(\n // oxlint-disable-next-line typescript/no-unused-vars\n route?: Route<TParams>\n) {\n const { presenter } = useFeature(RouterFeature);\n const [currentRoute, setCurrentRoute] = useState<MatchedRoute | undefined>(\n presenter.vm.currentRoute\n );\n\n useEffect(() => {\n autorun(() => {\n const route = presenter.vm.currentRoute;\n\n if (!route) {\n return;\n }\n\n setCurrentRoute(route);\n });\n }, []);\n\n // TODO: add validation (the requested route must match the current route)\n\n return {\n route: currentRoute as MatchedRoute<\n TParams extends RouteParamsDefinition ? RouteParamsInfer<TParams> : undefined\n >,\n setRouteParams: presenter.setRouteParams.bind(presenter)\n };\n}\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAASC,OAAO,QAAQ,MAAM;AAG9B,SAASC,aAAa;AACtB,SAASC,UAAU;AAEnB,OAAO,SAASC,QAAQA;AACpB;AACAC,KAAsB,EACxB;EACE,MAAM;IAAEC;EAAU,CAAC,GAAGH,UAAU,CAACD,aAAa,CAAC;EAC/C,MAAM,CAACK,YAAY,EAAEC,eAAe,CAAC,GAAGR,QAAQ,CAC5CM,SAAS,CAACG,EAAE,CAACF,YACjB,CAAC;EAEDR,SAAS,CAAC,MAAM;IACZE,OAAO,CAAC,MAAM;MACV,MAAMI,KAAK,GAAGC,SAAS,CAACG,EAAE,CAACF,YAAY;MAEvC,IAAI,CAACF,KAAK,EAAE;QACR;MACJ;MAEAG,eAAe,CAACH,KAAK,CAAC;IAC1B,CAAC,CAAC;EACN,CAAC,EAAE,EAAE,CAAC;;EAEN;;EAEA,OAAO;IACHA,KAAK,EAAEE,YAEN;IACDG,cAAc,EAAEJ,SAAS,CAACI,cAAc,CAACC,IAAI,CAACL,SAAS;EAC3D,CAAC;AACL","ignoreList":[]}
1
+ {"version":3,"file":"presentation/router/hooks/useRoute.js","sources":["../../../../src/presentation/router/hooks/useRoute.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { autorun } from \"mobx\";\nimport type { Route, RouteParamsDefinition, RouteParamsInfer } from \"~/features/router/Route.js\";\nimport { MatchedRoute } from \"~/features/router/abstractions.js\";\nimport { RouterFeature } from \"~/features/router/feature.js\";\nimport { useFeature } from \"~/shared/di/useFeature.js\";\n\nexport function useRoute<TParams extends RouteParamsDefinition | undefined = undefined>(\n // oxlint-disable-next-line typescript/no-unused-vars\n route?: Route<TParams>\n) {\n const { presenter } = useFeature(RouterFeature);\n const [currentRoute, setCurrentRoute] = useState<MatchedRoute | undefined>(\n presenter.vm.currentRoute\n );\n\n useEffect(() => {\n autorun(() => {\n const route = presenter.vm.currentRoute;\n\n if (!route) {\n return;\n }\n\n setCurrentRoute(route);\n });\n }, []);\n\n // TODO: add validation (the requested route must match the current route)\n\n return {\n route: currentRoute as MatchedRoute<\n TParams extends RouteParamsDefinition ? RouteParamsInfer<TParams> : undefined\n >,\n setRouteParams: presenter.setRouteParams.bind(presenter)\n };\n}\n"],"names":["useRoute","route","presenter","useFeature","RouterFeature","currentRoute","setCurrentRoute","useState","useEffect","autorun"],"mappings":";;;;AAOO,SAASA,SAEZC,KAAsB;IAEtB,MAAM,EAAEC,SAAS,EAAE,GAAGC,WAAWC;IACjC,MAAM,CAACC,cAAcC,gBAAgB,GAAGC,SACpCL,UAAU,EAAE,CAAC,YAAY;IAG7BM,UAAU;QACNC,QAAQ;YACJ,MAAMR,QAAQC,UAAU,EAAE,CAAC,YAAY;YAEvC,IAAI,CAACD,OACD;YAGJK,gBAAgBL;QACpB;IACJ,GAAG,EAAE;IAIL,OAAO;QACH,OAAOI;QAGP,gBAAgBH,UAAU,cAAc,CAAC,IAAI,CAACA;IAClD;AACJ"}
@@ -2,29 +2,28 @@ import { RouteElementRegistry } from "../index.js";
2
2
  import { RouterFeature } from "../../../features/router/feature.js";
3
3
  import { useFeature } from "../../../shared/di/useFeature.js";
4
4
  import { useContainer } from "../../../shared/di/DiContainerProvider.js";
5
- export const useRouter = () => {
6
- const {
7
- presenter
8
- } = useFeature(RouterFeature);
9
- const container = useContainer();
10
- const registry = container.resolve(RouteElementRegistry);
11
- return {
12
- goToRoute: presenter.goToRoute.bind(presenter),
13
- getLink: presenter.getLink.bind(presenter),
14
- addTransitionGuard: presenter.addTransitionGuard.bind(presenter),
15
- isTransitionBlocked: presenter.isTransitionBlocked.bind(presenter),
16
- unblockTransition: presenter.unblockTransition.bind(presenter),
17
- confirmTransition: presenter.confirmTransition.bind(presenter),
18
- cancelTransition: presenter.cancelTransition.bind(presenter),
19
- setRoutes: routes => {
20
- const cleanRoutes = [];
21
- for (const route of routes) {
22
- cleanRoutes.push(route.route);
23
- registry.register(route.route.name, route.element);
24
- }
25
- presenter.bootstrap(cleanRoutes);
26
- }
27
- };
5
+ const useRouter = ()=>{
6
+ const { presenter } = useFeature(RouterFeature);
7
+ const container = useContainer();
8
+ const registry = container.resolve(RouteElementRegistry);
9
+ return {
10
+ goToRoute: presenter.goToRoute.bind(presenter),
11
+ getLink: presenter.getLink.bind(presenter),
12
+ addTransitionGuard: presenter.addTransitionGuard.bind(presenter),
13
+ isTransitionBlocked: presenter.isTransitionBlocked.bind(presenter),
14
+ unblockTransition: presenter.unblockTransition.bind(presenter),
15
+ confirmTransition: presenter.confirmTransition.bind(presenter),
16
+ cancelTransition: presenter.cancelTransition.bind(presenter),
17
+ setRoutes: (routes)=>{
18
+ const cleanRoutes = [];
19
+ for (const route of routes){
20
+ cleanRoutes.push(route.route);
21
+ registry.register(route.route.name, route.element);
22
+ }
23
+ presenter.bootstrap(cleanRoutes);
24
+ }
25
+ };
28
26
  };
27
+ export { useRouter };
29
28
 
30
29
  //# sourceMappingURL=useRouter.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["RouteElementRegistry","RouterFeature","useFeature","useContainer","useRouter","presenter","container","registry","resolve","goToRoute","bind","getLink","addTransitionGuard","isTransitionBlocked","unblockTransition","confirmTransition","cancelTransition","setRoutes","routes","cleanRoutes","route","push","register","name","element","bootstrap"],"sources":["useRouter.ts"],"sourcesContent":["import { type ReactRoute, RouteElementRegistry } from \"~/presentation/router/index.js\";\nimport { RouterFeature } from \"~/features/router/feature.js\";\nimport { useFeature } from \"~/shared/di/useFeature.js\";\nimport { useContainer } from \"~/shared/di/DiContainerProvider.js\";\n\nexport const useRouter = () => {\n const { presenter } = useFeature(RouterFeature);\n const container = useContainer();\n const registry = container.resolve(RouteElementRegistry);\n\n return {\n goToRoute: presenter.goToRoute.bind(presenter),\n getLink: presenter.getLink.bind(presenter),\n addTransitionGuard: presenter.addTransitionGuard.bind(presenter),\n isTransitionBlocked: presenter.isTransitionBlocked.bind(presenter),\n unblockTransition: presenter.unblockTransition.bind(presenter),\n confirmTransition: presenter.confirmTransition.bind(presenter),\n cancelTransition: presenter.cancelTransition.bind(presenter),\n setRoutes: (routes: ReactRoute[]) => {\n const cleanRoutes = [];\n\n for (const route of routes) {\n cleanRoutes.push(route.route);\n registry.register(route.route.name, route.element);\n }\n\n presenter.bootstrap(cleanRoutes);\n }\n };\n};\n"],"mappings":"AAAA,SAA0BA,oBAAoB;AAC9C,SAASC,aAAa;AACtB,SAASC,UAAU;AACnB,SAASC,YAAY;AAErB,OAAO,MAAMC,SAAS,GAAGA,CAAA,KAAM;EAC3B,MAAM;IAAEC;EAAU,CAAC,GAAGH,UAAU,CAACD,aAAa,CAAC;EAC/C,MAAMK,SAAS,GAAGH,YAAY,CAAC,CAAC;EAChC,MAAMI,QAAQ,GAAGD,SAAS,CAACE,OAAO,CAACR,oBAAoB,CAAC;EAExD,OAAO;IACHS,SAAS,EAAEJ,SAAS,CAACI,SAAS,CAACC,IAAI,CAACL,SAAS,CAAC;IAC9CM,OAAO,EAAEN,SAAS,CAACM,OAAO,CAACD,IAAI,CAACL,SAAS,CAAC;IAC1CO,kBAAkB,EAAEP,SAAS,CAACO,kBAAkB,CAACF,IAAI,CAACL,SAAS,CAAC;IAChEQ,mBAAmB,EAAER,SAAS,CAACQ,mBAAmB,CAACH,IAAI,CAACL,SAAS,CAAC;IAClES,iBAAiB,EAAET,SAAS,CAACS,iBAAiB,CAACJ,IAAI,CAACL,SAAS,CAAC;IAC9DU,iBAAiB,EAAEV,SAAS,CAACU,iBAAiB,CAACL,IAAI,CAACL,SAAS,CAAC;IAC9DW,gBAAgB,EAAEX,SAAS,CAACW,gBAAgB,CAACN,IAAI,CAACL,SAAS,CAAC;IAC5DY,SAAS,EAAGC,MAAoB,IAAK;MACjC,MAAMC,WAAW,GAAG,EAAE;MAEtB,KAAK,MAAMC,KAAK,IAAIF,MAAM,EAAE;QACxBC,WAAW,CAACE,IAAI,CAACD,KAAK,CAACA,KAAK,CAAC;QAC7Bb,QAAQ,CAACe,QAAQ,CAACF,KAAK,CAACA,KAAK,CAACG,IAAI,EAAEH,KAAK,CAACI,OAAO,CAAC;MACtD;MAEAnB,SAAS,CAACoB,SAAS,CAACN,WAAW,CAAC;IACpC;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"presentation/router/hooks/useRouter.js","sources":["../../../../src/presentation/router/hooks/useRouter.ts"],"sourcesContent":["import { type ReactRoute, RouteElementRegistry } from \"~/presentation/router/index.js\";\nimport { RouterFeature } from \"~/features/router/feature.js\";\nimport { useFeature } from \"~/shared/di/useFeature.js\";\nimport { useContainer } from \"~/shared/di/DiContainerProvider.js\";\n\nexport const useRouter = () => {\n const { presenter } = useFeature(RouterFeature);\n const container = useContainer();\n const registry = container.resolve(RouteElementRegistry);\n\n return {\n goToRoute: presenter.goToRoute.bind(presenter),\n getLink: presenter.getLink.bind(presenter),\n addTransitionGuard: presenter.addTransitionGuard.bind(presenter),\n isTransitionBlocked: presenter.isTransitionBlocked.bind(presenter),\n unblockTransition: presenter.unblockTransition.bind(presenter),\n confirmTransition: presenter.confirmTransition.bind(presenter),\n cancelTransition: presenter.cancelTransition.bind(presenter),\n setRoutes: (routes: ReactRoute[]) => {\n const cleanRoutes = [];\n\n for (const route of routes) {\n cleanRoutes.push(route.route);\n registry.register(route.route.name, route.element);\n }\n\n presenter.bootstrap(cleanRoutes);\n }\n };\n};\n"],"names":["useRouter","presenter","useFeature","RouterFeature","container","useContainer","registry","RouteElementRegistry","routes","cleanRoutes","route"],"mappings":";;;;AAKO,MAAMA,YAAY;IACrB,MAAM,EAAEC,SAAS,EAAE,GAAGC,WAAWC;IACjC,MAAMC,YAAYC;IAClB,MAAMC,WAAWF,UAAU,OAAO,CAACG;IAEnC,OAAO;QACH,WAAWN,UAAU,SAAS,CAAC,IAAI,CAACA;QACpC,SAASA,UAAU,OAAO,CAAC,IAAI,CAACA;QAChC,oBAAoBA,UAAU,kBAAkB,CAAC,IAAI,CAACA;QACtD,qBAAqBA,UAAU,mBAAmB,CAAC,IAAI,CAACA;QACxD,mBAAmBA,UAAU,iBAAiB,CAAC,IAAI,CAACA;QACpD,mBAAmBA,UAAU,iBAAiB,CAAC,IAAI,CAACA;QACpD,kBAAkBA,UAAU,gBAAgB,CAAC,IAAI,CAACA;QAClD,WAAW,CAACO;YACR,MAAMC,cAAc,EAAE;YAEtB,KAAK,MAAMC,SAASF,OAAQ;gBACxBC,YAAY,IAAI,CAACC,MAAM,KAAK;gBAC5BJ,SAAS,QAAQ,CAACI,MAAM,KAAK,CAAC,IAAI,EAAEA,MAAM,OAAO;YACrD;YAEAT,UAAU,SAAS,CAACQ;QACxB;IACJ;AACJ"}
@@ -1,5 +1,3 @@
1
1
  export { useRouter } from "./hooks/useRouter.js";
2
2
  export { useRoute } from "./hooks/useRoute.js";
3
3
  export { RouteElementRegistry } from "./abstractions.js";
4
-
5
- //# sourceMappingURL=index.js.map
@@ -1,3 +0,0 @@
1
- export {};
2
-
3
- //# sourceMappingURL=types.js.map