@plumile/router 0.1.52 → 0.1.53
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/ResourcePage.d.ts +12 -0
- package/lib/ResourcePage.d.ts.map +1 -0
- package/lib/ResourcePage.js +38 -0
- package/lib/asyncResource.d.ts +8 -0
- package/lib/asyncResource.d.ts.map +1 -0
- package/lib/asyncResource.js +101 -0
- package/lib/builder.d.ts +13 -0
- package/lib/builder.d.ts.map +1 -0
- package/lib/builder.js +72 -0
- package/lib/errors/HttpRedirect.d.ts +6 -0
- package/lib/errors/HttpRedirect.d.ts.map +1 -0
- package/lib/errors/HttpRedirect.js +11 -0
- package/lib/errors/index.d.ts +2 -0
- package/lib/errors/index.d.ts.map +1 -0
- package/lib/errors/index.js +2 -0
- package/lib/eslint-rules/index.d.ts +2 -0
- package/lib/eslint-rules/index.d.ts.map +1 -0
- package/lib/eslint-rules/index.js +2 -0
- package/lib/eslint-rules/no-direct-window-location-search.d.ts +4 -0
- package/lib/eslint-rules/no-direct-window-location-search.d.ts.map +1 -0
- package/lib/eslint-rules/no-direct-window-location-search.js +48 -0
- package/lib/history/BrowserHistory.d.ts +21 -0
- package/lib/history/BrowserHistory.d.ts.map +1 -0
- package/lib/history/BrowserHistory.js +139 -0
- package/lib/history/index.d.ts +3 -0
- package/lib/history/index.d.ts.map +1 -0
- package/lib/history/index.js +2 -0
- package/lib/history/types.d.ts +19 -0
- package/lib/history/types.d.ts.map +1 -0
- package/lib/history/types.js +2 -0
- package/lib/index.d.ts +10 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +9 -0
- package/lib/instrumentation/Instrumentation.d.ts +90 -0
- package/lib/instrumentation/Instrumentation.d.ts.map +1 -0
- package/lib/instrumentation/Instrumentation.js +59 -0
- package/lib/instrumentation/adapters/devtoolsBridge.d.ts +14 -0
- package/lib/instrumentation/adapters/devtoolsBridge.d.ts.map +1 -0
- package/lib/instrumentation/adapters/devtoolsBridge.js +133 -0
- package/lib/instrumentation/adapters/logger.d.ts +10 -0
- package/lib/instrumentation/adapters/logger.d.ts.map +1 -0
- package/lib/instrumentation/adapters/logger.js +19 -0
- package/lib/instrumentation/index.d.ts +4 -0
- package/lib/instrumentation/index.d.ts.map +1 -0
- package/lib/instrumentation/index.js +4 -0
- package/lib/prepareResource.d.ts +4 -0
- package/lib/prepareResource.d.ts.map +1 -0
- package/lib/prepareResource.js +11 -0
- package/lib/routing/Link.d.ts +23 -0
- package/lib/routing/Link.d.ts.map +1 -0
- package/lib/routing/Link.js +158 -0
- package/lib/routing/RouteComponent.d.ts +8 -0
- package/lib/routing/RouteComponent.d.ts.map +1 -0
- package/lib/routing/RouteComponent.js +20 -0
- package/lib/routing/RouteComponentWrapper.d.ts +11 -0
- package/lib/routing/RouteComponentWrapper.d.ts.map +1 -0
- package/lib/routing/RouteComponentWrapper.js +101 -0
- package/lib/routing/RouterRenderer.d.ts +10 -0
- package/lib/routing/RouterRenderer.d.ts.map +1 -0
- package/lib/routing/RouterRenderer.js +67 -0
- package/lib/routing/RoutingContext.d.ts +5 -0
- package/lib/routing/RoutingContext.d.ts.map +1 -0
- package/lib/routing/RoutingContext.js +4 -0
- package/lib/routing/createRouter.d.ts +19 -0
- package/lib/routing/createRouter.d.ts.map +1 -0
- package/lib/routing/createRouter.js +604 -0
- package/lib/routing/index.d.ts +16 -0
- package/lib/routing/index.d.ts.map +1 -0
- package/lib/routing/index.js +16 -0
- package/lib/routing/useAllQuery.d.ts +7 -0
- package/lib/routing/useAllQuery.d.ts.map +1 -0
- package/lib/routing/useAllQuery.js +31 -0
- package/lib/routing/useFilterDiagnostics.d.ts +2 -0
- package/lib/routing/useFilterDiagnostics.d.ts.map +1 -0
- package/lib/routing/useFilterDiagnostics.js +11 -0
- package/lib/routing/useFilters.d.ts +8 -0
- package/lib/routing/useFilters.d.ts.map +1 -0
- package/lib/routing/useFilters.js +65 -0
- package/lib/routing/useLocation.d.ts +2 -0
- package/lib/routing/useLocation.d.ts.map +1 -0
- package/lib/routing/useLocation.js +24 -0
- package/lib/routing/useNavigate.d.ts +7 -0
- package/lib/routing/useNavigate.d.ts.map +1 -0
- package/lib/routing/useNavigate.js +11 -0
- package/lib/routing/usePathname.d.ts +2 -0
- package/lib/routing/usePathname.d.ts.map +1 -0
- package/lib/routing/usePathname.js +9 -0
- package/lib/routing/useQuery.d.ts +2 -0
- package/lib/routing/useQuery.d.ts.map +1 -0
- package/lib/routing/useQuery.js +9 -0
- package/lib/routing/useQueryState.d.ts +13 -0
- package/lib/routing/useQueryState.d.ts.map +1 -0
- package/lib/routing/useQueryState.js +45 -0
- package/lib/routing/useSearchParams.d.ts +11 -0
- package/lib/routing/useSearchParams.d.ts.map +1 -0
- package/lib/routing/useSearchParams.js +67 -0
- package/lib/tools/buildCombinedSearch.d.ts +8 -0
- package/lib/tools/buildCombinedSearch.d.ts.map +1 -0
- package/lib/tools/buildCombinedSearch.js +76 -0
- package/lib/tools/index.d.ts +3 -0
- package/lib/tools/index.d.ts.map +1 -0
- package/lib/tools/index.js +13 -0
- package/lib/tools/query.d.ts +2 -0
- package/lib/tools/query.d.ts.map +1 -0
- package/lib/tools/query.js +43 -0
- package/lib/tools.d.ts +15 -0
- package/lib/tools.d.ts.map +1 -0
- package/lib/tools.js +179 -0
- package/lib/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/types.d.ts +245 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +2 -0
- package/lib/values.d.ts +19 -0
- package/lib/values.d.ts.map +1 -0
- package/lib/values.js +53 -0
- package/package.json +2 -2
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import React, { forwardRef, useEffect, useMemo, } from 'react';
|
|
3
|
+
import { cx } from './../tools/index.js';
|
|
4
|
+
import buildCombinedSearch from '../tools/buildCombinedSearch.js';
|
|
5
|
+
import RoutingContext from './RoutingContext.js';
|
|
6
|
+
const { useCallback, useContext } = React;
|
|
7
|
+
export function isCurrentPathname(exact, history, pathname) {
|
|
8
|
+
if (history == null) {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
const resolvedUrl = new URL(pathname, document.location);
|
|
12
|
+
const resolvedPathname = resolvedUrl.pathname;
|
|
13
|
+
if (exact && history.location.pathname === resolvedPathname) {
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
if (!exact && history.location.pathname.startsWith(resolvedPathname)) {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
const Link = forwardRef((props, ref) => {
|
|
22
|
+
const router = useContext(RoutingContext);
|
|
23
|
+
const { activeClassName, children, className, exact = false, isDisabled = false, onClick, onFocus, onMouseOver, preloadOnMouseEnter = false, preloadOnMouseDown = true, target, to, href, filters, query, } = props;
|
|
24
|
+
const pathname = useMemo(() => {
|
|
25
|
+
if (isDisabled) {
|
|
26
|
+
return '#';
|
|
27
|
+
}
|
|
28
|
+
let newHref = href;
|
|
29
|
+
if (newHref == null) {
|
|
30
|
+
if (typeof to === 'string') {
|
|
31
|
+
newHref = to;
|
|
32
|
+
}
|
|
33
|
+
else if (to?.pathname != null) {
|
|
34
|
+
newHref = to.pathname;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
newHref ??= '#';
|
|
38
|
+
return newHref;
|
|
39
|
+
}, [href, isDisabled, to]);
|
|
40
|
+
const search = useMemo(() => {
|
|
41
|
+
if (isDisabled) {
|
|
42
|
+
return '';
|
|
43
|
+
}
|
|
44
|
+
if (to != null && typeof to === 'object' && to.search != null) {
|
|
45
|
+
if (to.search === '') {
|
|
46
|
+
return '';
|
|
47
|
+
}
|
|
48
|
+
if (to.search.startsWith('?')) {
|
|
49
|
+
return to.search;
|
|
50
|
+
}
|
|
51
|
+
return `?${to.search}`;
|
|
52
|
+
}
|
|
53
|
+
const filterInput = filters ?? query;
|
|
54
|
+
let rawQueryInput;
|
|
55
|
+
if (filters != null) {
|
|
56
|
+
rawQueryInput = query;
|
|
57
|
+
}
|
|
58
|
+
if (filterInput == null && rawQueryInput == null)
|
|
59
|
+
return '';
|
|
60
|
+
if (router == null)
|
|
61
|
+
return '';
|
|
62
|
+
const entry = router.get();
|
|
63
|
+
return buildCombinedSearch({
|
|
64
|
+
filters: filterInput,
|
|
65
|
+
query: rawQueryInput,
|
|
66
|
+
querySchema: entry.activeQuerySchema,
|
|
67
|
+
});
|
|
68
|
+
}, [filters, isDisabled, query, router, to]);
|
|
69
|
+
const hash = useMemo(() => {
|
|
70
|
+
if (isDisabled) {
|
|
71
|
+
return '';
|
|
72
|
+
}
|
|
73
|
+
if (to != null && typeof to === 'object' && to.hash != null) {
|
|
74
|
+
if (to.hash === '') {
|
|
75
|
+
return '';
|
|
76
|
+
}
|
|
77
|
+
if (to.hash.startsWith('#')) {
|
|
78
|
+
return to.hash;
|
|
79
|
+
}
|
|
80
|
+
return `#${to.hash}`;
|
|
81
|
+
}
|
|
82
|
+
return '';
|
|
83
|
+
}, [isDisabled, to]);
|
|
84
|
+
const initialIsActive = isCurrentPathname(exact, router?.history, pathname);
|
|
85
|
+
const [isActive, setIsActive] = React.useState(initialIsActive);
|
|
86
|
+
useEffect(() => {
|
|
87
|
+
const onChange = () => {
|
|
88
|
+
const newIsActive = isCurrentPathname(exact, router?.history, pathname);
|
|
89
|
+
setIsActive(newIsActive);
|
|
90
|
+
};
|
|
91
|
+
if (router == null) {
|
|
92
|
+
return () => { };
|
|
93
|
+
}
|
|
94
|
+
router.history.subscribe(onChange);
|
|
95
|
+
return () => {
|
|
96
|
+
router.history.unsubscribe(onChange);
|
|
97
|
+
};
|
|
98
|
+
}, [exact, pathname, router]);
|
|
99
|
+
const classNames = [className];
|
|
100
|
+
if (isActive) {
|
|
101
|
+
classNames.push(activeClassName);
|
|
102
|
+
}
|
|
103
|
+
const handleClick = useCallback((event) => {
|
|
104
|
+
if (!isDisabled && typeof onClick === 'function') {
|
|
105
|
+
onClick(event);
|
|
106
|
+
}
|
|
107
|
+
if (event.defaultPrevented ||
|
|
108
|
+
event.metaKey ||
|
|
109
|
+
event.altKey ||
|
|
110
|
+
event.ctrlKey ||
|
|
111
|
+
event.shiftKey ||
|
|
112
|
+
event.button !== 0 ||
|
|
113
|
+
(target != null && target !== '_self')) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
event.preventDefault();
|
|
117
|
+
if (router == null || isDisabled) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
router.history.push({
|
|
121
|
+
pathname,
|
|
122
|
+
search,
|
|
123
|
+
hash,
|
|
124
|
+
debugContext: {
|
|
125
|
+
origin: 'link-click',
|
|
126
|
+
trigger: 'link',
|
|
127
|
+
},
|
|
128
|
+
});
|
|
129
|
+
}, [hash, isDisabled, onClick, pathname, router, target, search]);
|
|
130
|
+
const handleMouseEnter = useCallback(() => {
|
|
131
|
+
if (router == null || isDisabled) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
const target = { pathname, search, source: 'preload-hover' };
|
|
135
|
+
if (preloadOnMouseEnter) {
|
|
136
|
+
router.preload(target);
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
router.preloadCode(target);
|
|
140
|
+
}
|
|
141
|
+
}, [router, isDisabled, preloadOnMouseEnter, pathname, search]);
|
|
142
|
+
const handleMouseDown = useCallback(() => {
|
|
143
|
+
if (router == null || isDisabled || !preloadOnMouseDown) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
router.preload({ pathname, search, source: 'link-click' });
|
|
147
|
+
}, [router, isDisabled, preloadOnMouseDown, pathname, search]);
|
|
148
|
+
let hrefValue = pathname;
|
|
149
|
+
if (typeof search === 'string' && search.length > 0) {
|
|
150
|
+
hrefValue = `${pathname}${search}`;
|
|
151
|
+
}
|
|
152
|
+
if (typeof hash === 'string' && hash.length > 0) {
|
|
153
|
+
hrefValue = `${hrefValue}${hash}`;
|
|
154
|
+
}
|
|
155
|
+
return (_jsx("a", { className: cx(classNames), href: hrefValue, onClick: handleClick, onFocus: onFocus, onMouseDown: handleMouseDown, onMouseEnter: handleMouseEnter, onMouseOver: onMouseOver, ref: ref, target: target, children: children }));
|
|
156
|
+
});
|
|
157
|
+
export default Link;
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yb3V0aW5nL0xpbmsudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUssRUFBRSxFQUlaLFVBQVUsRUFDVixTQUFTLEVBQ1QsT0FBTyxHQUNSLE1BQU0sT0FBTyxDQUFDO0FBSWYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pDLE9BQU8sbUJBQW1CLE1BQU0saUNBQWlDLENBQUM7QUFFbEUsT0FBTyxjQUFjLE1BQU0scUJBQXFCLENBQUM7QUFHakQsTUFBTSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsR0FBRyxLQUFLLENBQUM7QUFLMUMsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixLQUFjLEVBQ2QsT0FBbUMsRUFDbkMsUUFBZ0I7SUFFaEIsSUFBSSxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBR0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV6RCxNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUM7SUFFOUMsSUFBSSxLQUFLLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztRQUM1RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7UUFDckUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBZ0VELE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBMkIsQ0FBQyxLQUFZLEVBQUUsR0FBRyxFQUFFLEVBQUU7SUFDdEUsTUFBTSxN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QUFHLElBQUksRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFDRCxPQUFPLENBQ0wsWUFDRSxTQUFTLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUN6QixJQUFJLEVBQUUsU0FBUyxFQUNmLE9BQU8sRUFBRSxXQUFXLEVBQ3BCLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLFdBQVcsRUFBRSxlQUFlLEVBQzVCLFlBQVksRUFBRSxnQkFBZ0IsRUFDOUIsV0FBVyxFQUFFLFdBQVcsRUFDeEIsR0FBRyxFQUFFLEdBQUcsRUFDUixNQUFNLEVBQUUsTUFBTSxZQUViLFFBQVEsR0FDUCxDQUNMLENBQUM7QUFDSixDQUFDLENBQUMsQ0FBQztBQUVILGVBQWUsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7XG4gIHR5cGUgSFRNTEF0dHJpYnV0ZUFuY2hvclRhcmdldCxcbiAgdHlwZSBNb3VzZUV2ZW50LFxuICB0eXBlIFJlYWN0Tm9kZSxcbiAgZm9yd2FyZFJlZixcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxufSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgQnJvd3Nlckhpc3RvcnksIEhpc3RvcnlMb2NhdGlvbiB9IGZyb20gJy4uL2hpc3RvcnkvaW5kZXguanMnO1xuXG5pbXBvcnQgeyBjeCB9IGZyb20gJy4vLi4vdG9vbHMvaW5kZXguanMnO1xuaW1wb3J0IGJ1aWxkQ29tYmluZWRTZWFyY2ggZnJvbSAnLi4vdG9vbHMvYnVpbGRDb21iaW5lZFNlYXJjaC5qcyc7XG5cbmltcG9ydCBSb3V0aW5nQ29udGV4dCBmcm9tICcuL1JvdXRpbmdDb250ZXh0LmpzJztcbi8vIChmaWx0ZXItcXVlcnkgc3RyaW5naWZ5IG5vdCB1c2VkIGhlcmUgYWZ0ZXIgc2ltcGxpZnlpbmcgbWFudWFsIHNlcmlhbGl6YXRpb24pXG5cbmNvbnN0IHsgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQgfSA9IFJlYWN0O1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBjdXJyZW50IHBhdGhuYW1lIG1hdGNoZXMgdGhlIGdpdmVuIHBhdGhuYW1lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDdXJyZW50UGF0aG5hbWUoXG4gIGV4YWN0OiBib29sZWFuLFxuICBoaXN0b3J5OiBCcm93c2VySGlzdG9yeSB8IHVuZGVmaW5lZCxcbiAgcGF0aG5hbWU6IHN0cmluZyxcbik6IGJvb2xlYW4ge1xuICBpZiAoaGlzdG9yeSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvcjogT0tcbiAgY29uc3QgcmVzb2x2ZWRVcmwgPSBuZXcgVVJMKHBhdGhuYW1lLCBkb2N1bWVudC5sb2NhdGlvbik7XG5cbiAgY29uc3QgcmVzb2x2ZWRQYXRobmFtZSA9IHJlc29sdmVkVXJsLnBhdGhuYW1lO1xuXG4gIGlmIChleGFjdCAmJiBoaXN0b3J5LmxvY2F0aW9uLnBhdGhuYW1lID09PSByZXNvbHZlZFBhdGhuYW1lKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoIWV4YWN0ICYmIGhpc3RvcnkubG9jYXRpb24ucGF0aG5hbWUuc3RhcnRzV2l0aChyZXNvbHZlZFBhdGhuYW1lKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIFByb3BzIGZvciB0aGUgTGluayBjb21wb25lbnQuXG4gKi9cbnR5cGUgUHJvcHM8XG4gIFRGaWx0ZXJzIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgVFJhd1F1ZXJ5IGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbj4gPSB7XG4gIC8qKiBDU1MgY2xhc3MgdG8gYXBwbHkgd2hlbiB0aGUgbGluayBpcyBhY3RpdmUgKG1hdGNoZXMgY3VycmVudCByb3V0ZSkgKi9cbiAgYWN0aXZlQ2xhc3NOYW1lPzogc3RyaW5nO1xuICAvKiogQ2hpbGQgY29tcG9uZW50cyB0byByZW5kZXIgaW5zaWRlIHRoZSBsaW5rICovXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIC8qKiBCYXNlIENTUyBjbGFzcyBmb3IgdGhlIGxpbmsgKi9cbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAvKiogV2hldGhlciB0byB1c2UgZXhhY3QgcGF0aCBtYXRjaGluZyBmb3IgYWN0aXZlIHN0YXRlICovXG4gIGV4YWN0PzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgdG8gcHJlbG9hZCB0aGUgcm91dGUgd2hlbiBtb3VzZSBlbnRlcnMgdGhlIGxpbmsgKi9cbiAgcHJlbG9hZE9uTW91c2VFbnRlcj86IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRvIHByZWxvYWQgdGhlIHJvdXRlIHdoZW4gbW91c2UgaXMgcHJlc3NlZCBkb3duICovXG4gIHByZWxvYWRPbk1vdXNlRG93bj86IGJvb2xlYW47XG4gIC8qKiBEaXJlY3QgaHJlZiBhdHRyaWJ1dGUgKG92ZXJyaWRlcyAndG8nIHByb3ApICovXG4gIGhyZWY/OiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHRoZSBsaW5rIHNob3VsZCBiZSBkaXNhYmxlZCAqL1xuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcbiAgLyoqIENsaWNrIGhhbmRsZXIgKi9cbiAgb25DbGljaz86IFJlYWN0Lk1vdXNlRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PjtcbiAgLyoqIEZvY3VzIGhhbmRsZXIgKi9cbiAgb25Gb2N1cz86IFJlYWN0LkZvY3VzRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PjtcbiAgLyoqIE1vdXNlIG92ZXIgaGFuZGxlciAqL1xuICBvbk1vdXNlT3Zlcj86IFJlYWN0Lk1vdXNlRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PjtcbiAgLyoqIFRhcmdldCBhdHRyaWJ1dGUgZm9yIHRoZSBsaW5rICovXG4gIHRhcmdldD86IEhUTUxBdHRyaWJ1dGVBbmNob3JUYXJnZXQ7XG4gIC8qKiBEZXN0aW5hdGlvbiBmb3IgdGhlIGxpbmsgKGNhbiBiZSBzdHJpbmcgcGF0aCBvciBsb2NhdGlvbiBvYmplY3QpICovXG4gIHRvPzogSGlzdG9yeUxvY2F0aW9uIHwgc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgZmlsdGVycyBvYmplY3QgdG8gc2VyaWFsaXplIHVzaW5nIGRlc3RpbmF0aW9uIHJvdXRlIHNjaGVtYSAoaWdub3JlZCBpZiBgdG8uc2VhcmNoYCBpcyBzZXQpICovXG4gIGZpbHRlcnM/OiBURmlsdGVycztcbiAgLyoqIE9wdGlvbmFsIHJhdyBxdWVyeSBwYXJhbXMgKG5vbi1zY2hlbWEga2V5cykgdG8gbWVyZ2UgKGlnbm9yZWQgaWYgYHRvLnNlYXJjaGAgaXMgc2V0KSAqL1xuICBxdWVyeT86IFRSYXdRdWVyeTtcbn07XG5cbi8qKlxuICogTmF2aWdhdGlvbiBjb21wb25lbnQgdGhhdCBwcm92aWRlcyBjbGllbnQtc2lkZSByb3V0aW5nIHdpdGggcHJlbG9hZGluZyBjYXBhYmlsaXRpZXMuXG4gKlxuICogVGhpcyBjb21wb25lbnQgaW50ZWdyYXRlcyB3aXRoIHRoZSByb3V0ZXIncyBSb3V0aW5nQ29udGV4dCB0byBwcm92aWRlIHNtb290aCBuYXZpZ2F0aW9uXG4gKiB3aXRoIG9wdGlvbmFsIHByZWxvYWRpbmcgb2Ygcm91dGUgY29tcG9uZW50cyBhbmQgZGF0YS4gSXQgYXV0b21hdGljYWxseSBhcHBsaWVzIGFjdGl2ZVxuICogc3R5bGluZyB3aGVuIHRoZSBjdXJyZW50IHJvdXRlIG1hdGNoZXMgdGhlIGxpbmsncyBkZXN0aW5hdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiAvLyBCYXNpYyB1c2FnZVxuICogPExpbmsgdG89XCIvdXNlcnMvMTIzXCI+VmlldyBQcm9maWxlPC9MaW5rPlxuICpcbiAqIC8vIFdpdGggYWN0aXZlIHN0eWxpbmdcbiAqIDxMaW5rIHRvPVwiL2Rhc2hib2FyZFwiIGFjdGl2ZUNsYXNzTmFtZT1cImFjdGl2ZVwiIGV4YWN0PlxuICogICBEYXNoYm9hcmRcbiAqIDwvTGluaz5cbiAqXG4gKiAvLyBXaXRoIHByZWxvYWRpbmcgb24gaG92ZXJcbiAqIDxMaW5rIHRvPVwiL2hlYXZ5LXBhZ2VcIiBwcmVsb2FkT25Nb3VzZUVudGVyPlxuICogICBIZWF2eSBQYWdlXG4gKiA8L0xpbms+XG4gKiBgYGBcbiAqL1xuY29uc3QgTGluayA9IGZvcndhcmRSZWY8SFRNTEFuY2hvckVsZW1lbnQsIFByb3BzPigocHJvcHM6IFByb3BzLCByZWYpID0+IHtcbiAgY29uc3Qgcm91dGVyID0gdXNlQ29udGV4dChSb3V0aW5nQ29udGV4dCk7XG4gIGNvbnN0IHtcbiAgICBhY3RpdmVDbGFzc05hbWUsXG4gICAgY2hpbGRyZW4sXG4gICAgY2xhc3NOYW1lLFxuICAgIGV4YWN0ID0gZmFsc2UsXG4gICAgaXNEaXNhYmxlZCA9IGZhbHNlLFxuICAgIG9uQ2xpY2ssXG4gICAgb25Gb2N1cyxcbiAgICBvbk1vdXNlT3ZlcixcbiAgICBwcmVsb2FkT25Nb3VzZUVudGVyID0gZmFsc2UsXG4gICAgcHJlbG9hZE9uTW91c2VEb3duID0gdHJ1ZSxcbiAgICB0YXJnZXQsXG4gICAgdG8sXG4gICAgaHJlZixcbiAgICBmaWx0ZXJzLFxuICAgIHF1ZXJ5LFxuICB9ID0gcHJvcHM7XG5cbiAgY29uc3QgcGF0aG5hbWUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuICcjJztcbiAgICB9XG5cbiAgICBsZXQgbmV3SHJlZiA9IGhyZWY7XG5cbiAgICBpZiAobmV3SHJlZiA9PSBudWxsKSB7XG4gICAgICBpZiAodHlwZW9mIHRvID09PSAnc3RyaW5nJykge1xuICAgICAgICBuZXdIcmVmID0gdG87XG4gICAgICB9IGVsc2UgaWYgKHRvPy5wYXRobmFtZSAhPSBudWxsKSB7XG4gICAgICAgIG5ld0hyZWYgPSB0by5wYXRobmFtZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBuZXdIcmVmID8/PSAnIyc7XG5cbiAgICByZXR1cm4gbmV3SHJlZjtcbiAgfSwgW2hyZWYsIGlzRGlzYWJsZWQsIHRvXSk7XG5cbiAgLy8gUmVzb2x2ZSBzZWFyY2ggc3RyaW5nIGZyb20gZXhwbGljaXQgYHRvLnNlYXJjaGAgb3IgZnJvbSBwcm92aWRlZCBxdWVyeVxuICAvLyB0cmVhdGVkIGFzIGZpbHRlcnMgd2l0aCB0aGUgYWN0aXZlIHNjaGVtYS5cbiAgY29uc3Qgc2VhcmNoID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgaWYgKHRvICE9IG51bGwgJiYgdHlwZW9mIHRvID09PSAnb2JqZWN0JyAmJiB0by5zZWFyY2ggIT0gbnVsbCkge1xuICAgICAgaWYgKHRvLnNlYXJjaCA9PT0gJycpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuICAgICAgaWYgKHRvLnNlYXJjaC5zdGFydHNXaXRoKCc/JykpIHtcbiAgICAgICAgcmV0dXJuIHRvLnNlYXJjaDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBgPyR7dG8uc2VhcmNofWA7XG4gICAgfVxuICAgIGNvbnN0IGZpbHRlcklucHV0ID0gZmlsdGVycyA/PyBxdWVyeTtcbiAgICBsZXQgcmF3UXVlcnlJbnB1dDogdHlwZW9mIHF1ZXJ5IHwgdW5kZWZpbmVkO1xuICAgIGlmIChmaWx0ZXJzICE9IG51bGwpIHtcbiAgICAgIHJhd1F1ZXJ5SW5wdXQgPSBxdWVyeTtcbiAgICB9XG4gICAgaWYgKGZpbHRlcklucHV0ID09IG51bGwgJiYgcmF3UXVlcnlJbnB1dCA9PSBudWxsKSByZXR1cm4gJyc7XG4gICAgaWYgKHJvdXRlciA9PSBudWxsKSByZXR1cm4gJyc7XG4gICAgY29uc3QgZW50cnkgPSByb3V0ZXIuZ2V0KCk7XG4gICAgcmV0dXJuIGJ1aWxkQ29tYmluZWRTZWFyY2goe1xuICAgICAgZmlsdGVyczogZmlsdGVySW5wdXQgYXMgYW55LFxuICAgICAgcXVlcnk6IHJhd1F1ZXJ5SW5wdXQgYXMgYW55LFxuICAgICAgcXVlcnlTY2hlbWE6IGVudHJ5LmFjdGl2ZVF1ZXJ5U2NoZW1hIGFzIGFueSxcbiAgICB9KTtcbiAgfSwgW2ZpbHRlcnMsIGlzRGlzYWJsZWQsIHF1ZXJ5LCByb3V0ZXIsIHRvXSk7XG5cbiAgY29uc3QgaGFzaCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGlmICh0byAhPSBudWxsICYmIHR5cGVvZiB0byA9PT0gJ29iamVjdCcgJiYgdG8uaGFzaCAhPSBudWxsKSB7XG4gICAgICBpZiAodG8uaGFzaCA9PT0gJycpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuICAgICAgaWYgKHRvLmhhc2guc3RhcnRzV2l0aCgnIycpKSB7XG4gICAgICAgIHJldHVybiB0by5oYXNoO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGAjJHt0by5oYXNofWA7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfSwgW2lzRGlzYWJsZWQsIHRvXSk7XG5cbiAgY29uc3QgaW5pdGlhbElzQWN0aXZlID0gaXNDdXJyZW50UGF0aG5hbWUoZXhhY3QsIHJvdXRlcj8uaGlzdG9yeSwgcGF0aG5hbWUpO1xuICBjb25zdCBbaXNBY3RpdmUsIHNldElzQWN0aXZlXSA9IFJlYWN0LnVzZVN0YXRlKGluaXRpYWxJc0FjdGl2ZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBvbkNoYW5nZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IG5ld0lzQWN0aXZlID0gaXNDdXJyZW50UGF0aG5hbWUoZXhhY3QsIHJvdXRlcj8uaGlzdG9yeSwgcGF0aG5hbWUpO1xuICAgICAgc2V0SXNBY3RpdmUobmV3SXNBY3RpdmUpO1xuICAgIH07XG5cbiAgICBpZiAocm91dGVyID09IG51bGwpIHtcbiAgICAgIHJldHVybiAoKSA9PiB7fTtcbiAgICB9XG5cbiAgICByb3V0ZXIuaGlzdG9yeS5zdWJzY3JpYmUob25DaGFuZ2UpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHJvdXRlci5oaXN0b3J5LnVuc3Vic2NyaWJlKG9uQ2hhbmdlKTtcbiAgICB9O1xuICB9LCBbZXhhY3QsIHBhdGhuYW1lLCByb3V0ZXJdKTtcblxuICBjb25zdCBjbGFzc05hbWVzID0gW2NsYXNzTmFtZV07XG5cbiAgaWYgKGlzQWN0aXZlKSB7XG4gICAgY2xhc3NOYW1lcy5wdXNoKGFjdGl2ZUNsYXNzTmFtZSk7XG4gIH1cblxuICAvLyBXaGVuIHRoZSB1c2VyIGNsaWNrcywgY2hhbmdlIHJvdXRlXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4ge1xuICAgICAgaWYgKCFpc0Rpc2FibGVkICYmIHR5cGVvZiBvbkNsaWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIG9uQ2xpY2soZXZlbnQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQgfHxcbiAgICAgICAgZXZlbnQubWV0YUtleSB8fFxuICAgICAgICBldmVudC5hbHRLZXkgfHxcbiAgICAgICAgZXZlbnQuY3RybEtleSB8fFxuICAgICAgICBldmVudC5zaGlmdEtleSB8fFxuICAgICAgICBldmVudC5idXR0b24gIT09IDAgfHxcbiAgICAgICAgKHRhcmdldCAhPSBudWxsICYmIHRhcmdldCAhPT0gJ19zZWxmJylcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBpZiAocm91dGVyID09IG51bGwgfHwgaXNEaXNhYmxlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHJvdXRlci5oaXN0b3J5LnB1c2goe1xuICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgc2VhcmNoLFxuICAgICAgICBoYXNoLFxuICAgICAgICBkZWJ1Z0NvbnRleHQ6IHtcbiAgICAgICAgICBvcmlnaW46ICdsaW5rLWNsaWNrJyxcbiAgICAgICAgICB0cmlnZ2VyOiAnbGluaycsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtoYXNoLCBpc0Rpc2FibGVkLCBvbkNsaWNrLCBwYXRobmFtZSwgcm91dGVyLCB0YXJnZXQsIHNlYXJjaF0sXG4gICk7XG5cbiAgLy8gQ2FsbGJhY2sgdG8gcHJlbG9hZCBqdXN0IHRoZSBjb2RlIGZvciB0aGUgcm91dGU6XG4gIC8vIHdlIHBhc3MgdGhpcyB0byBvbk1vdXNlRW50ZXIsIHdoaWNoIGlzIGEgd2Vha2VyIHNpZ25hbFxuICAvLyB0aGF0IHRoZSB1c2VyICptYXkqIG5hdmlnYXRlIHRvIHRoZSByb3V0ZS5cbiAgY29uc3QgaGFuZGxlTW91c2VFbnRlciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAocm91dGVyID09IG51bGwgfHwgaXNEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldCA9IHsgcGF0aG5hbWUsIHNlYXJjaCwgc291cmNlOiAncHJlbG9hZC1ob3ZlcicgfSBhcyBjb25zdDtcbiAgICBpZiAocHJlbG9hZE9uTW91c2VFbnRlcikge1xuICAgICAgcm91dGVyLnByZWxvYWQodGFyZ2V0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcm91dGVyLnByZWxvYWRDb2RlKHRhcmdldCk7XG4gICAgfVxuICB9LCBbcm91dGVyLCBpc0Rpc2FibGVkLCBwcmVsb2FkT25Nb3VzZUVudGVyLCBwYXRobmFtZSwgc2VhcmNoXSk7XG5cbiAgLy8gQ2FsbGJhY2sgdG8gcHJlbG9hZCB0aGUgY29kZSBhbmQgZGF0YSBmb3IgdGhlIHJvdXRlOlxuICAvLyB3ZSBwYXNzIHRoaXMgdG8gb25Nb3VzZURvd24sIHNpbmNlIHRoaXMgaXMgYSBzdHJvbmdlclxuICAvLyBzaWduYWwgdGhhdCB0aGUgdXNlciB3aWxsIGxpa2VseSBjb21wbGV0ZSB0aGUgbmF2aWdhdGlvblxuICBjb25zdCBoYW5kbGVNb3VzZURvd24gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKHJvdXRlciA9PSBudWxsIHx8IGlzRGlzYWJsZWQgfHwgIXByZWxvYWRPbk1vdXNlRG93bikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByb3V0ZXIucHJlbG9hZCh7IHBhdGhuYW1lLCBzZWFyY2gsIHNvdXJjZTogJ2xpbmstY2xpY2snIH0pO1xuICB9LCBbcm91dGVyLCBpc0Rpc2FibGVkLCBwcmVsb2FkT25Nb3VzZURvd24sIHBhdGhuYW1lLCBzZWFyY2hdKTtcblxuICBsZXQgaHJlZlZhbHVlID0gcGF0aG5hbWU7XG4gIGlmICh0eXBlb2Ygc2VhcmNoID09PSAnc3RyaW5nJyAmJiBzZWFyY2gubGVuZ3RoID4gMCkge1xuICAgIGhyZWZWYWx1ZSA9IGAke3BhdGhuYW1lfSR7c2VhcmNofWA7XG4gIH1cbiAgaWYgKHR5cGVvZiBoYXNoID09PSAnc3RyaW5nJyAmJiBoYXNoLmxlbmd0aCA+IDApIHtcbiAgICBocmVmVmFsdWUgPSBgJHtocmVmVmFsdWV9JHtoYXNofWA7XG4gIH1cbiAgcmV0dXJuIChcbiAgICA8YVxuICAgICAgY2xhc3NOYW1lPXtjeChjbGFzc05hbWVzKX1cbiAgICAgIGhyZWY9e2hyZWZWYWx1ZX1cbiAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrfVxuICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgIG9uTW91c2VEb3duPXtoYW5kbGVNb3VzZURvd259XG4gICAgICBvbk1vdXNlRW50ZXI9e2hhbmRsZU1vdXNlRW50ZXJ9XG4gICAgICBvbk1vdXNlT3Zlcj17b25Nb3VzZU92ZXJ9XG4gICAgICByZWY9e3JlZn1cbiAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2E+XG4gICk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgTGluaztcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RouteComponent.d.ts","sourceRoot":"","sources":["../../src/routing/RouteComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAyB,MAAM,OAAO,CAAC;AAI9D,KAAK,KAAK,GAAG;IACX,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,CAAC;AAaF,QAAA,MAAM,cAAc,GAAI,OAAO,KAAK,KAAG,SAqBtC,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { useContext, useEffect } from 'react';
|
|
2
|
+
import RoutingContext from './RoutingContext.js';
|
|
3
|
+
const RouteComponent = (props) => {
|
|
4
|
+
const { content, redirectToPathname } = props;
|
|
5
|
+
const router = useContext(RoutingContext);
|
|
6
|
+
useEffect(() => {
|
|
7
|
+
if (router == null) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
if (redirectToPathname == null) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
router.history.set({
|
|
14
|
+
pathname: redirectToPathname,
|
|
15
|
+
});
|
|
16
|
+
}, [redirectToPathname, router]);
|
|
17
|
+
return content ?? null;
|
|
18
|
+
};
|
|
19
|
+
export default RouteComponent;
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm91dGVDb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcm91dGluZy9Sb3V0ZUNvbXBvbmVudC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRTlELE9BQU8sY0FBYyxNQUFNLHFCQUFxQixDQUFDO0FBa0JqRCxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQVksRUFBYSxFQUFFO0lBQ2pELE1BQU0sRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFFOUMsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRTFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixJQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNuQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksa0JBQWtCLElBQUksSUFBSSxFQUFFLENBQUM7WUFDL0IsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUNqQixRQUFRLEVBQUUsa0JBQWtCO1NBQzdCLENBQUMsQ0FBQztJQUNMLENBQUMsRUFBRSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFHakMsT0FBTyxPQUFPLElBQUksSUFBSSxDQUFDO0FBQ3pCLENBQUMsQ0FBQztBQUVGLGVBQWUsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBSZWFjdE5vZGUsIHVzZUNvbnRleHQsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IFJvdXRpbmdDb250ZXh0IGZyb20gJy4vUm91dGluZ0NvbnRleHQuanMnO1xuXG50eXBlIFByb3BzID0ge1xuICBjb250ZW50PzogUmVhY3ROb2RlO1xuICByZWRpcmVjdFRvUGF0aG5hbWU6IHN0cmluZyB8IG51bGw7XG59O1xuXG4vKipcbiAqIFRoZSBgcmVzb3VyY2VQYWdlYCBwcm9wZXJ0eSBmcm9tIHRoZSByb3V0ZSBlbnRyeSBpcyBhIFJlc291cmNlLCB3aGljaCBtYXkgb3IgbWF5IG5vdCBiZSByZWFkeS5cbiAqIFdlIHVzZSBhIGhlbHBlciBjaGlsZCBjb21wb25lbnQgdG8gdW53cmFwIHRoZSByZXNvdXJjZSB3aXRoIGNvbXBvbmVudC5yZWFkKCksIGFuZCB0aGVuXG4gKiByZW5kZXIgaXQgaWYgaXRzIHJlYWR5LlxuICpcbiAqIE5PVEU6IGNhbGxpbmcgcm91dGVFbnRyeS5yb3V0ZS5jb21wb25lbnQucmVhZCgpIGRpcmVjdGx5IGluIFJvdXRlUmVuZGVyZXIgd29sZG4ndCB3b3JrIHRoZVxuICogd2F5IHdlJ2QgZXhwZWN0LiBCZWNhdXNlIHRoYXQgbWV0aG9kIGNvdWxkIHRocm93IC0gZWl0aGVyIHN1c3BlbmRpbmcgb3Igb24gZXJyb3IgLSB0aGUgZXJyb3JcbiAqIHdvdWxkIGJ1YmJsZSB1cCB0byB0aGUgKmNhbGxlciogb2YgUm91dGVSZW5kZXJlci4gV2Ugd2FudCB0aGUgc3VzcGVuZC9lcnJvciB0byBidWJibGUgdXAgdG9cbiAqIG91ciBFcnJvckJvdW5kYXJ5L1N1c3BlbnNlIGNvbXBvbmVudHMsIHNvIHdlIGhhdmUgdG8gZW5zdXJlIHRoYXQgdGhlIHN1c3BlbmQvZXJyb3IgaGFwcGVuc1xuICogaW4gYSBjaGlsZCBjb21wb25lbnQuXG4gKi9cbmNvbnN0IFJvdXRlQ29tcG9uZW50ID0gKHByb3BzOiBQcm9wcyk6IFJlYWN0Tm9kZSA9PiB7XG4gIGNvbnN0IHsgY29udGVudCwgcmVkaXJlY3RUb1BhdGhuYW1lIH0gPSBwcm9wcztcblxuICBjb25zdCByb3V0ZXIgPSB1c2VDb250ZXh0KFJvdXRpbmdDb250ZXh0KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChyb3V0ZXIgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChyZWRpcmVjdFRvUGF0aG5hbWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJvdXRlci5oaXN0b3J5LnNldCh7XG4gICAgICBwYXRobmFtZTogcmVkaXJlY3RUb1BhdGhuYW1lLFxuICAgIH0pO1xuICB9LCBbcmVkaXJlY3RUb1BhdGhuYW1lLCByb3V0ZXJdKTtcblxuICAvLyBUT0RPOiBIYW5kbGUgU3VzcGVuc2UvbG9hZGVyXG4gIHJldHVybiBjb250ZW50ID8/IG51bGw7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBSb3V0ZUNvbXBvbmVudDtcbiJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type JSX, type ReactNode } from 'react';
|
|
2
|
+
import type { PreparedMatchRoute, RouterMatchedRoute } from '../types.js';
|
|
3
|
+
import type { ParamData } from 'path-to-regexp';
|
|
4
|
+
type Props<TVars extends ParamData = ParamData> = {
|
|
5
|
+
children?: ReactNode;
|
|
6
|
+
match: RouterMatchedRoute<TVars> | null;
|
|
7
|
+
preparedRoute: PreparedMatchRoute;
|
|
8
|
+
};
|
|
9
|
+
declare const RouteComponentWrapper: <TVars extends ParamData = ParamData>(props: Props<TVars>) => JSX.Element | null;
|
|
10
|
+
export default RouteComponentWrapper;
|
|
11
|
+
//# sourceMappingURL=RouteComponentWrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RouteComponentWrapper.d.ts","sourceRoot":"","sources":["../../src/routing/RouteComponentWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,GAAG,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAkChD,KAAK,KAAK,CAAC,KAAK,SAAS,SAAS,GAAG,SAAS,IAAI;IAChD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IACxC,aAAa,EAAE,kBAAkB,CAAC;CACnC,CAAC;AAaF,QAAA,MAAM,qBAAqB,GAAI,KAAK,SAAS,SAAS,GAAG,SAAS,EAChE,OAAO,KAAK,CAAC,KAAK,CAAC,KAClB,GAAG,CAAC,OAAO,GAAG,IAgIhB,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useContext, useMemo } from 'react';
|
|
3
|
+
import { HttpRedirect } from '../errors/index.js';
|
|
4
|
+
import RoutingContext from './RoutingContext.js';
|
|
5
|
+
import RouteComponent from './RouteComponent.js';
|
|
6
|
+
import { readPreparedRouteValue } from '../prepareResource.js';
|
|
7
|
+
function RouteHighlightBoundary(props) {
|
|
8
|
+
const { highlightId, children } = props;
|
|
9
|
+
return (_jsxs(_Fragment, { children: [_jsx("span", { "data-plumile-route-start": highlightId, "aria-hidden": "true", style: { display: 'none' } }), children, _jsx("span", { "data-plumile-route-end": highlightId, "aria-hidden": "true", style: { display: 'none' } })] }));
|
|
10
|
+
}
|
|
11
|
+
const RouteComponentWrapper = (props) => {
|
|
12
|
+
const { children, match, preparedRoute } = props;
|
|
13
|
+
const { resourcePage, preparedResource, render, redirectTo, highlightId } = preparedRoute;
|
|
14
|
+
const router = useContext(RoutingContext);
|
|
15
|
+
const currentEntry = router?.get();
|
|
16
|
+
const rawQuery = currentEntry?.query ?? {};
|
|
17
|
+
const routeContext = currentEntry?.context;
|
|
18
|
+
const typedQuery = rawQuery;
|
|
19
|
+
const preparedSegments = currentEntry?.preparedMatch.segments ?? [];
|
|
20
|
+
const { segmentIndex } = preparedRoute;
|
|
21
|
+
const leafSegment = preparedSegments.at(-1) ?? preparedRoute;
|
|
22
|
+
const route = useMemo(() => {
|
|
23
|
+
if (match == null) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
return match.route;
|
|
27
|
+
}, [match]);
|
|
28
|
+
const prepared = useMemo(() => {
|
|
29
|
+
return readPreparedRouteValue(preparedResource);
|
|
30
|
+
}, [preparedResource]);
|
|
31
|
+
const Component = useMemo(() => {
|
|
32
|
+
if (resourcePage == null) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
return resourcePage.read();
|
|
36
|
+
}, [resourcePage]);
|
|
37
|
+
let content = null;
|
|
38
|
+
let redirectToPathname = null;
|
|
39
|
+
if (render != null) {
|
|
40
|
+
try {
|
|
41
|
+
content = render({
|
|
42
|
+
children,
|
|
43
|
+
Component,
|
|
44
|
+
preparedSegment: preparedRoute,
|
|
45
|
+
preparedRoute,
|
|
46
|
+
preparedSegments,
|
|
47
|
+
segmentIndex,
|
|
48
|
+
leafSegment,
|
|
49
|
+
route,
|
|
50
|
+
prepared,
|
|
51
|
+
context: routeContext,
|
|
52
|
+
rawQuery,
|
|
53
|
+
query: typedQuery,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
if (error instanceof HttpRedirect && router != null) {
|
|
58
|
+
content = null;
|
|
59
|
+
redirectToPathname = error.redirectTo;
|
|
60
|
+
}
|
|
61
|
+
else if (error instanceof Promise) {
|
|
62
|
+
content = error;
|
|
63
|
+
}
|
|
64
|
+
else if (typeof error === 'undefined') {
|
|
65
|
+
content = undefined;
|
|
66
|
+
redirectToPathname = null;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
console.error('ERROR: ', error);
|
|
70
|
+
content = null;
|
|
71
|
+
redirectToPathname = null;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
const pathname = redirectTo ?? redirectToPathname ?? null;
|
|
76
|
+
const wrapWithHighlight = (node) => {
|
|
77
|
+
if (typeof highlightId !== 'string') {
|
|
78
|
+
return _jsx(_Fragment, { children: node });
|
|
79
|
+
}
|
|
80
|
+
return (_jsx(RouteHighlightBoundary, { highlightId: highlightId, children: node }));
|
|
81
|
+
};
|
|
82
|
+
if (render != null) {
|
|
83
|
+
if (content instanceof Promise) {
|
|
84
|
+
throw content;
|
|
85
|
+
}
|
|
86
|
+
if (pathname != null) {
|
|
87
|
+
return _jsx(RouteComponent, { redirectToPathname: pathname });
|
|
88
|
+
}
|
|
89
|
+
if (typeof content !== 'undefined') {
|
|
90
|
+
return wrapWithHighlight(content ?? null);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (Component == null) {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
const componentNode = (_jsx(Component, { match: match, preparedRoute: preparedRoute, route: route, prepared: prepared, query: typedQuery, preparedSegments: preparedSegments, segmentIndex: segmentIndex, leafSegment: leafSegment, children: children }));
|
|
97
|
+
const content2 = wrapWithHighlight(componentNode);
|
|
98
|
+
return _jsx(RouteComponent, { redirectToPathname: pathname, content: content2 });
|
|
99
|
+
};
|
|
100
|
+
export default RouteComponentWrapper;
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm91dGVDb21wb25lbnRXcmFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JvdXRpbmcvUm91dGVDb21wb25lbnRXcmFwcGVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQTRCLE1BQU0sT0FBTyxDQUFDO0FBSXRFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRCxPQUFPLGNBQWMsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLGNBQWMsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVUvRCxTQUFTLHNCQUFzQixDQUFDLEtBQTZCO0lBQzNELE1BQU0sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBQ3hDLE9BQU8sQ0FDTCw4QkFDRSwyQ0FDNEIsV0FBVyxpQkFDekIsTUFBTSxFQUNsQixLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQzFCLEVBQ0QsUUFBUSxFQUNULHlDQUMwQixXQUFXLGlCQUN2QixNQUFNLEVBQ2xCLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FDMUIsSUFDRCxDQUNKLENBQUM7QUFDSixDQUFDO0FBbUJELE1BQU0scUJBQXFCLEdBQUcsQ0FDNUIsS0FBbUIsRUFDQyxFQUFFO0lBQ3RCLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUNqRCxNQUFNLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEdBQ3ZFLGFBQWEsQ0FBQztJQUNoQixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDMUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxFQUFF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dHlwZSBKU1gsIHR5cGUgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgdHlwZSB7IFByZXBhcmVkTWF0Y2hSb3V0ZSwgUm91dGVyTWF0Y2hlZFJvdXRlIH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBQYXJhbURhdGEgfSBmcm9tICdwYXRoLXRvLXJlZ2V4cCc7XG5pbXBvcnQgeyBIdHRwUmVkaXJlY3QgfSBmcm9tICcuLi9lcnJvcnMvaW5kZXguanMnO1xuXG5pbXBvcnQgUm91dGluZ0NvbnRleHQgZnJvbSAnLi9Sb3V0aW5nQ29udGV4dC5qcyc7XG5pbXBvcnQgUm91dGVDb21wb25lbnQgZnJvbSAnLi9Sb3V0ZUNvbXBvbmVudC5qcyc7XG5pbXBvcnQgeyByZWFkUHJlcGFyZWRSb3V0ZVZhbHVlIH0gZnJvbSAnLi4vcHJlcGFyZVJlc291cmNlLmpzJztcblxudHlwZSBIaWdobGlnaHRCb3VuZGFyeVByb3BzID0ge1xuICBoaWdobGlnaHRJZDogc3RyaW5nO1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xufTtcblxuLyoqXG4gKiBXcmFwcyB0aGUgcmVuZGVyZWQgcm91dGUgb3V0cHV0IHdpdGggaW52aXNpYmxlIG1hcmtlcnMgc28gRGV2VG9vbHMgY2FuIG1hcCBpdCBiYWNrLlxuICovXG5mdW5jdGlvbiBSb3V0ZUhpZ2hsaWdodEJvdW5kYXJ5KHByb3BzOiBIaWdobGlnaHRCb3VuZGFyeVByb3BzKTogSlNYLkVsZW1lbnQge1xuICBjb25zdCB7IGhpZ2hsaWdodElkLCBjaGlsZHJlbiB9ID0gcHJvcHM7XG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxzcGFuXG4gICAgICAgIGRhdGEtcGx1bWlsZS1yb3V0ZS1zdGFydD17aGlnaGxpZ2h0SWR9XG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6ICdub25lJyB9fVxuICAgICAgLz5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDxzcGFuXG4gICAgICAgIGRhdGEtcGx1bWlsZS1yb3V0ZS1lbmQ9e2hpZ2hsaWdodElkfVxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiAnbm9uZScgfX1cbiAgICAgIC8+XG4gICAgPC8+XG4gICk7XG59XG5cbnR5cGUgUHJvcHM8VFZhcnMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGE+ID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbiAgbWF0Y2g6IFJvdXRlck1hdGNoZWRSb3V0ZTxUVmFycz4gfCBudWxsO1xuICBwcmVwYXJlZFJvdXRlOiBQcmVwYXJlZE1hdGNoUm91dGU7XG59O1xuXG4vKipcbiAqIFRoZSBgcmVzb3VyY2VQYWdlYCBwcm9wZXJ0eSBmcm9tIHRoZSByb3V0ZSBlbnRyeSBpcyBhIFJlc291cmNlLCB3aGljaCBtYXkgb3IgbWF5IG5vdCBiZSByZWFkeS5cbiAqIFdlIHVzZSBhIGhlbHBlciBjaGlsZCBjb21wb25lbnQgdG8gdW53cmFwIHRoZSByZXNvdXJjZSB3aXRoIGNvbXBvbmVudC5yZWFkKCksIGFuZCB0aGVuXG4gKiByZW5kZXIgaXQgaWYgaXRzIHJlYWR5LlxuICpcbiAqIE5PVEU6IGNhbGxpbmcgcm91dGVFbnRyeS5yb3V0ZS5jb21wb25lbnQucmVhZCgpIGRpcmVjdGx5IGluIFJvdXRlUmVuZGVyZXIgd29sZG4ndCB3b3JrIHRoZVxuICogd2F5IHdlJ2QgZXhwZWN0LiBCZWNhdXNlIHRoYXQgbWV0aG9kIGNvdWxkIHRocm93IC0gZWl0aGVyIHN1c3BlbmRpbmcgb3Igb24gZXJyb3IgLSB0aGUgZXJyb3JcbiAqIHdvdWxkIGJ1YmJsZSB1cCB0byB0aGUgKmNhbGxlciogb2YgUm91dGVSZW5kZXJlci4gV2Ugd2FudCB0aGUgc3VzcGVuZC9lcnJvciB0byBidWJibGUgdXAgdG9cbiAqIG91ciBFcnJvckJvdW5kYXJ5L1N1c3BlbnNlIGNvbXBvbmVudHMsIHNvIHdlIGhhdmUgdG8gZW5zdXJlIHRoYXQgdGhlIHN1c3BlbmQvZXJyb3IgaGFwcGVuc1xuICogaW4gYSBjaGlsZCBjb21wb25lbnQuXG4gKi9cbmNvbnN0IFJvdXRlQ29tcG9uZW50V3JhcHBlciA9IDxUVmFycyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YT4oXG4gIHByb3BzOiBQcm9wczxUVmFycz4sXG4pOiBKU1guRWxlbWVudCB8IG51bGwgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBtYXRjaCwgcHJlcGFyZWRSb3V0ZSB9ID0gcHJvcHM7XG4gIGNvbnN0IHsgcmVzb3VyY2VQYWdlLCBwcmVwYXJlZFJlc291cmNlLCByZW5kZXIsIHJlZGlyZWN0VG8sIGhpZ2hsaWdodElkIH0gPVxuICAgIHByZXBhcmVkUm91dGU7IC8vIHJvdXRlRGF0YVxuICBjb25zdCByb3V0ZXIgPSB1c2VDb250ZXh0KFJvdXRpbmdDb250ZXh0KTtcbiAgY29uc3QgY3VycmVudEVudHJ5ID0gcm91dGVyPy5nZXQoKTtcbiAgY29uc3QgcmF3UXVlcnkgPSBjdXJyZW50RW50cnk/LnF1ZXJ5ID8/IHt9O1xuICBjb25zdCByb3V0ZUNvbnRleHQgPSBjdXJyZW50RW50cnk/LmNvbnRleHQ7XG4gIGNvbnN0IHR5cGVkUXVlcnkgPSByYXdRdWVyeTsgLy8gbGVnYWN5IHR5cGVkUXVlcnkgcmVtb3ZlZFxuICBjb25zdCBwcmVwYXJlZFNlZ21lbnRzID0gY3VycmVudEVudHJ5Py5wcmVwYXJlZE1hdGNoLnNlZ21lbnRzID8/IFtdO1xuICBjb25zdCB7IHNlZ21lbnRJbmRleCB9ID0gcHJlcGFyZWRSb3V0ZTtcbiAgY29uc3QgbGVhZlNlZ21lbnQgPSBwcmVwYXJlZFNlZ21lbnRzLmF0KC0xKSA/PyBwcmVwYXJlZFJvdXRlO1xuXG4gIGNvbnN0IHJvdXRlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKG1hdGNoID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBtYXRjaC5yb3V0ZTtcbiAgfSwgW21hdGNoXSk7XG5cbiAgY29uc3QgcHJlcGFyZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gcmVhZFByZXBhcmVkUm91dGVWYWx1ZShwcmVwYXJlZFJlc291cmNlKTtcbiAgfSwgW3ByZXBhcmVkUmVzb3VyY2VdKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3Byb21pc2UtZnVuY3Rpb24tYXN5bmNcbiAgY29uc3QgQ29tcG9uZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKHJlc291cmNlUGFnZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbnNpc3RlbnQtcmV0dXJuXG4gICAgcmV0dXJuIHJlc291cmNlUGFnZS5yZWFkKCk7XG4gIH0sIFtyZXNvdXJjZVBhZ2VdKTtcblxuICBsZXQgY29udGVudDpcbiAgICB8IEpTWC5FbGVtZW50XG4gICAgfCBudWxsXG4gICAgfCB1bmRlZmluZWRcbiAgICB8IFByb21pc2U8SlNYLkVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkPiA9IG51bGw7XG4gIGxldCByZWRpcmVjdFRvUGF0aG5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIGlmIChyZW5kZXIgIT0gbnVsbCkge1xuICAgIHRyeSB7XG4gICAgICBjb250ZW50ID0gcmVuZGVyKHtcbiAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IE9LIGNhbiBiZSBhIHN1c3BlbmRcbiAgICAgICAgQ29tcG9uZW50LFxuICAgICAgICBwcmVwYXJlZFNlZ21lbnQ6IHByZXBhcmVkUm91dGUsXG4gICAgICAgIHByZXBhcmVkUm91dGUsXG4gICAgICAgIHByZXBhcmVkU2VnbWVudHMsXG4gICAgICAgIHNlZ21lbnRJbmRleCxcbiAgICAgICAgbGVhZlNlZ21lbnQsXG4gICAgICAgIHJvdXRlLFxuICAgICAgICBwcmVwYXJlZCxcbiAgICAgICAgY29udGV4dDogcm91dGVDb250ZXh0LFxuICAgICAgICByYXdRdWVyeSxcbiAgICAgICAgcXVlcnk6IHR5cGVkUXVlcnksXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cFJlZGlyZWN0ICYmIHJvdXRlciAhPSBudWxsKSB7XG4gICAgICAgIGNvbnRlbnQgPSBudWxsO1xuICAgICAgICByZWRpcmVjdFRvUGF0aG5hbWUgPSBlcnJvci5yZWRpcmVjdFRvO1xuICAgICAgICAvLyBJZiBpdCdzIHN1c3BlbmRlZFxuICAgICAgfSBlbHNlIGlmIChlcnJvciBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgY29udGVudCA9IGVycm9yO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZXJyb3IgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGNvbnRlbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHJlZGlyZWN0VG9QYXRobmFtZSA9IG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICBjb25zb2xlLmVycm9yKCdFUlJPUjogJywgZXJyb3IpO1xuICAgICAgICBjb250ZW50ID0gbnVsbDtcbiAgICAgICAgcmVkaXJlY3RUb1BhdGhuYW1lID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBwYXRobmFtZTogc3RyaW5nIHwgbnVsbCA9IHJlZGlyZWN0VG8gPz8gcmVkaXJlY3RUb1BhdGhuYW1lID8/IG51bGw7XG5cbiAgY29uc3Qgd3JhcFdpdGhIaWdobGlnaHQgPSAobm9kZTogUmVhY3ROb2RlKTogSlNYLkVsZW1lbnQgPT4ge1xuICAgIGlmICh0eXBlb2YgaGlnaGxpZ2h0SWQgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gPD57bm9kZX08Lz47XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICA8Um91dGVIaWdobGlnaHRCb3VuZGFyeSBoaWdobGlnaHRJZD17aGlnaGxpZ2h0SWR9PlxuICAgICAgICB7bm9kZX1cbiAgICAgIDwvUm91dGVIaWdobGlnaHRCb3VuZGFyeT5cbiAgICApO1xuICB9O1xuXG4gIGlmIChyZW5kZXIgIT0gbnVsbCkge1xuICAgIGlmIChjb250ZW50IGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9vbmx5LXRocm93LWVycm9yXG4gICAgICB0aHJvdyBjb250ZW50O1xuICAgIH1cblxuICAgIGlmIChwYXRobmFtZSAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gPFJvdXRlQ29tcG9uZW50IHJlZGlyZWN0VG9QYXRobmFtZT17cGF0aG5hbWV9IC8+O1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgY29udGVudCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiB3cmFwV2l0aEhpZ2hsaWdodChjb250ZW50ID8/IG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChDb21wb25lbnQgPT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgY29tcG9uZW50Tm9kZSA9IChcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBPSyAtIGNvbXBvbmVudCB0eXBlIGluZmVyZW5jZSBmcm9tIHJlc291cmNlIGxvYWRlciBpcyBkeW5hbWljXG4gICAgPENvbXBvbmVudFxuICAgICAgbWF0Y2g9e21hdGNofVxuICAgICAgcHJlcGFyZWRSb3V0ZT17cHJlcGFyZWRSb3V0ZX1cbiAgICAgIHJvdXRlPXtyb3V0ZX1cbiAgICAgIHByZXBhcmVkPXtwcmVwYXJlZH1cbiAgICAgIHF1ZXJ5PXt0eXBlZFF1ZXJ5fVxuICAgICAgcHJlcGFyZWRTZWdtZW50cz17cHJlcGFyZWRTZWdtZW50c31cbiAgICAgIHNlZ21lbnRJbmRleD17c2VnbWVudEluZGV4fVxuICAgICAgbGVhZlNlZ21lbnQ9e2xlYWZTZWdtZW50fVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0NvbXBvbmVudD5cbiAgKTtcbiAgY29uc3QgY29udGVudDIgPSB3cmFwV2l0aEhpZ2hsaWdodChjb21wb25lbnROb2RlKTtcblxuICByZXR1cm4gPFJvdXRlQ29tcG9uZW50IHJlZGlyZWN0VG9QYXRobmFtZT17cGF0aG5hbWV9IGNvbnRlbnQ9e2NvbnRlbnQyfSAvPjtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFJvdXRlQ29tcG9uZW50V3JhcHBlcjtcbiJdfQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ReactNode, type JSX } from 'react';
|
|
2
|
+
export declare function getNewIndex(): number;
|
|
3
|
+
type Props = {
|
|
4
|
+
fallback?: ReactNode;
|
|
5
|
+
enableTransition?: boolean;
|
|
6
|
+
pending?: ReactNode;
|
|
7
|
+
};
|
|
8
|
+
declare const RouterRenderer: (props: Props) => JSX.Element | null;
|
|
9
|
+
export default RouterRenderer;
|
|
10
|
+
//# sourceMappingURL=RouterRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RouterRenderer.d.ts","sourceRoot":"","sources":["../../src/routing/RouterRenderer.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,SAAS,EAA0B,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAkBhF,wBAAgB,WAAW,IAAI,MAAM,CAGpC;AAKD,KAAK,KAAK,GAAG;IAEX,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB,CAAC;AAyBF,QAAA,MAAM,cAAc,GAAI,OAAO,KAAK,KAAG,GAAG,CAAC,OAAO,GAAG,IAwIpD,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React, { useMemo, useTransition } from 'react';
|
|
3
|
+
import RoutingContext from './RoutingContext.js';
|
|
4
|
+
import RouteComponentWrapper from './RouteComponentWrapper.js';
|
|
5
|
+
const { useContext, useEffect, Suspense, useState } = React;
|
|
6
|
+
let index = 0;
|
|
7
|
+
export function getNewIndex() {
|
|
8
|
+
index += 1;
|
|
9
|
+
return index;
|
|
10
|
+
}
|
|
11
|
+
const RouterRenderer = (props) => {
|
|
12
|
+
const { fallback, pending, enableTransition = false } = props;
|
|
13
|
+
const router = useContext(RoutingContext);
|
|
14
|
+
const [isPending, startTransition] = useTransition();
|
|
15
|
+
const [routeEntry, setRouteEntry] = useState(router?.get());
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
if (router == null) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const currentEntry = router.get();
|
|
21
|
+
if (currentEntry !== routeEntry) {
|
|
22
|
+
setRouteEntry(currentEntry);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const dispose = router.subscribe((nextEntry) => {
|
|
26
|
+
if (enableTransition) {
|
|
27
|
+
startTransition(() => {
|
|
28
|
+
setRouteEntry(nextEntry);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
setRouteEntry(nextEntry);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
return () => {
|
|
36
|
+
dispose();
|
|
37
|
+
};
|
|
38
|
+
}, [router]);
|
|
39
|
+
const pendingContent = useMemo(() => {
|
|
40
|
+
if (isPending) {
|
|
41
|
+
return pending;
|
|
42
|
+
}
|
|
43
|
+
return null;
|
|
44
|
+
}, [isPending, pending]);
|
|
45
|
+
const routeComponent = useMemo(() => {
|
|
46
|
+
if (routeEntry == null) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
const result = [];
|
|
50
|
+
const reversedItems = result
|
|
51
|
+
.concat(routeEntry.preparedMatch.routes)
|
|
52
|
+
.reverse();
|
|
53
|
+
const firstItem = reversedItems[0];
|
|
54
|
+
if (firstItem == null) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
let mainComponent = (_jsx(RouteComponentWrapper, { match: routeEntry.preparedMatch.match ?? null, preparedRoute: firstItem }, firstItem.path));
|
|
58
|
+
for (let index = 1; index < reversedItems.length; index += 1) {
|
|
59
|
+
const nextItem = reversedItems[index];
|
|
60
|
+
mainComponent = (_jsx(RouteComponentWrapper, { match: routeEntry.preparedMatch.match ?? null, preparedRoute: nextItem, children: mainComponent }, nextItem.path));
|
|
61
|
+
}
|
|
62
|
+
return mainComponent;
|
|
63
|
+
}, [routeEntry]);
|
|
64
|
+
return (_jsxs(Suspense, { fallback: fallback, children: [pendingContent, routeComponent] }));
|
|
65
|
+
};
|
|
66
|
+
export default RouterRenderer;
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm91dGVyUmVuZGVyZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcm91dGluZy9Sb3V0ZXJSZW5kZXJlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQWtCLE9BQU8sRUFBRSxhQUFhLEVBQVksTUFBTSxPQUFPLENBQUM7QUFLaEYsT0FBTyxjQUFjLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxxQkFBcUIsTUFBTSw0QkFBNEIsQ0FBQztBQUUvRCxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsS0FBSyxDQUFDO0FBRTVELElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztBQVFkLE1BQU0sVUFBVSxXQUFXO0lBQ3pCLEtBQUssSUFBSSxDQUFDLENBQUM7SUFDWCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFxQ0QsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFZLEVBQXNCLEVBQUU7SUFDMUQsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEdBQUcsS0FBSyxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBRzlELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUsxQyxNQUFNLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQyxHQUFHLGFBQWEsRUFBRSxDQUFDO0lBSXJELE1BQU0sQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLEdBQUcsUUFBUSxDQUUxQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUdqQixTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7WUFDbkIsT0FBTztRQUNULENBQUM7UUFHRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDbEMsSUFBSSxZQUFZLEtBQUssVUFBVSxFQUFFLENBQUM7WUFFaEMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzVCLE9BQU87UUFDVCxDQUFDO1FBR0QsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBSTdDLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztnQkFDckIsZUFBZSxDQUFDLEdBQUcsRUFBRTtvQkFDbkIsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUMzQixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7aUJBQU0sQ0FBQztnQkFDTixhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBR0gsT0FBTyxHQUFHLEVBQUU7WUFDVixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQztJQU1KLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFzQmIsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRTtRQUNsQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFJekIsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRTtRQUNsQyxJQUFJLFVBQVUsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN2QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBeUIsRUFBRSxDQUFDO1FBRXhDLE1BQU0sYUFBYSxHQUFHLE1BQU07YUFDekIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO2FBQ3ZDLE9BQU8sRUFBRSxDQUFDO1FBRWIsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRW5DLElBQUksU0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3RCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELElBQUksYUFBYSxHQUFHLENBQ2xCLEtBQUMscUJBQXFCLElBRXBCLEtBQUssRUFBRSxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQzdDLGFBQWEsRUFBRSxTQUFTLElBRm5CLFNBQVMsQ0FBQyxJQUFJLENBR25CLENBQ0gsQ0FBQztRQUNGLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxhQUFhLENBQUMsTUFBTSxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM3RCxNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEMsYUFBYSxHQUFHLENBQ2QsS0FBQyxxQkFBcUIsSUFHcEIsS0FBSyxFQUFFLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxJQUFJLElBQUksRUFFN0MsYUFBYSxFQUFFLFFBQVMsWUFFdkIsYUFBYSxJQUxULFFBQVMsQ0FBQyxJQUFJLENBTUcsQ0FDekIsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBSWpCLE9BQU8sQ0FDTCxNQUFDLFFBQVEsSUFBQyxRQUFRLEVBQUUsUUFBUSxhQUN6QixjQUFjLEVBQ2QsY0FBYyxJQUNOLENBQ1osQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLGVBQWUsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHR5cGUgUmVhY3ROb2RlLCB1c2VNZW1vLCB1c2VUcmFuc2l0aW9uLCB0eXBlIEpTWCB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHR5cGUgeyBQcmVwYXJlZE1hdGNoUm91dGUsIFJvdXRlRW50cnkgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IFBhcmFtRGF0YSB9IGZyb20gJ3BhdGgtdG8tcmVnZXhwJztcblxuaW1wb3J0IFJvdXRpbmdDb250ZXh0IGZyb20gJy4vUm91dGluZ0NvbnRleHQuanMnO1xuaW1wb3J0IFJvdXRlQ29tcG9uZW50V3JhcHBlciBmcm9tICcuL1JvdXRlQ29tcG9uZW50V3JhcHBlci5qcyc7XG5cbmNvbnN0IHsgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCBTdXNwZW5zZSwgdXNlU3RhdGUgfSA9IFJlYWN0O1xuXG5sZXQgaW5kZXggPSAwO1xuXG4vKipcbiAqIEdlbmVyYXRlcyBhIHVuaXF1ZSBpbmRleCBmb3IgY29tcG9uZW50IGluc3RhbmNlcy5cbiAqIFRoaXMgaXMgdXNlZCBpbnRlcm5hbGx5IHRvIGVuc3VyZSBwcm9wZXIgUmVhY3QgcmVjb25jaWxpYXRpb24uXG4gKlxuICogQHJldHVybnMgQSB1bmlxdWUgaW5jcmVtZW50YWwgbnVtYmVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXdJbmRleCgpOiBudW1iZXIge1xuICBpbmRleCArPSAxO1xuICByZXR1cm4gaW5kZXg7XG59XG5cbi8qKlxuICogUHJvcHMgZm9yIHRoZSBSb3V0ZXJSZW5kZXJlciBjb21wb25lbnQuXG4gKi9cbnR5cGUgUHJvcHMgPSB7XG4gIC8qKiBGYWxsYmFjayBVSSB0byBzaG93IHdoaWxlIGxvYWRpbmcgY29tcG9uZW50cyAqL1xuICBmYWxsYmFjaz86IFJlYWN0Tm9kZTtcbiAgLyoqIFdoZXRoZXIgdG8gZW5hYmxlIFJlYWN0IDE4IHRyYW5zaXRpb25zIGZvciBzbW9vdGhlciByb3V0ZSBjaGFuZ2VzICovXG4gIGVuYWJsZVRyYW5zaXRpb24/OiBib29sZWFuO1xuICAvKiogVUkgdG8gc2hvdyBkdXJpbmcgdHJhbnNpdGlvbnMgKHdoZW4gZW5hYmxlVHJhbnNpdGlvbiBpcyB0cnVlKSAqL1xuICBwZW5kaW5nPzogUmVhY3ROb2RlO1xufTtcblxuLyoqXG4gKiBNYWluIHJvdXRlciByZW5kZXJlciBjb21wb25lbnQgdGhhdCBkaXNwbGF5cyB0aGUgY3VycmVudCByb3V0ZS5cbiAqXG4gKiBUaGlzIGNvbXBvbmVudCBhY2Nlc3NlcyB0aGUgY3VycmVudCByb3V0ZSBlbnRyeSBmcm9tIFJvdXRpbmdDb250ZXh0IGFuZCByZW5kZXJzXG4gKiB0aGUgYXBwcm9wcmlhdGUgY29tcG9uZW50cy4gSXQgc3VwcG9ydHMgUmVhY3QgU3VzcGVuc2UgZm9yIGxhenktbG9hZGVkIGNvbXBvbmVudHNcbiAqIGFuZCBjYW4gb3B0aW9uYWxseSB1c2UgUmVhY3QgMTggdHJhbnNpdGlvbnMgZm9yIHNtb290aGVyIHJvdXRlIGNoYW5nZXMuXG4gKlxuICogVGhlIGNvbXBvbmVudCBoYW5kbGVzIG5lc3RlZCByb3V0ZXMgYnkgY3JlYXRpbmcgYSBoaWVyYXJjaHkgb2YgUm91dGVDb21wb25lbnRXcmFwcGVyXG4gKiBjb21wb25lbnRzLCB3aGVyZSBlYWNoIGxldmVsIGNhbiByZW5kZXIgaXRzIG93biBjb21wb25lbnQgYW5kIGNoaWxkcmVuLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIC8vIEJhc2ljIHVzYWdlIHdpdGggU3VzcGVuc2UgZmFsbGJhY2tcbiAqIDxSb3V0ZXJSZW5kZXJlciBmYWxsYmFjaz17PGRpdj5Mb2FkaW5nLi4uPC9kaXY+fSAvPlxuICpcbiAqIC8vIFdpdGggUmVhY3QgMTggdHJhbnNpdGlvbnNcbiAqIDxSb3V0ZXJSZW5kZXJlclxuICogICBlbmFibGVUcmFuc2l0aW9uXG4gKiAgIGZhbGxiYWNrPXs8ZGl2PkxvYWRpbmcuLi48L2Rpdj59XG4gKiAgIHBlbmRpbmc9ezxkaXY+TmF2aWdhdGluZy4uLjwvZGl2Pn1cbiAqIC8+XG4gKiBgYGBcbiAqL1xuY29uc3QgUm91dGVyUmVuZGVyZXIgPSAocHJvcHM6IFByb3BzKTogSlNYLkVsZW1lbnQgfCBudWxsID0+IHtcbiAgY29uc3QgeyBmYWxsYmFjaywgcGVuZGluZywgZW5hYmxlVHJhbnNpdGlvbiA9IGZhbHNlIH0gPSBwcm9wcztcblxuICAvLyBBY2Nlc3MgdGhlIHJvdXRlciBjb250ZXh0XG4gIGNvbnN0IHJvdXRlciA9IHVzZUNvbnRleHQoUm91dGluZ0NvbnRleHQpO1xuXG4gIC8vIFVzZSBSZWFjdCAxOCB0cmFuc2l0aW9ucyB0byBpbXByb3ZlIHJvdXRlIHRyYW5zaXRpb24gVVggYnkgZGVsYXlpbmdcbiAgLy8gdHJhbnNpdGlvbnMgYW5kIHNob3dpbmcgdGhlIHByZXZpb3VzIHJvdXRlIGZvciBhIGJyaWVmIHBlcmlvZCB3aGlsZVxuICAvLyB0aGUgbmV4dCByb3V0ZSBpcyBiZWluZyBwcmVwYXJlZC5cbiAgY29uc3QgW2lzUGVuZGluZywgc3RhcnRUcmFuc2l0aW9uXSA9IHVzZVRyYW5zaXRpb24oKTtcblxuICAvLyBTdG9yZSB0aGUgYWN0aXZlIGVudHJ5IGluIHN0YXRlIC0gdGhpcyBhbGxvd3MgdGhlIHJlbmRlcmVyIHRvIHVzZSBmZWF0dXJlcyBsaWtlXG4gIC8vIHVzZVRyYW5zaXRpb24gdG8gZGVsYXkgd2hlbiBzdGF0ZSBjaGFuZ2VzIGJlY29tZSB2aXNpYmxlIHRvIHRoZSB1c2VyLlxuICBjb25zdCBbcm91dGVFbnRyeSwgc2V0Um91dGVFbnRyeV0gPSB1c2VTdGF0ZTxcbiAgICBSb3V0ZUVudHJ5PFBhcmFtRGF0YT4gfCB1bmRlZmluZWRcbiAgPihyb3V0ZXI/LmdldCgpKTtcblxuICAvLyBTdWJzY3JpYmUgdG8gcm91dGUgY2hhbmdlcyBvbiBtb3VudFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChyb3V0ZXIgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIHRoZSByb3V0ZSBoYXMgY2hhbmdlZCBiZXR3ZWVuIHRoZSBsYXN0IHJlbmRlciBhbmQgY29tbWl0XG4gICAgY29uc3QgY3VycmVudEVudHJ5ID0gcm91dGVyLmdldCgpO1xuICAgIGlmIChjdXJyZW50RW50cnkgIT09IHJvdXRlRW50cnkpIHtcbiAgICAgIC8vIEhhbmRsZSBjb25jdXJyZW50IG1vZGlmaWNhdGlvbnMgYnkgcmUtcmVuZGVyaW5nIHdpdGggY3VycmVudCBlbnRyeVxuICAgICAgc2V0Um91dGVFbnRyeShjdXJyZW50RW50cnkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFN1YnNjcmliZSBmb3Igc3Vic2VxdWVudCByb3V0ZSB1cGRhdGVzXG4gICAgY29uc3QgZGlzcG9zZSA9IHJvdXRlci5zdWJzY3JpYmUoKG5leHRFbnRyeSkgPT4ge1xuICAgICAgLy8gVXNlIHN0YXJ0VHJhbnNpdGlvbiB0byBkZWxheSB0aGUgZWZmZWN0IG9mIHNldFJvdXRlRW50cnkgZm9yIHNtb290aGVyIFVYLlxuICAgICAgLy8gVGhpcyBjb250aW51ZXMgc2hvd2luZyB0aGUgb2xkIHN0YXRlIHdoaWxlIHRoZSBuZXcgcm91dGUgaXMgYmVpbmcgcHJlcGFyZWQuXG5cbiAgICAgIGlmIChlbmFibGVUcmFuc2l0aW9uKSB7XG4gICAgICAgIHN0YXJ0VHJhbnNpdGlvbigoKSA9PiB7XG4gICAgICAgICAgc2V0Um91dGVFbnRyeShuZXh0RW50cnkpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldFJvdXRlRW50cnkobmV4dEVudHJ5KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb25zaXN0ZW50LXJldHVyblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkaXNwb3NlKCk7XG4gICAgfTtcblxuICAgIC8vIE5vdGU6IHRoaXMgaG9vayB1cGRhdGVzIHJvdXRlRW50cnkgbWFudWFsbHk7IHdlIGV4Y2x1ZGUgdGhhdCB2YXJpYWJsZVxuICAgIC8vIGZyb20gdGhlIGhvb2sgZGVwcyB0byBhdm9pZCByZWNvbXB1dGluZyB0aGUgZWZmZWN0IGFmdGVyIGVhY2ggY2hhbmdlXG4gICAgLy8gdHJpZ2dlcmVkIGJ5IHRoZSBlZmZlY3QgaXRzZWxmLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgW3JvdXRlcl0pO1xuXG4gIC8vIFRoZSBjdXJyZW50IHJvdXRlIHZhbHVlIGlzIGFuIGFycmF5IG9mIG1hdGNoaW5nIGVudHJpZXMgLSBvbmUgZW50cnkgcGVyXG4gIC8vIGxldmVsIG9mIHJvdXRlcyAodG8gYWxsb3cgbmVzdGVkIHJvdXRlcykuIFdlIGhhdmUgdG8gbWFwIGVhY2ggb25lIHRvIGFcbiAgLy8gUm91dGVDb21wb25lbnQgdG8gYWxsb3cgc3VzcGVuZGluZywgYW5kIGFsc28gcGFzcyBpdHMgY2hpbGRyZW4gY29ycmVjdGx5LlxuICAvLyBDb25jZXB0dWFsbHksIHdlIHdhbnQgdGhpcyBzdHJ1Y3R1cmU6XG4gIC8vIGBgYFxuICAvLyA8Um91dGVDb21wb25lbnRcbiAgLy8gICBjb21wb25lbnQ9e2VudHJ5WzBdLmNvbXBvbmVudH1cbiAgLy8gICBwcmVwYXJlZD17ZW50cnJ5WzBdLnByZXBhcmVkfT5cbiAgLy8gICA8Um91dGVDb21wb25lbnRcbiAgLy8gICAgIGNvbXBvbmVudD17ZW50cnlbMV0uY29tcG9uZW50fVxuICAvLyAgICAgcHJlcGFyZWQ9e2VudHJ5WzFdLnByZXBhcmVkfT5cbiAgLy8gICAgICAgLy8gY29udGludWUgZm9yIG5lc3RlZCBpdGVtcy4uLlxuICAvLyAgIDwvUm91dGVDb21wb25lbnQ+XG4gIC8vIDwvUm91dGVDb21wb25lbnQ+XG4gIC8vIGBgYFxuICAvLyBUbyBhY2hpZXZlIHRoaXMsIHdlIHJldmVyc2UgdGhlIGxpc3Qgc28gd2UgY2FuIHN0YXJ0IGF0IHRoZSBib3R0b20tbW9zdFxuICAvLyBjb21wb25lbnQsIGFuZCBpdGVyYXRpdmVseSBjb25zdHJ1Y3QgcGFyZW50IGNvbXBvbmVudHMgdyB0aGUgcHJldmlvdXNcbiAgLy8gdmFsdWUgYXMgdGhlIGNoaWxkIG9mIHRoZSBuZXh0IG9uZTpcbiAgLy8gcmV2ZXJzZSBpcyBpbiBwbGFjZSwgYnV0IHdlIHdhbnQgYSBjb3B5IHNvIGNvbmNhdFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3Byb21pc2UtZnVuY3Rpb24tYXN5bmNcbiAgY29uc3QgcGVuZGluZ0NvbnRlbnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNQZW5kaW5nKSB7XG4gICAgICByZXR1cm4gcGVuZGluZztcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfSwgW2lzUGVuZGluZywgcGVuZGluZ10pO1xuXG4gIC8vIHRoZSBib3R0b20tbW9zdCBjb21wb25lbnQgaXMgc3BlY2lhbCBzaW5jZSBpdCB3aWxsIGhhdmUgbm8gY2hpbGRyZW5cbiAgLy8gKHRob3VnaCB3ZSBjb3VsZCBwcm9iYWJseSBqdXN0IHBhc3MgbnVsbCBjaGlsZHJlbiB0byBpdClcbiAgY29uc3Qgcm91dGVDb21wb25lbnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAocm91dGVFbnRyeSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQ6IFByZXBhcmVkTWF0Y2hSb3V0ZVtdID0gW107XG5cbiAgICBjb25zdCByZXZlcnNlZEl0ZW1zID0gcmVzdWx0XG4gICAgICAuY29uY2F0KHJvdXRlRW50cnkucHJlcGFyZWRNYXRjaC5yb3V0ZXMpXG4gICAgICAucmV2ZXJzZSgpO1xuXG4gICAgY29uc3QgZmlyc3RJdGVtID0gcmV2ZXJzZWRJdGVtc1swXTtcblxuICAgIGlmIChmaXJzdEl0ZW0gPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgbGV0IG1haW5Db21wb25lbnQgPSAoXG4gICAgICA8Um91dGVDb21wb25lbnRXcmFwcGVyXG4gICAgICAgIGtleT17Zmlyc3RJdGVtLnBhdGh9XG4gICAgICAgIG1hdGNoPXtyb3V0ZUVudHJ5LnByZXBhcmVkTWF0Y2gubWF0Y2ggPz8gbnVsbH1cbiAgICAgICAgcHJlcGFyZWRSb3V0ZT17Zmlyc3RJdGVtfVxuICAgICAgLz5cbiAgICApO1xuICAgIGZvciAobGV0IGluZGV4ID0gMTsgaW5kZXggPCByZXZlcnNlZEl0ZW1zLmxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgICAgY29uc3QgbmV4dEl0ZW0gPSByZXZlcnNlZEl0ZW1zW2luZGV4XTtcbiAgICAgIG1haW5Db21wb25lbnQgPSAoXG4gICAgICAgIDxSb3V0ZUNvbXBvbmVudFdyYXBwZXJcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgICAgICAgIGtleT17bmV4dEl0ZW0hLnBhdGh9XG4gICAgICAgICAgbWF0Y2g9e3JvdXRlRW50cnkucHJlcGFyZWRNYXRjaC5tYXRjaCA/PyBudWxsfVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICAgICAgcHJlcGFyZWRSb3V0ZT17bmV4dEl0ZW0hfVxuICAgICAgICA+XG4gICAgICAgICAge21haW5Db21wb25lbnR9XG4gICAgICAgIDwvUm91dGVDb21wb25lbnRXcmFwcGVyPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWFpbkNvbXBvbmVudDtcbiAgfSwgW3JvdXRlRW50cnldKTtcblxuICAvLyBSb3V0ZXMgY2FuIGVycm9yIHNvIHdyYXAgaW4gYW4gPEVycm9yQm91bmRhcnk+XG4gIC8vIFJvdXRlcyBjYW4gc3VzcGVuZCwgc28gd3JhcCBpbiA8U3VzcGVuc2U+XG4gIHJldHVybiAoXG4gICAgPFN1c3BlbnNlIGZhbGxiYWNrPXtmYWxsYmFja30+XG4gICAgICB7cGVuZGluZ0NvbnRlbnR9XG4gICAgICB7cm91dGVDb21wb25lbnR9XG4gICAgPC9TdXNwZW5zZT5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFJvdXRlclJlbmRlcmVyO1xuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { RoutingContextType, UnknownQueryShape } from '../types.js';
|
|
3
|
+
declare const RoutingContext: React.Context<RoutingContextType<any, Readonly<Record<string, import("@plumile/filter-query").FieldDescriptor>> | undefined, UnknownQueryShape, any> | null>;
|
|
4
|
+
export default RoutingContext;
|
|
5
|
+
//# sourceMappingURL=RoutingContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RoutingContext.d.ts","sourceRoot":"","sources":["../../src/routing/RoutingContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAEV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAErB,QAAA,MAAM,cAAc,8JAKL,CAAC;AAKhB,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
const RoutingContext = React.createContext(null);
|
|
3
|
+
export default RoutingContext;
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm91dGluZ0NvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcm91dGluZy9Sb3V0aW5nQ29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFRMUIsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FLaEMsSUFBSSxDQUFDLENBQUM7QUFLaEIsZUFBZSxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgdHlwZSB7XG4gIEZpbHRlclNjaGVtYSxcbiAgUm91dGluZ0NvbnRleHRUeXBlLFxuICBVbmtub3duUXVlcnlTaGFwZSxcbn0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG5jb25zdCBSb3V0aW5nQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQ8Um91dGluZ0NvbnRleHRUeXBlPFxuICBhbnksXG4gIEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgVW5rbm93blF1ZXJ5U2hhcGUsXG4gIGFueVxuPiB8IG51bGw+KG51bGwpO1xuXG4vKipcbiAqIEEgY3VzdG9tIGNvbnRleHQgaW5zdGFuY2UgZm9yIG91ciByb3V0ZXIgdHlwZVxuICovXG5leHBvcnQgZGVmYXVsdCBSb3V0aW5nQ29udGV4dDtcbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type Schema as FilterSchema } from '@plumile/filter-query';
|
|
2
|
+
import type { ParamData } from 'path-to-regexp';
|
|
3
|
+
import { type RoutingContextType, type AnyRoute, type PreparedAccess, type NavigateOverloads, type UnknownQueryShape } from '../types.js';
|
|
4
|
+
import { type InstrumentationAPI } from '../instrumentation/Instrumentation.js';
|
|
5
|
+
type RouterQuerySchema = FilterSchema | undefined;
|
|
6
|
+
export type CreateRouterReturn<TContext, R extends AnyRoute[]> = {
|
|
7
|
+
cleanup: () => void;
|
|
8
|
+
context: RoutingContextType<ParamData, RouterQuerySchema, UnknownQueryShape, TContext> & PreparedAccess<R> & {
|
|
9
|
+
navigate: NavigateOverloads<R>;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
export type CreateRouterOptions<TContext> = {
|
|
13
|
+
instrumentations?: InstrumentationAPI[];
|
|
14
|
+
context?: TContext | (() => TContext);
|
|
15
|
+
getContext?: () => TContext;
|
|
16
|
+
};
|
|
17
|
+
export default function createRouter<TContext = unknown, R extends AnyRoute[] = AnyRoute[]>(routes: [...R] | AnyRoute[], options?: CreateRouterOptions<TContext>): CreateRouterReturn<TContext, R>;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=createRouter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createRouter.d.ts","sourceRoot":"","sources":["../../src/routing/createRouter.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,KAAK,MAAM,IAAI,YAAY,EAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,iBAAiB,EAOtB,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,kBAAkB,EAKxB,MAAM,uCAAuC,CAAC;AAQ/C,KAAK,iBAAiB,GAAG,YAAY,GAAG,SAAS,CAAC;AAgBlD,MAAM,MAAM,kBAAkB,CAAC,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAAE,IAAI;IAE/D,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB,OAAO,EAAE,kBAAkB,CACzB,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,CACT,GACC,cAAc,CAAC,CAAC,CAAC,GAAG;QAClB,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAChC,CAAC;CACL,CAAC;AAwCF,MAAM,MAAM,mBAAmB,CAAC,QAAQ,IAAI;IAE1C,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAExC,OAAO,CAAC,EAAE,QAAQ,GAAG,CAAC,MAAM,QAAQ,CAAC,CAAC;IAEtC,UAAU,CAAC,EAAE,MAAM,QAAQ,CAAC;CAC7B,CAAC;AASF,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,QAAQ,GAAG,OAAO,EAClB,CAAC,SAAS,QAAQ,EAAE,GAAG,QAAQ,EAAE,EAEjC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,EAC3B,OAAO,GAAE,mBAAmB,CAAC,QAAQ,CAAM,GAC1C,kBAAkB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAk0BjC"}
|