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 CHANGED
@@ -1,12 +1,12 @@
1
1
  # `react-router-dom-v5-compat`
2
2
 
3
- ## 6.18.0-pre.0
3
+ ## 6.18.0
4
4
 
5
5
  ### Patch Changes
6
6
 
7
7
  - Updated dependencies:
8
- - `react-router-dom@6.18.0-pre.0`
9
- - `react-router@6.18.0-pre.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-pre.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(null);
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: fetcherContext
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 fetchersContext = React.useContext(FetchersContext);
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
- !fetchersContext ? process.env.NODE_ENV !== "production" ? UNSAFE_invariant(false, "useFetcher must be used inside a FetchersContext") : UNSAFE_invariant(false) : void 0;
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
- register(fetcherKey);
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, register, unregister]);
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;