@alepha/react 0.11.4 → 0.11.6

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.
@@ -1,4 +1,4 @@
1
- import { $env, $hook, $inject, $module, Alepha, AlephaError, Descriptor, KIND, createDescriptor, t } from "@alepha/core";
1
+ import { $atom, $env, $hook, $inject, $module, $use, Alepha, AlephaError, Descriptor, KIND, createDescriptor, t } from "@alepha/core";
2
2
  import { AlephaDateTime, DateTimeProvider } from "@alepha/datetime";
3
3
  import { AlephaServer, HttpClient } from "@alepha/server";
4
4
  import { AlephaServerLinks, LinkProvider } from "@alepha/server-links";
@@ -440,7 +440,7 @@ const useStore = (key, defaultValue) => {
440
440
  //#endregion
441
441
  //#region src/hooks/useRouterState.ts
442
442
  const useRouterState = () => {
443
- const [state] = useStore("react.router.state");
443
+ const [state] = useStore("alepha.react.router.state");
444
444
  if (!state) throw new AlephaError("Missing react router state");
445
445
  return state;
446
446
  };
@@ -951,7 +951,7 @@ var ReactBrowserRouterProvider = class extends RouterProvider {
951
951
  };
952
952
  await this.alepha.events.emit("react:action:begin", { type: "transition" });
953
953
  await this.alepha.events.emit("react:transition:begin", {
954
- previous: this.alepha.state.get("react.router.state"),
954
+ previous: this.alepha.state.get("alepha.react.router.state"),
955
955
  state
956
956
  });
957
957
  try {
@@ -993,7 +993,7 @@ var ReactBrowserRouterProvider = class extends RouterProvider {
993
993
  const layer = previous[i];
994
994
  if (state.layers[i]?.name !== layer.name) this.pageApi.page(layer.name)?.onLeave?.();
995
995
  }
996
- this.alepha.state.set("react.router.state", state);
996
+ this.alepha.state.set("alepha.react.router.state", state);
997
997
  await this.alepha.events.emit("react:action:end", { type: "transition" });
998
998
  await this.alepha.events.emit("react:transition:end", { state });
999
999
  }
@@ -1005,6 +1005,14 @@ var ReactBrowserRouterProvider = class extends RouterProvider {
1005
1005
  //#endregion
1006
1006
  //#region src/providers/ReactBrowserProvider.ts
1007
1007
  const envSchema = t.object({ REACT_ROOT_ID: t.text({ default: "root" }) });
1008
+ /**
1009
+ * React browser renderer configuration atom
1010
+ */
1011
+ const reactBrowserOptions = $atom({
1012
+ name: "alepha.react.browser.options",
1013
+ schema: t.object({ scrollRestoration: t.enum(["top", "manual"]) }),
1014
+ default: { scrollRestoration: "top" }
1015
+ });
1008
1016
  var ReactBrowserProvider = class {
1009
1017
  env = $env(envSchema);
1010
1018
  log = $logger();
@@ -1012,7 +1020,7 @@ var ReactBrowserProvider = class {
1012
1020
  alepha = $inject(Alepha);
1013
1021
  router = $inject(ReactBrowserRouterProvider);
1014
1022
  dateTimeProvider = $inject(DateTimeProvider);
1015
- options = { scrollRestoration: "top" };
1023
+ options = $use(reactBrowserOptions);
1016
1024
  getRootElement() {
1017
1025
  const root = this.document.getElementById(this.env.REACT_ROOT_ID);
1018
1026
  if (root) return root;
@@ -1023,7 +1031,7 @@ var ReactBrowserProvider = class {
1023
1031
  }
1024
1032
  transitioning;
1025
1033
  get state() {
1026
- return this.alepha.state.get("react.router.state");
1034
+ return this.alepha.state.get("alepha.react.router.state");
1027
1035
  }
1028
1036
  /**
1029
1037
  * Accessor for Document DOM API.
@@ -1185,7 +1193,7 @@ var ReactRouter = class {
1185
1193
  alepha = $inject(Alepha);
1186
1194
  pageApi = $inject(ReactPageProvider);
1187
1195
  get state() {
1188
- return this.alepha.state.get("react.router.state");
1196
+ return this.alepha.state.get("alepha.react.router.state");
1189
1197
  }
1190
1198
  get pages() {
1191
1199
  return this.pageApi.getPages();
@@ -1543,7 +1551,7 @@ function useAction(options, deps) {
1543
1551
  }, []);
1544
1552
  useEffect(() => {
1545
1553
  if (options.runOnInit) handler(...[]);
1546
- }, []);
1554
+ }, deps);
1547
1555
  useEffect(() => {
1548
1556
  if (!options.runEvery) return;
1549
1557
  intervalRef.current = dateTimeProvider.createInterval(() => handler(...[]), options.runEvery, true);
@@ -1692,5 +1700,5 @@ const AlephaReact = $module({
1692
1700
  });
1693
1701
 
1694
1702
  //#endregion
1695
- export { $page, AlephaContext, AlephaReact, ClientOnly_default as ClientOnly, ErrorBoundary_default as ErrorBoundary, ErrorViewer_default as ErrorViewer, Link_default as Link, NestedView_default as NestedView, NotFoundPage as NotFound, PageDescriptor, ReactBrowserProvider, ReactBrowserRouterProvider, ReactPageProvider, ReactRouter, Redirection, RouterLayerContext, isPageRoute, ssrSchemaLoading, useAction, useActive, useAlepha, useClient, useEvents, useInject, useQueryParams, useRouter, useRouterState, useSchema, useStore };
1703
+ export { $page, AlephaContext, AlephaReact, ClientOnly_default as ClientOnly, ErrorBoundary_default as ErrorBoundary, ErrorViewer_default as ErrorViewer, Link_default as Link, NestedView_default as NestedView, NotFoundPage as NotFound, PageDescriptor, ReactBrowserProvider, ReactBrowserRouterProvider, ReactPageProvider, ReactRouter, Redirection, RouterLayerContext, isPageRoute, reactBrowserOptions, ssrSchemaLoading, useAction, useActive, useAlepha, useClient, useEvents, useInject, useQueryParams, useRouter, useRouterState, useSchema, useStore };
1696
1704
  //# sourceMappingURL=index.browser.js.map