react-router-dom-v5-compat 6.18.0-pre.0 → 6.18.0
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/CHANGELOG.md +3 -3
- package/dist/index.js +10 -48
- package/dist/index.js.map +1 -1
- package/dist/main.js +1 -1
- package/dist/react-router-dom/index.d.ts +2 -6
- package/dist/umd/react-router-dom-v5-compat.development.js +10 -48
- package/dist/umd/react-router-dom-v5-compat.development.js.map +1 -1
- package/dist/umd/react-router-dom-v5-compat.production.min.js +2 -2
- package/dist/umd/react-router-dom-v5-compat.production.min.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# `react-router-dom-v5-compat`
|
|
2
2
|
|
|
3
|
-
## 6.18.0
|
|
3
|
+
## 6.18.0
|
|
4
4
|
|
|
5
5
|
### Patch Changes
|
|
6
6
|
|
|
7
7
|
- Updated dependencies:
|
|
8
|
-
- `react-router-dom@6.18.0
|
|
9
|
-
- `react-router@6.18.0
|
|
8
|
+
- `react-router-dom@6.18.0`
|
|
9
|
+
- `react-router@6.18.0`
|
|
10
10
|
|
|
11
11
|
## 6.17.0
|
|
12
12
|
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* React Router DOM v5 Compat v6.18.0
|
|
2
|
+
* React Router DOM v5 Compat v6.18.0
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -296,7 +296,7 @@ const ViewTransitionContext = /*#__PURE__*/React.createContext({
|
|
|
296
296
|
if (process.env.NODE_ENV !== "production") {
|
|
297
297
|
ViewTransitionContext.displayName = "ViewTransition";
|
|
298
298
|
}
|
|
299
|
-
const FetchersContext = /*#__PURE__*/React.createContext(
|
|
299
|
+
const FetchersContext = /*#__PURE__*/React.createContext(new Map());
|
|
300
300
|
if (process.env.NODE_ENV !== "production") {
|
|
301
301
|
FetchersContext.displayName = "Fetchers";
|
|
302
302
|
}
|
|
@@ -362,10 +362,6 @@ function RouterProvider(_ref) {
|
|
|
362
362
|
router,
|
|
363
363
|
future
|
|
364
364
|
} = _ref;
|
|
365
|
-
let {
|
|
366
|
-
fetcherContext,
|
|
367
|
-
fetcherData
|
|
368
|
-
} = useFetcherDataLayer();
|
|
369
365
|
let [state, setStateImpl] = React.useState(router.state);
|
|
370
366
|
let [pendingState, setPendingState] = React.useState();
|
|
371
367
|
let [vtContext, setVtContext] = React.useState({
|
|
@@ -374,6 +370,7 @@ function RouterProvider(_ref) {
|
|
|
374
370
|
let [renderDfd, setRenderDfd] = React.useState();
|
|
375
371
|
let [transition, setTransition] = React.useState();
|
|
376
372
|
let [interruption, setInterruption] = React.useState();
|
|
373
|
+
let fetcherData = React.useRef(new Map());
|
|
377
374
|
let {
|
|
378
375
|
v7_startTransition
|
|
379
376
|
} = future || {};
|
|
@@ -386,8 +383,10 @@ function RouterProvider(_ref) {
|
|
|
386
383
|
}, [v7_startTransition]);
|
|
387
384
|
let setState = React.useCallback((newState, _ref2) => {
|
|
388
385
|
let {
|
|
386
|
+
deletedFetchers,
|
|
389
387
|
unstable_viewTransitionOpts: viewTransitionOpts
|
|
390
388
|
} = _ref2;
|
|
389
|
+
deletedFetchers.forEach(key => fetcherData.current.delete(key));
|
|
391
390
|
newState.fetchers.forEach((fetcher, key) => {
|
|
392
391
|
if (fetcher.data !== undefined) {
|
|
393
392
|
fetcherData.current.set(key, fetcher.data);
|
|
@@ -502,7 +501,7 @@ function RouterProvider(_ref) {
|
|
|
502
501
|
}, /*#__PURE__*/React.createElement(UNSAFE_DataRouterStateContext.Provider, {
|
|
503
502
|
value: state
|
|
504
503
|
}, /*#__PURE__*/React.createElement(FetchersContext.Provider, {
|
|
505
|
-
value:
|
|
504
|
+
value: fetcherData.current
|
|
506
505
|
}, /*#__PURE__*/React.createElement(ViewTransitionContext.Provider, {
|
|
507
506
|
value: vtContext
|
|
508
507
|
}, /*#__PURE__*/React.createElement(Router, {
|
|
@@ -879,36 +878,6 @@ function useDataRouterState(hookName) {
|
|
|
879
878
|
!state ? process.env.NODE_ENV !== "production" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;
|
|
880
879
|
return state;
|
|
881
880
|
}
|
|
882
|
-
function useFetcherDataLayer() {
|
|
883
|
-
let fetcherRefs = React.useRef(new Map());
|
|
884
|
-
let fetcherData = React.useRef(new Map());
|
|
885
|
-
let registerFetcher = React.useCallback(key => {
|
|
886
|
-
let count = fetcherRefs.current.get(key);
|
|
887
|
-
if (count == null) {
|
|
888
|
-
fetcherRefs.current.set(key, 1);
|
|
889
|
-
} else {
|
|
890
|
-
fetcherRefs.current.set(key, count + 1);
|
|
891
|
-
}
|
|
892
|
-
}, [fetcherRefs]);
|
|
893
|
-
let unregisterFetcher = React.useCallback(key => {
|
|
894
|
-
let count = fetcherRefs.current.get(key);
|
|
895
|
-
if (count == null || count <= 1) {
|
|
896
|
-
fetcherRefs.current.delete(key);
|
|
897
|
-
fetcherData.current.delete(key);
|
|
898
|
-
} else {
|
|
899
|
-
fetcherRefs.current.set(key, count - 1);
|
|
900
|
-
}
|
|
901
|
-
}, [fetcherData, fetcherRefs]);
|
|
902
|
-
let fetcherContext = React.useMemo(() => ({
|
|
903
|
-
fetcherData: fetcherData.current,
|
|
904
|
-
register: registerFetcher,
|
|
905
|
-
unregister: unregisterFetcher
|
|
906
|
-
}), [fetcherData, registerFetcher, unregisterFetcher]);
|
|
907
|
-
return {
|
|
908
|
-
fetcherContext,
|
|
909
|
-
fetcherData
|
|
910
|
-
};
|
|
911
|
-
}
|
|
912
881
|
// External hooks
|
|
913
882
|
/**
|
|
914
883
|
* Handles the click behavior for router `<Link>` components. This is useful if
|
|
@@ -1084,10 +1053,10 @@ function useFetcher(_temp3) {
|
|
|
1084
1053
|
router
|
|
1085
1054
|
} = useDataRouterContext(DataRouterHook.UseFetcher);
|
|
1086
1055
|
let state = useDataRouterState(DataRouterStateHook.UseFetcher);
|
|
1087
|
-
let
|
|
1056
|
+
let fetcherData = React.useContext(FetchersContext);
|
|
1088
1057
|
let route = React.useContext(UNSAFE_RouteContext);
|
|
1089
1058
|
let routeId = (_route$matches = route.matches[route.matches.length - 1]) == null ? void 0 : _route$matches.route.id;
|
|
1090
|
-
!
|
|
1059
|
+
!fetcherData ? process.env.NODE_ENV !== "production" ? UNSAFE_invariant(false, "useFetcher must be used inside a FetchersContext") : UNSAFE_invariant(false) : void 0;
|
|
1091
1060
|
!route ? process.env.NODE_ENV !== "production" ? UNSAFE_invariant(false, "useFetcher must be used inside a RouteContext") : UNSAFE_invariant(false) : void 0;
|
|
1092
1061
|
!(routeId != null) ? process.env.NODE_ENV !== "production" ? UNSAFE_invariant(false, "useFetcher can only be used on routes that contain a unique \"id\"") : UNSAFE_invariant(false) : void 0;
|
|
1093
1062
|
// Fetcher key handling
|
|
@@ -1096,22 +1065,15 @@ function useFetcher(_temp3) {
|
|
|
1096
1065
|
setFetcherKey(getUniqueFetcherId());
|
|
1097
1066
|
}
|
|
1098
1067
|
// Registration/cleanup
|
|
1099
|
-
let {
|
|
1100
|
-
fetcherData,
|
|
1101
|
-
register,
|
|
1102
|
-
unregister
|
|
1103
|
-
} = fetchersContext;
|
|
1104
1068
|
React.useEffect(() => {
|
|
1105
|
-
|
|
1069
|
+
router.getFetcher(fetcherKey);
|
|
1106
1070
|
return () => {
|
|
1107
|
-
// Unregister from ref counting for the data layer
|
|
1108
|
-
unregister(fetcherKey);
|
|
1109
1071
|
// Tell the router we've unmounted - if v7_fetcherPersist is enabled this
|
|
1110
1072
|
// will not delete immediately but instead queue up a delete after the
|
|
1111
1073
|
// fetcher returns to an `idle` state
|
|
1112
1074
|
router.deleteFetcher(fetcherKey);
|
|
1113
1075
|
};
|
|
1114
|
-
}, [router, fetcherKey
|
|
1076
|
+
}, [router, fetcherKey]);
|
|
1115
1077
|
// Fetcher additions
|
|
1116
1078
|
let load = React.useCallback(href => {
|
|
1117
1079
|
!routeId ? process.env.NODE_ENV !== "production" ? UNSAFE_invariant(false, "No routeId available for fetcher.load()") : UNSAFE_invariant(false) : void 0;
|