@koordinates/xstate-tree 5.1.0-next.16 → 5.1.0-next.17

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.
package/lib/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.lazy = exports.loggingMetaOptions = exports.TestRoutingContext = exports.useActiveRouteEvents = exports.useRouteArgsIfActive = exports.useIsRouteActive = exports.matchRoute = exports.buildCreateRoute = exports.Link = exports.genericSlotsTestingDummy = exports.onBroadcast = exports.buildRootComponent = exports.broadcast = void 0;
17
+ exports.lazy = exports.loggingMetaOptions = exports.useOnRoute = exports.TestRoutingContext = exports.useActiveRouteEvents = exports.useRouteArgsIfActive = exports.useIsRouteActive = exports.matchRoute = exports.buildCreateRoute = exports.Link = exports.genericSlotsTestingDummy = exports.onBroadcast = exports.buildRootComponent = exports.broadcast = void 0;
18
18
  __exportStar(require("./builders"), exports);
19
19
  __exportStar(require("./slots"), exports);
20
20
  var xstateTree_1 = require("./xstateTree");
@@ -32,6 +32,7 @@ Object.defineProperty(exports, "useIsRouteActive", { enumerable: true, get: func
32
32
  Object.defineProperty(exports, "useRouteArgsIfActive", { enumerable: true, get: function () { return routing_1.useRouteArgsIfActive; } });
33
33
  Object.defineProperty(exports, "useActiveRouteEvents", { enumerable: true, get: function () { return routing_1.useActiveRouteEvents; } });
34
34
  Object.defineProperty(exports, "TestRoutingContext", { enumerable: true, get: function () { return routing_1.TestRoutingContext; } });
35
+ Object.defineProperty(exports, "useOnRoute", { enumerable: true, get: function () { return routing_1.useOnRoute; } });
35
36
  var useService_1 = require("./useService");
36
37
  Object.defineProperty(exports, "loggingMetaOptions", { enumerable: true, get: function () { return useService_1.loggingMetaOptions; } });
37
38
  var lazy_1 = require("./lazy");
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useActiveRouteEvents = exports.useInTestRoutingContext = exports.useInRoutingContext = exports.TestRoutingContext = exports.RoutingContext = exports.useRouteArgsIfActive = exports.useIsRouteActive = exports.handleLocationChange = exports.matchRoute = exports.Link = exports.joinRoutes = exports.buildCreateRoute = void 0;
3
+ exports.useActiveRouteEvents = exports.useInTestRoutingContext = exports.useInRoutingContext = exports.TestRoutingContext = exports.RoutingContext = exports.useOnRoute = exports.useRouteArgsIfActive = exports.useIsRouteActive = exports.handleLocationChange = exports.matchRoute = exports.Link = exports.joinRoutes = exports.buildCreateRoute = void 0;
4
4
  var createRoute_1 = require("./createRoute");
5
5
  Object.defineProperty(exports, "buildCreateRoute", { enumerable: true, get: function () { return createRoute_1.buildCreateRoute; } });
6
6
  var joinRoutes_1 = require("./joinRoutes");
@@ -15,6 +15,8 @@ var useIsRouteActive_1 = require("./useIsRouteActive");
15
15
  Object.defineProperty(exports, "useIsRouteActive", { enumerable: true, get: function () { return useIsRouteActive_1.useIsRouteActive; } });
16
16
  var useRouteArgsIfActive_1 = require("./useRouteArgsIfActive");
17
17
  Object.defineProperty(exports, "useRouteArgsIfActive", { enumerable: true, get: function () { return useRouteArgsIfActive_1.useRouteArgsIfActive; } });
18
+ var useOnRoute_1 = require("./useOnRoute");
19
+ Object.defineProperty(exports, "useOnRoute", { enumerable: true, get: function () { return useOnRoute_1.useOnRoute; } });
18
20
  var providers_1 = require("./providers");
19
21
  Object.defineProperty(exports, "RoutingContext", { enumerable: true, get: function () { return providers_1.RoutingContext; } });
20
22
  Object.defineProperty(exports, "TestRoutingContext", { enumerable: true, get: function () { return providers_1.TestRoutingContext; } });
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useOnRoute = void 0;
4
+ const providers_1 = require("./providers");
5
+ /**
6
+ * @public
7
+ * Accepts a single Route and returns true if the route is currently active and marked as an index route.
8
+ * False if not.
9
+ *
10
+ * If used outside of a RoutingContext, an error will be thrown.
11
+ * @param route - the route to check
12
+ * @returns true if the route is active and an index route, false if not
13
+ * @throws if used outside of an xstate-tree root
14
+ */
15
+ function useOnRoute(route) {
16
+ const activeRouteEvents = (0, providers_1.useActiveRouteEvents)();
17
+ if (!activeRouteEvents) {
18
+ throw new Error("useOnRoute must be used within a RoutingContext. Are you using it outside of an xstate-tree Root?");
19
+ }
20
+ return activeRouteEvents.some((activeRouteEvent) => activeRouteEvent.type === route.event &&
21
+ activeRouteEvent.meta?.indexEvent === true);
22
+ }
23
+ exports.useOnRoute = useOnRoute;
@@ -671,6 +671,18 @@ export declare function useActiveRouteEvents(): {
671
671
  */
672
672
  export declare function useIsRouteActive(...routes: AnyRoute[]): boolean;
673
673
 
674
+ /**
675
+ * @public
676
+ * Accepts a single Route and returns true if the route is currently active and marked as an index route.
677
+ * False if not.
678
+ *
679
+ * If used outside of a RoutingContext, an error will be thrown.
680
+ * @param route - the route to check
681
+ * @returns true if the route is active and an index route, false if not
682
+ * @throws if used outside of an xstate-tree root
683
+ */
684
+ export declare function useOnRoute(route: AnyRoute): boolean;
685
+
674
686
  /**
675
687
  * @public
676
688
  * Returns the arguments for the given route if the route is active.
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@koordinates/xstate-tree",
3
3
  "main": "lib/index.js",
4
4
  "types": "lib/xstate-tree.d.ts",
5
- "version": "5.1.0-next.16",
5
+ "version": "5.1.0-next.17",
6
6
  "license": "MIT",
7
7
  "description": "Build UIs with Actors using xstate and React",
8
8
  "keywords": [