@tanstack/react-router 0.0.1-beta.50 → 0.0.1-beta.52
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/build/cjs/index.js +4 -4
- package/build/cjs/index.js.map +1 -1
- package/build/esm/index.js +4 -4
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +50 -50
- package/build/umd/index.development.js +33 -31
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +2 -2
- package/build/umd/index.production.js.map +1 -1
- package/package.json +2 -2
- package/src/index.tsx +7 -7
package/build/stats-react.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"name": "index.production.js",
|
|
8
8
|
"children": [
|
|
9
9
|
{
|
|
10
|
-
"uid": "
|
|
10
|
+
"uid": "7dac-81",
|
|
11
11
|
"name": "\u0000rollupPluginBabelHelpers.js"
|
|
12
12
|
},
|
|
13
13
|
{
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
"children": [
|
|
16
16
|
{
|
|
17
17
|
"name": "tiny-invariant@1.3.1/node_modules/tiny-invariant/dist/esm/tiny-invariant.js",
|
|
18
|
-
"uid": "
|
|
18
|
+
"uid": "7dac-83"
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
21
|
"name": "immer@9.0.16/node_modules/immer/dist/immer.esm.mjs",
|
|
22
|
-
"uid": "
|
|
22
|
+
"uid": "7dac-85"
|
|
23
23
|
}
|
|
24
24
|
]
|
|
25
25
|
},
|
|
@@ -28,17 +28,17 @@
|
|
|
28
28
|
"children": [
|
|
29
29
|
{
|
|
30
30
|
"name": "router-core/build/esm/index.js",
|
|
31
|
-
"uid": "
|
|
31
|
+
"uid": "7dac-87"
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
34
|
"name": "react-router/src",
|
|
35
35
|
"children": [
|
|
36
36
|
{
|
|
37
|
-
"uid": "
|
|
37
|
+
"uid": "7dac-89",
|
|
38
38
|
"name": "useStore.ts"
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
|
-
"uid": "
|
|
41
|
+
"uid": "7dac-91",
|
|
42
42
|
"name": "index.tsx"
|
|
43
43
|
}
|
|
44
44
|
]
|
|
@@ -51,155 +51,155 @@
|
|
|
51
51
|
"isRoot": true
|
|
52
52
|
},
|
|
53
53
|
"nodeParts": {
|
|
54
|
-
"
|
|
54
|
+
"7dac-81": {
|
|
55
55
|
"renderedLength": 429,
|
|
56
56
|
"gzipLength": 238,
|
|
57
57
|
"brotliLength": 0,
|
|
58
|
-
"mainUid": "
|
|
58
|
+
"mainUid": "7dac-80"
|
|
59
59
|
},
|
|
60
|
-
"
|
|
60
|
+
"7dac-83": {
|
|
61
61
|
"renderedLength": 181,
|
|
62
62
|
"gzipLength": 129,
|
|
63
63
|
"brotliLength": 0,
|
|
64
|
-
"mainUid": "
|
|
64
|
+
"mainUid": "7dac-82"
|
|
65
65
|
},
|
|
66
|
-
"
|
|
66
|
+
"7dac-85": {
|
|
67
67
|
"renderedLength": 8203,
|
|
68
68
|
"gzipLength": 3238,
|
|
69
69
|
"brotliLength": 0,
|
|
70
|
-
"mainUid": "
|
|
70
|
+
"mainUid": "7dac-84"
|
|
71
71
|
},
|
|
72
|
-
"
|
|
73
|
-
"renderedLength":
|
|
74
|
-
"gzipLength":
|
|
72
|
+
"7dac-87": {
|
|
73
|
+
"renderedLength": 56528,
|
|
74
|
+
"gzipLength": 13417,
|
|
75
75
|
"brotliLength": 0,
|
|
76
|
-
"mainUid": "
|
|
76
|
+
"mainUid": "7dac-86"
|
|
77
77
|
},
|
|
78
|
-
"
|
|
78
|
+
"7dac-89": {
|
|
79
79
|
"renderedLength": 1347,
|
|
80
80
|
"gzipLength": 484,
|
|
81
81
|
"brotliLength": 0,
|
|
82
|
-
"mainUid": "
|
|
82
|
+
"mainUid": "7dac-88"
|
|
83
83
|
},
|
|
84
|
-
"
|
|
85
|
-
"renderedLength":
|
|
86
|
-
"gzipLength":
|
|
84
|
+
"7dac-91": {
|
|
85
|
+
"renderedLength": 12608,
|
|
86
|
+
"gzipLength": 3327,
|
|
87
87
|
"brotliLength": 0,
|
|
88
|
-
"mainUid": "
|
|
88
|
+
"mainUid": "7dac-90"
|
|
89
89
|
}
|
|
90
90
|
},
|
|
91
91
|
"nodeMetas": {
|
|
92
|
-
"
|
|
92
|
+
"7dac-80": {
|
|
93
93
|
"id": "\u0000rollupPluginBabelHelpers.js",
|
|
94
94
|
"moduleParts": {
|
|
95
|
-
"index.production.js": "
|
|
95
|
+
"index.production.js": "7dac-81"
|
|
96
96
|
},
|
|
97
97
|
"imported": [],
|
|
98
98
|
"importedBy": [
|
|
99
99
|
{
|
|
100
|
-
"uid": "
|
|
100
|
+
"uid": "7dac-90"
|
|
101
101
|
}
|
|
102
102
|
]
|
|
103
103
|
},
|
|
104
|
-
"
|
|
104
|
+
"7dac-82": {
|
|
105
105
|
"id": "/node_modules/.pnpm/tiny-invariant@1.3.1/node_modules/tiny-invariant/dist/esm/tiny-invariant.js",
|
|
106
106
|
"moduleParts": {
|
|
107
|
-
"index.production.js": "
|
|
107
|
+
"index.production.js": "7dac-83"
|
|
108
108
|
},
|
|
109
109
|
"imported": [],
|
|
110
110
|
"importedBy": [
|
|
111
111
|
{
|
|
112
|
-
"uid": "
|
|
112
|
+
"uid": "7dac-86"
|
|
113
113
|
}
|
|
114
114
|
]
|
|
115
115
|
},
|
|
116
|
-
"
|
|
116
|
+
"7dac-84": {
|
|
117
117
|
"id": "/node_modules/.pnpm/immer@9.0.16/node_modules/immer/dist/immer.esm.mjs",
|
|
118
118
|
"moduleParts": {
|
|
119
|
-
"index.production.js": "
|
|
119
|
+
"index.production.js": "7dac-85"
|
|
120
120
|
},
|
|
121
121
|
"imported": [],
|
|
122
122
|
"importedBy": [
|
|
123
123
|
{
|
|
124
|
-
"uid": "
|
|
124
|
+
"uid": "7dac-86"
|
|
125
125
|
}
|
|
126
126
|
]
|
|
127
127
|
},
|
|
128
|
-
"
|
|
128
|
+
"7dac-86": {
|
|
129
129
|
"id": "/packages/router-core/build/esm/index.js",
|
|
130
130
|
"moduleParts": {
|
|
131
|
-
"index.production.js": "
|
|
131
|
+
"index.production.js": "7dac-87"
|
|
132
132
|
},
|
|
133
133
|
"imported": [
|
|
134
134
|
{
|
|
135
|
-
"uid": "
|
|
135
|
+
"uid": "7dac-82"
|
|
136
136
|
},
|
|
137
137
|
{
|
|
138
|
-
"uid": "
|
|
138
|
+
"uid": "7dac-84"
|
|
139
139
|
}
|
|
140
140
|
],
|
|
141
141
|
"importedBy": [
|
|
142
142
|
{
|
|
143
|
-
"uid": "
|
|
143
|
+
"uid": "7dac-90"
|
|
144
144
|
}
|
|
145
145
|
]
|
|
146
146
|
},
|
|
147
|
-
"
|
|
147
|
+
"7dac-88": {
|
|
148
148
|
"id": "/packages/react-router/src/useStore.ts",
|
|
149
149
|
"moduleParts": {
|
|
150
|
-
"index.production.js": "
|
|
150
|
+
"index.production.js": "7dac-89"
|
|
151
151
|
},
|
|
152
152
|
"imported": [
|
|
153
153
|
{
|
|
154
|
-
"uid": "
|
|
154
|
+
"uid": "7dac-93"
|
|
155
155
|
}
|
|
156
156
|
],
|
|
157
157
|
"importedBy": [
|
|
158
158
|
{
|
|
159
|
-
"uid": "
|
|
159
|
+
"uid": "7dac-90"
|
|
160
160
|
}
|
|
161
161
|
]
|
|
162
162
|
},
|
|
163
|
-
"
|
|
163
|
+
"7dac-90": {
|
|
164
164
|
"id": "/packages/react-router/src/index.tsx",
|
|
165
165
|
"moduleParts": {
|
|
166
|
-
"index.production.js": "
|
|
166
|
+
"index.production.js": "7dac-91"
|
|
167
167
|
},
|
|
168
168
|
"imported": [
|
|
169
169
|
{
|
|
170
|
-
"uid": "
|
|
170
|
+
"uid": "7dac-80"
|
|
171
171
|
},
|
|
172
172
|
{
|
|
173
|
-
"uid": "
|
|
173
|
+
"uid": "7dac-92"
|
|
174
174
|
},
|
|
175
175
|
{
|
|
176
|
-
"uid": "
|
|
176
|
+
"uid": "7dac-86"
|
|
177
177
|
},
|
|
178
178
|
{
|
|
179
|
-
"uid": "
|
|
179
|
+
"uid": "7dac-88"
|
|
180
180
|
}
|
|
181
181
|
],
|
|
182
182
|
"importedBy": [],
|
|
183
183
|
"isEntry": true
|
|
184
184
|
},
|
|
185
|
-
"
|
|
185
|
+
"7dac-92": {
|
|
186
186
|
"id": "react",
|
|
187
187
|
"moduleParts": {},
|
|
188
188
|
"imported": [],
|
|
189
189
|
"importedBy": [
|
|
190
190
|
{
|
|
191
|
-
"uid": "
|
|
191
|
+
"uid": "7dac-90"
|
|
192
192
|
}
|
|
193
193
|
],
|
|
194
194
|
"isExternal": true
|
|
195
195
|
},
|
|
196
|
-
"
|
|
196
|
+
"7dac-93": {
|
|
197
197
|
"id": "use-sync-external-store/shim/with-selector",
|
|
198
198
|
"moduleParts": {},
|
|
199
199
|
"imported": [],
|
|
200
200
|
"importedBy": [
|
|
201
201
|
{
|
|
202
|
-
"uid": "
|
|
202
|
+
"uid": "7dac-88"
|
|
203
203
|
}
|
|
204
204
|
],
|
|
205
205
|
"isExternal": true
|
|
@@ -167,13 +167,8 @@
|
|
|
167
167
|
const getLocation = () => parseLocation(entries[index], currentState);
|
|
168
168
|
return createHistory({
|
|
169
169
|
getLocation,
|
|
170
|
-
listener:
|
|
171
|
-
|
|
172
|
-
// We might need to handle the hashchange event in the future
|
|
173
|
-
// window.addEventListener(hashChangeEvent, onUpdate)
|
|
174
|
-
return () => {
|
|
175
|
-
window.removeEventListener(popStateEvent, onUpdate);
|
|
176
|
-
};
|
|
170
|
+
listener: () => {
|
|
171
|
+
return () => {};
|
|
177
172
|
},
|
|
178
173
|
pushState: (path, state) => {
|
|
179
174
|
currentState = {
|
|
@@ -724,7 +719,7 @@
|
|
|
724
719
|
Object.assign(this, {
|
|
725
720
|
route,
|
|
726
721
|
router,
|
|
727
|
-
|
|
722
|
+
id: opts.id,
|
|
728
723
|
pathname: opts.pathname,
|
|
729
724
|
params: opts.params,
|
|
730
725
|
store: createStore({
|
|
@@ -742,7 +737,7 @@
|
|
|
742
737
|
this.store.setState(s => s.status = 'success');
|
|
743
738
|
}
|
|
744
739
|
}
|
|
745
|
-
|
|
740
|
+
setLoaderData = loaderData => {
|
|
746
741
|
batch(() => {
|
|
747
742
|
this.store.setState(s => {
|
|
748
743
|
s.routeLoaderData = loaderData;
|
|
@@ -817,7 +812,7 @@
|
|
|
817
812
|
if (this.route.options.loader) {
|
|
818
813
|
const data = await this.router.loadMatchData(this);
|
|
819
814
|
if (latestPromise = checkLatest()) return latestPromise;
|
|
820
|
-
this
|
|
815
|
+
this.setLoaderData(data);
|
|
821
816
|
}
|
|
822
817
|
this.store.setState(s => {
|
|
823
818
|
s.error = undefined;
|
|
@@ -1002,8 +997,7 @@
|
|
|
1002
997
|
throw new Error('Failed to fetch match data');
|
|
1003
998
|
};
|
|
1004
999
|
class Router {
|
|
1005
|
-
|
|
1006
|
-
|
|
1000
|
+
#unsubHistory;
|
|
1007
1001
|
startedLoadingAt = Date.now();
|
|
1008
1002
|
resolveNavigation = () => {};
|
|
1009
1003
|
constructor(options) {
|
|
@@ -1018,13 +1012,12 @@
|
|
|
1018
1012
|
parseSearch: options?.parseSearch ?? defaultParseSearch,
|
|
1019
1013
|
fetchServerDataFn: options?.fetchServerDataFn ?? defaultFetchServerDataFn
|
|
1020
1014
|
};
|
|
1021
|
-
this.history = this.options?.history ?? createBrowserHistory();
|
|
1022
1015
|
this.store = createStore(getInitialRouterState());
|
|
1023
1016
|
this.basepath = '';
|
|
1024
1017
|
this.update(options);
|
|
1025
1018
|
|
|
1026
1019
|
// Allow frameworks to hook into the router creation
|
|
1027
|
-
this.options.
|
|
1020
|
+
this.options.Router?.(this);
|
|
1028
1021
|
}
|
|
1029
1022
|
reset = () => {
|
|
1030
1023
|
this.store.setState(s => Object.assign(s, getInitialRouterState()));
|
|
@@ -1036,9 +1029,6 @@
|
|
|
1036
1029
|
if (!this.store.state.currentMatches.length) {
|
|
1037
1030
|
this.load();
|
|
1038
1031
|
}
|
|
1039
|
-
const unsubHistory = this.history.listen(() => {
|
|
1040
|
-
this.load(this.#parseLocation(this.store.state.latestLocation));
|
|
1041
|
-
});
|
|
1042
1032
|
const visibilityChangeEvent = 'visibilitychange';
|
|
1043
1033
|
const focusEvent = 'focus';
|
|
1044
1034
|
|
|
@@ -1051,7 +1041,6 @@
|
|
|
1051
1041
|
window.addEventListener(focusEvent, this.#onFocus, false);
|
|
1052
1042
|
}
|
|
1053
1043
|
return () => {
|
|
1054
|
-
unsubHistory();
|
|
1055
1044
|
if (window.removeEventListener) {
|
|
1056
1045
|
// Be sure to unsubscribe if a new handler is set
|
|
1057
1046
|
|
|
@@ -1063,13 +1052,20 @@
|
|
|
1063
1052
|
return () => {};
|
|
1064
1053
|
};
|
|
1065
1054
|
update = opts => {
|
|
1066
|
-
|
|
1055
|
+
Object.assign(this.options, opts);
|
|
1056
|
+
if (!this.history || this.options.history && this.options.history !== this.history) {
|
|
1057
|
+
if (this.#unsubHistory) {
|
|
1058
|
+
this.#unsubHistory();
|
|
1059
|
+
}
|
|
1060
|
+
this.history = this.options.history ?? (isServer ? createMemoryHistory() : createBrowserHistory());
|
|
1067
1061
|
this.store.setState(s => {
|
|
1068
1062
|
s.latestLocation = this.#parseLocation();
|
|
1069
1063
|
s.currentLocation = s.latestLocation;
|
|
1070
1064
|
});
|
|
1065
|
+
this.#unsubHistory = this.history.listen(() => {
|
|
1066
|
+
this.load(this.#parseLocation(this.store.state.latestLocation));
|
|
1067
|
+
});
|
|
1071
1068
|
}
|
|
1072
|
-
Object.assign(this.options, opts);
|
|
1073
1069
|
const {
|
|
1074
1070
|
basepath,
|
|
1075
1071
|
routeConfig
|
|
@@ -1294,7 +1290,7 @@
|
|
|
1294
1290
|
const interpolatedPath = interpolatePath(foundRoute.path, params);
|
|
1295
1291
|
const matchId = interpolatePath(foundRoute.id, params, true);
|
|
1296
1292
|
const match = existingMatches.find(d => d.id === matchId) || this.store.state.matchCache[matchId]?.match || new RouteMatch(this, foundRoute, {
|
|
1297
|
-
matchId,
|
|
1293
|
+
id: matchId,
|
|
1298
1294
|
params,
|
|
1299
1295
|
pathname: joinPaths([this.basepath, interpolatedPath])
|
|
1300
1296
|
});
|
|
@@ -1366,10 +1362,11 @@
|
|
|
1366
1362
|
|
|
1367
1363
|
// TODO: batch requests when possible
|
|
1368
1364
|
|
|
1369
|
-
|
|
1365
|
+
const res = await this.options.fetchServerDataFn({
|
|
1370
1366
|
router: this,
|
|
1371
1367
|
routeMatch
|
|
1372
1368
|
});
|
|
1369
|
+
return res;
|
|
1373
1370
|
}
|
|
1374
1371
|
};
|
|
1375
1372
|
invalidateRoute = async opts => {
|
|
@@ -1560,7 +1557,7 @@
|
|
|
1560
1557
|
state: {
|
|
1561
1558
|
...pick(this.store.state, ['latestLocation', 'currentLocation', 'status', 'lastUpdated']),
|
|
1562
1559
|
currentMatches: this.store.state.currentMatches.map(match => ({
|
|
1563
|
-
|
|
1560
|
+
id: match.id,
|
|
1564
1561
|
state: {
|
|
1565
1562
|
...pick(match.store.state, ['status', 'routeLoaderData', 'invalidAt', 'invalid'])
|
|
1566
1563
|
}
|
|
@@ -1580,8 +1577,11 @@
|
|
|
1580
1577
|
});
|
|
1581
1578
|
currentMatches.forEach((match, index) => {
|
|
1582
1579
|
const dehydratedMatch = dehydratedRouter.state.currentMatches[index];
|
|
1583
|
-
invariant(dehydratedMatch && dehydratedMatch.
|
|
1584
|
-
|
|
1580
|
+
invariant(dehydratedMatch && dehydratedMatch.id === match.id, 'Oh no! There was a hydration mismatch when attempting to rethis.store the state of the router! 😬');
|
|
1581
|
+
match.store.setState(s => {
|
|
1582
|
+
Object.assign(s, dehydratedMatch.state);
|
|
1583
|
+
});
|
|
1584
|
+
match.setLoaderData(dehydratedMatch.state.routeLoaderData);
|
|
1585
1585
|
});
|
|
1586
1586
|
currentMatches.forEach(match => match.__validate());
|
|
1587
1587
|
Object.assign(s, {
|
|
@@ -1727,7 +1727,9 @@
|
|
|
1727
1727
|
id,
|
|
1728
1728
|
...next.state
|
|
1729
1729
|
});
|
|
1730
|
-
|
|
1730
|
+
|
|
1731
|
+
// this.load(this.#parseLocation(this.store.state.latestLocation))
|
|
1732
|
+
|
|
1731
1733
|
return this.navigationPromise = new Promise(resolve => {
|
|
1732
1734
|
const previousNavigationResolve = this.resolveNavigation;
|
|
1733
1735
|
this.resolveNavigation = () => {
|
|
@@ -1769,7 +1771,7 @@
|
|
|
1769
1771
|
});
|
|
1770
1772
|
}
|
|
1771
1773
|
|
|
1772
|
-
//
|
|
1774
|
+
// RouterAction is a constrained identify function that takes options: key, action, onSuccess, onError, onSettled, etc
|
|
1773
1775
|
function createAction(options) {
|
|
1774
1776
|
const store = createStore({
|
|
1775
1777
|
submissions: []
|
|
@@ -2026,7 +2028,7 @@
|
|
|
2026
2028
|
...rest
|
|
2027
2029
|
}) {
|
|
2028
2030
|
router.update(rest);
|
|
2029
|
-
const
|
|
2031
|
+
const currentMatches = useStore(router.store, s => s.currentMatches, undefined);
|
|
2030
2032
|
React__namespace.useEffect(router.mount, [router]);
|
|
2031
2033
|
return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement(routerContext.Provider, {
|
|
2032
2034
|
value: {
|
|
@@ -2193,11 +2195,11 @@
|
|
|
2193
2195
|
|
|
2194
2196
|
// React.useEffect(() => {
|
|
2195
2197
|
// if (activeErrorState) {
|
|
2196
|
-
// let prevKey = router.store.currentLocation.key
|
|
2198
|
+
// let prevKey = router.store.state.currentLocation.key
|
|
2197
2199
|
// return createRoot((dispose) => {
|
|
2198
2200
|
// createEffect(() => {
|
|
2199
|
-
// if (router.store.currentLocation.key !== prevKey) {
|
|
2200
|
-
// prevKey = router.store.currentLocation.key
|
|
2201
|
+
// if (router.store.state.currentLocation.key !== prevKey) {
|
|
2202
|
+
// prevKey = router.store.state.currentLocation.key
|
|
2201
2203
|
// setActiveErrorState({} as any)
|
|
2202
2204
|
// }
|
|
2203
2205
|
// })
|