UNPKG

@tanstack/react-router

Version:

Modern and scalable routing for React applications

48 lines (47 loc) 1.58 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const React = require("react"); const invariant = require("tiny-invariant"); const useRouterState = require("./useRouterState.cjs"); const matchContext = require("./matchContext.cjs"); function _interopNamespaceDefault(e) { const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } }); if (e) { for (const k in e) { if (k !== "default") { const d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty(n, k, d.get ? d : { enumerable: true, get: () => e[k] }); } } } n.default = e; return Object.freeze(n); } const React__namespace = /* @__PURE__ */ _interopNamespaceDefault(React); function useMatch(opts) { const nearestMatchId = React__namespace.useContext( opts.from ? matchContext.dummyMatchContext : matchContext.matchContext ); const matchSelection = useRouterState.useRouterState({ select: (state) => { const match = state.matches.find( (d) => opts.from ? opts.from === d.routeId : d.id === nearestMatchId ); invariant( !((opts.shouldThrow ?? true) && !match), `Could not find ${opts.from ? `an active match from "${opts.from}"` : "a nearest match!"}` ); if (match === void 0) { return void 0; } return opts.select ? opts.select(match) : match; }, structuralSharing: opts.structuralSharing }); return matchSelection; } exports.useMatch = useMatch; //# sourceMappingURL=useMatch.cjs.map