UNPKG

@koordinates/xstate-tree

Version:

Build UIs with Actors using xstate and React

31 lines (30 loc) 1.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useRouteArgsIfActive = void 0; const utils_1 = require("../utils"); const providers_1 = require("./providers"); const useIsRouteActive_1 = require("./useIsRouteActive"); /** * @public * Returns the arguments for the given route if the route is active. * Returns undefined if the route is not active. * * @param route - the route to get the arguments for * @returns the arguments for the given route if the route is active, undefined otherwise * @throws if used outside of an xstate-tree root */ function useRouteArgsIfActive(route) { const isActive = (0, useIsRouteActive_1.useIsRouteActive)(route); const activeRoutes = (0, providers_1.useActiveRouteEvents)(); if (!isActive) { return undefined; } const activeRoute = activeRoutes?.find((activeRoute) => activeRoute.type === route.event); (0, utils_1.assertIsDefined)(activeRoute, "active route is not defined, but the route is active??"); return { params: activeRoute.params, query: activeRoute.query, meta: activeRoute.meta, }; } exports.useRouteArgsIfActive = useRouteArgsIfActive;