xref: /expo/packages/expo-router/build/Route.js (revision 46f023fa)
1"use strict";
2var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3    if (k2 === undefined) k2 = k;
4    var desc = Object.getOwnPropertyDescriptor(m, k);
5    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6      desc = { enumerable: true, get: function() { return m[k]; } };
7    }
8    Object.defineProperty(o, k2, desc);
9}) : (function(o, m, k, k2) {
10    if (k2 === undefined) k2 = k;
11    o[k2] = m[k];
12}));
13var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14    Object.defineProperty(o, "default", { enumerable: true, value: v });
15}) : function(o, v) {
16    o["default"] = v;
17});
18var __importStar = (this && this.__importStar) || function (mod) {
19    if (mod && mod.__esModule) return mod;
20    var result = {};
21    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22    __setModuleDefault(result, mod);
23    return result;
24};
25Object.defineProperty(exports, "__esModule", { value: true });
26exports.sortRoutes = exports.sortRoutesWithInitial = exports.Route = exports.useContextKey = exports.useRouteNode = void 0;
27const react_1 = __importStar(require("react"));
28const matchers_1 = require("./matchers");
29const sortRoutes_1 = require("./sortRoutes");
30Object.defineProperty(exports, "sortRoutesWithInitial", { enumerable: true, get: function () { return sortRoutes_1.sortRoutesWithInitial; } });
31Object.defineProperty(exports, "sortRoutes", { enumerable: true, get: function () { return sortRoutes_1.sortRoutes; } });
32const CurrentRouteContext = react_1.default.createContext(null);
33if (process.env.NODE_ENV !== 'production') {
34    CurrentRouteContext.displayName = 'RouteNode';
35}
36/** Return the RouteNode at the current contextual boundary. */
37function useRouteNode() {
38    return (0, react_1.useContext)(CurrentRouteContext);
39}
40exports.useRouteNode = useRouteNode;
41function useContextKey() {
42    const node = useRouteNode();
43    if (node == null) {
44        throw new Error('No filename found. This is likely a bug in expo-router.');
45    }
46    return (0, matchers_1.getContextKey)(node.contextKey);
47}
48exports.useContextKey = useContextKey;
49/** Provides the matching routes and filename to the children. */
50function Route({ children, node }) {
51    return react_1.default.createElement(CurrentRouteContext.Provider, { value: node }, children);
52}
53exports.Route = Route;
54//# sourceMappingURL=Route.js.map