react-router 0.0.0-experimental-c1f0daeff → 0.0.0-experimental-17b9b60af

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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * react-router v0.0.0-experimental-c1f0daeff
2
+ * react-router v0.0.0-experimental-17b9b60af
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -5276,6 +5276,7 @@ function _renderMatches(matches, parentMatches = [], dataRouterState = null, fut
5276
5276
  } else {
5277
5277
  children = outlet;
5278
5278
  }
5279
+ children = /* @__PURE__ */ React2.createElement(RedirectBoundary, null, children);
5279
5280
  return /* @__PURE__ */ React2.createElement(
5280
5281
  RenderedRoute,
5281
5282
  {
@@ -5302,6 +5303,19 @@ function _renderMatches(matches, parentMatches = [], dataRouterState = null, fut
5302
5303
  ) : getChildren();
5303
5304
  }, null);
5304
5305
  }
5306
+ var RedirectBoundary = class extends React2.Component {
5307
+ // If the error is Symbol.for("react-router.redirect"), keep rendering children.
5308
+ // If it's anything else, re-throw to bubble it up.
5309
+ static getDerivedStateFromError(error) {
5310
+ if (error === Symbol.for("react-router.redirect")) {
5311
+ return null;
5312
+ }
5313
+ throw error;
5314
+ }
5315
+ render() {
5316
+ return this.props.children;
5317
+ }
5318
+ };
5305
5319
  function getDataRouterConsoleError(hookName) {
5306
5320
  return `${hookName} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`;
5307
5321
  }
@@ -8794,7 +8808,7 @@ function mergeRefs(...refs) {
8794
8808
  var isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined";
8795
8809
  try {
8796
8810
  if (isBrowser) {
8797
- window.__reactRouterVersion = "0.0.0-experimental-c1f0daeff";
8811
+ window.__reactRouterVersion = "0.0.0-experimental-17b9b60af";
8798
8812
  }
8799
8813
  } catch (e) {
8800
8814
  }
@@ -11517,6 +11531,26 @@ function createCallServer({
11517
11531
  throw new Error("No response body");
11518
11532
  }
11519
11533
  const payload = await decode2(response.body);
11534
+ if (payload.type === "redirect") {
11535
+ if (payload.reload) {
11536
+ window.location.href = payload.location;
11537
+ return;
11538
+ }
11539
+ let reject;
11540
+ const promise = new Promise((resolve, rejectFn) => {
11541
+ reject = rejectFn;
11542
+ });
11543
+ const unsubscribe = window.__router.subscribe(({ navigation }) => {
11544
+ if (navigation.state === "idle") {
11545
+ unsubscribe();
11546
+ reject(Symbol.for("react-router.redirect"));
11547
+ }
11548
+ });
11549
+ window.__router.navigate(payload.location, {
11550
+ replace: payload.replace
11551
+ });
11552
+ return promise;
11553
+ }
11520
11554
  if (payload.type !== "action") {
11521
11555
  throw new Error("Unexpected payload type");
11522
11556
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * react-router v0.0.0-experimental-c1f0daeff
2
+ * react-router v0.0.0-experimental-17b9b60af
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * react-router v0.0.0-experimental-c1f0daeff
2
+ * react-router v0.0.0-experimental-17b9b60af
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -26,7 +26,7 @@ import {
26
26
  invariant,
27
27
  mapRouteProperties,
28
28
  useFogOFWarDiscovery
29
- } from "./chunk-QXUAVHMA.mjs";
29
+ } from "./chunk-MV33LHGM.mjs";
30
30
 
31
31
  // lib/dom-export/dom-router-provider.tsx
32
32
  import * as React from "react";
@@ -1,5 +1,5 @@
1
1
  /**
2
- * react-router v0.0.0-experimental-c1f0daeff
2
+ * react-router v0.0.0-experimental-17b9b60af
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -5435,6 +5435,7 @@ function _renderMatches(matches, parentMatches = [], dataRouterState = null, fut
5435
5435
  } else {
5436
5436
  children = outlet;
5437
5437
  }
5438
+ children = /* @__PURE__ */ React2.createElement(RedirectBoundary, null, children);
5438
5439
  return /* @__PURE__ */ React2.createElement(
5439
5440
  RenderedRoute,
5440
5441
  {
@@ -5461,6 +5462,19 @@ function _renderMatches(matches, parentMatches = [], dataRouterState = null, fut
5461
5462
  ) : getChildren();
5462
5463
  }, null);
5463
5464
  }
5465
+ var RedirectBoundary = class extends React2.Component {
5466
+ // If the error is Symbol.for("react-router.redirect"), keep rendering children.
5467
+ // If it's anything else, re-throw to bubble it up.
5468
+ static getDerivedStateFromError(error) {
5469
+ if (error === Symbol.for("react-router.redirect")) {
5470
+ return null;
5471
+ }
5472
+ throw error;
5473
+ }
5474
+ render() {
5475
+ return this.props.children;
5476
+ }
5477
+ };
5464
5478
  function getDataRouterConsoleError(hookName) {
5465
5479
  return `${hookName} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`;
5466
5480
  }
@@ -8953,7 +8967,7 @@ function mergeRefs(...refs) {
8953
8967
  var isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined";
8954
8968
  try {
8955
8969
  if (isBrowser) {
8956
- window.__reactRouterVersion = "0.0.0-experimental-c1f0daeff";
8970
+ window.__reactRouterVersion = "0.0.0-experimental-17b9b60af";
8957
8971
  }
8958
8972
  } catch (e) {
8959
8973
  }
@@ -11676,6 +11690,26 @@ function createCallServer({
11676
11690
  throw new Error("No response body");
11677
11691
  }
11678
11692
  const payload = await decode2(response.body);
11693
+ if (payload.type === "redirect") {
11694
+ if (payload.reload) {
11695
+ window.location.href = payload.location;
11696
+ return;
11697
+ }
11698
+ let reject;
11699
+ const promise = new Promise((resolve, rejectFn) => {
11700
+ reject = rejectFn;
11701
+ });
11702
+ const unsubscribe = window.__router.subscribe(({ navigation }) => {
11703
+ if (navigation.state === "idle") {
11704
+ unsubscribe();
11705
+ reject(Symbol.for("react-router.redirect"));
11706
+ }
11707
+ });
11708
+ window.__router.navigate(payload.location, {
11709
+ replace: payload.replace
11710
+ });
11711
+ return promise;
11712
+ }
11679
11713
  if (payload.type !== "action") {
11680
11714
  throw new Error("Unexpected payload type");
11681
11715
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * react-router v0.0.0-experimental-c1f0daeff
2
+ * react-router v0.0.0-experimental-17b9b60af
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -134,7 +134,7 @@ import {
134
134
  withComponentProps,
135
135
  withErrorBoundaryProps,
136
136
  withHydrateFallbackProps
137
- } from "./chunk-QXUAVHMA.mjs";
137
+ } from "./chunk-MV33LHGM.mjs";
138
138
  export {
139
139
  Await,
140
140
  BrowserRouter,
@@ -1,5 +1,5 @@
1
1
  /**
2
- * react-router v0.0.0-experimental-c1f0daeff
2
+ * react-router v0.0.0-experimental-17b9b60af
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * react-router v0.0.0-experimental-c1f0daeff
2
+ * react-router v0.0.0-experimental-17b9b60af
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -25,7 +25,7 @@ function _interopNamespace(e) {
25
25
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
26
26
 
27
27
  /**
28
- * react-router v0.0.0-experimental-c1f0daeff
28
+ * react-router v0.0.0-experimental-17b9b60af
29
29
  *
30
30
  * Copyright (c) Remix Software Inc.
31
31
  *
@@ -2526,6 +2526,9 @@ async function processServerAction(request, decodeCallServer, decodeFormAction,
2526
2526
  try {
2527
2527
  await actionResult;
2528
2528
  } catch (error) {
2529
+ if (isResponse(error)) {
2530
+ return error;
2531
+ }
2529
2532
  onError?.(error);
2530
2533
  }
2531
2534
  return {
@@ -2545,6 +2548,9 @@ async function processServerAction(request, decodeCallServer, decodeFormAction,
2545
2548
  try {
2546
2549
  await action();
2547
2550
  } catch (error) {
2551
+ if (isResponse(error)) {
2552
+ return error;
2553
+ }
2548
2554
  onError?.(error);
2549
2555
  }
2550
2556
  return {
@@ -2581,6 +2587,9 @@ async function generateRenderResponse(request, routes, decodeCallServer, decodeF
2581
2587
  decodeFormAction,
2582
2588
  onError
2583
2589
  );
2590
+ if (isResponse(result2)) {
2591
+ return generateRedirectResponse(statusCode, result2, generateResponse);
2592
+ }
2584
2593
  actionResult = result2?.actionResult;
2585
2594
  request = result2?.revalidationRequest ?? request;
2586
2595
  }
@@ -3,7 +3,7 @@ import * as React from 'react';
3
3
  import { splitCookiesString } from 'set-cookie-parser';
4
4
 
5
5
  /**
6
- * react-router v0.0.0-experimental-c1f0daeff
6
+ * react-router v0.0.0-experimental-17b9b60af
7
7
  *
8
8
  * Copyright (c) Remix Software Inc.
9
9
  *
@@ -2504,6 +2504,9 @@ async function processServerAction(request, decodeCallServer, decodeFormAction,
2504
2504
  try {
2505
2505
  await actionResult;
2506
2506
  } catch (error) {
2507
+ if (isResponse(error)) {
2508
+ return error;
2509
+ }
2507
2510
  onError?.(error);
2508
2511
  }
2509
2512
  return {
@@ -2523,6 +2526,9 @@ async function processServerAction(request, decodeCallServer, decodeFormAction,
2523
2526
  try {
2524
2527
  await action();
2525
2528
  } catch (error) {
2529
+ if (isResponse(error)) {
2530
+ return error;
2531
+ }
2526
2532
  onError?.(error);
2527
2533
  }
2528
2534
  return {
@@ -2559,6 +2565,9 @@ async function generateRenderResponse(request, routes, decodeCallServer, decodeF
2559
2565
  decodeFormAction,
2560
2566
  onError
2561
2567
  );
2568
+ if (isResponse(result2)) {
2569
+ return generateRedirectResponse(statusCode, result2, generateResponse);
2570
+ }
2562
2571
  actionResult = result2?.actionResult;
2563
2572
  request = result2?.revalidationRequest ?? request;
2564
2573
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * react-router v0.0.0-experimental-c1f0daeff
2
+ * react-router v0.0.0-experimental-17b9b60af
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -5276,6 +5276,7 @@ function _renderMatches(matches, parentMatches = [], dataRouterState = null, fut
5276
5276
  } else {
5277
5277
  children = outlet;
5278
5278
  }
5279
+ children = /* @__PURE__ */ React2.createElement(RedirectBoundary, null, children);
5279
5280
  return /* @__PURE__ */ React2.createElement(
5280
5281
  RenderedRoute,
5281
5282
  {
@@ -5302,6 +5303,19 @@ function _renderMatches(matches, parentMatches = [], dataRouterState = null, fut
5302
5303
  ) : getChildren();
5303
5304
  }, null);
5304
5305
  }
5306
+ var RedirectBoundary = class extends React2.Component {
5307
+ // If the error is Symbol.for("react-router.redirect"), keep rendering children.
5308
+ // If it's anything else, re-throw to bubble it up.
5309
+ static getDerivedStateFromError(error) {
5310
+ if (error === Symbol.for("react-router.redirect")) {
5311
+ return null;
5312
+ }
5313
+ throw error;
5314
+ }
5315
+ render() {
5316
+ return this.props.children;
5317
+ }
5318
+ };
5305
5319
  function getDataRouterConsoleError(hookName) {
5306
5320
  return `${hookName} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`;
5307
5321
  }
@@ -8794,7 +8808,7 @@ function mergeRefs(...refs) {
8794
8808
  var isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined";
8795
8809
  try {
8796
8810
  if (isBrowser) {
8797
- window.__reactRouterVersion = "0.0.0-experimental-c1f0daeff";
8811
+ window.__reactRouterVersion = "0.0.0-experimental-17b9b60af";
8798
8812
  }
8799
8813
  } catch (e) {
8800
8814
  }
@@ -11517,6 +11531,26 @@ function createCallServer({
11517
11531
  throw new Error("No response body");
11518
11532
  }
11519
11533
  const payload = await decode2(response.body);
11534
+ if (payload.type === "redirect") {
11535
+ if (payload.reload) {
11536
+ window.location.href = payload.location;
11537
+ return;
11538
+ }
11539
+ let reject;
11540
+ const promise = new Promise((resolve, rejectFn) => {
11541
+ reject = rejectFn;
11542
+ });
11543
+ const unsubscribe = window.__router.subscribe(({ navigation }) => {
11544
+ if (navigation.state === "idle") {
11545
+ unsubscribe();
11546
+ reject(Symbol.for("react-router.redirect"));
11547
+ }
11548
+ });
11549
+ window.__router.navigate(payload.location, {
11550
+ replace: payload.replace
11551
+ });
11552
+ return promise;
11553
+ }
11520
11554
  if (payload.type !== "action") {
11521
11555
  throw new Error("Unexpected payload type");
11522
11556
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * react-router v0.0.0-experimental-c1f0daeff
2
+ * react-router v0.0.0-experimental-17b9b60af
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * react-router v0.0.0-experimental-c1f0daeff
2
+ * react-router v0.0.0-experimental-17b9b60af
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -26,7 +26,7 @@ import {
26
26
  invariant,
27
27
  mapRouteProperties,
28
28
  useFogOFWarDiscovery
29
- } from "./chunk-BA2GDMEQ.mjs";
29
+ } from "./chunk-6E4NX5TN.mjs";
30
30
 
31
31
  // lib/dom-export/dom-router-provider.tsx
32
32
  import * as React from "react";
@@ -1,5 +1,5 @@
1
1
  /**
2
- * react-router v0.0.0-experimental-c1f0daeff
2
+ * react-router v0.0.0-experimental-17b9b60af
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -5435,6 +5435,7 @@ function _renderMatches(matches, parentMatches = [], dataRouterState = null, fut
5435
5435
  } else {
5436
5436
  children = outlet;
5437
5437
  }
5438
+ children = /* @__PURE__ */ React2.createElement(RedirectBoundary, null, children);
5438
5439
  return /* @__PURE__ */ React2.createElement(
5439
5440
  RenderedRoute,
5440
5441
  {
@@ -5461,6 +5462,19 @@ function _renderMatches(matches, parentMatches = [], dataRouterState = null, fut
5461
5462
  ) : getChildren();
5462
5463
  }, null);
5463
5464
  }
5465
+ var RedirectBoundary = class extends React2.Component {
5466
+ // If the error is Symbol.for("react-router.redirect"), keep rendering children.
5467
+ // If it's anything else, re-throw to bubble it up.
5468
+ static getDerivedStateFromError(error) {
5469
+ if (error === Symbol.for("react-router.redirect")) {
5470
+ return null;
5471
+ }
5472
+ throw error;
5473
+ }
5474
+ render() {
5475
+ return this.props.children;
5476
+ }
5477
+ };
5464
5478
  function getDataRouterConsoleError(hookName) {
5465
5479
  return `${hookName} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`;
5466
5480
  }
@@ -8953,7 +8967,7 @@ function mergeRefs(...refs) {
8953
8967
  var isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined";
8954
8968
  try {
8955
8969
  if (isBrowser) {
8956
- window.__reactRouterVersion = "0.0.0-experimental-c1f0daeff";
8970
+ window.__reactRouterVersion = "0.0.0-experimental-17b9b60af";
8957
8971
  }
8958
8972
  } catch (e) {
8959
8973
  }
@@ -11676,6 +11690,26 @@ function createCallServer({
11676
11690
  throw new Error("No response body");
11677
11691
  }
11678
11692
  const payload = await decode2(response.body);
11693
+ if (payload.type === "redirect") {
11694
+ if (payload.reload) {
11695
+ window.location.href = payload.location;
11696
+ return;
11697
+ }
11698
+ let reject;
11699
+ const promise = new Promise((resolve, rejectFn) => {
11700
+ reject = rejectFn;
11701
+ });
11702
+ const unsubscribe = window.__router.subscribe(({ navigation }) => {
11703
+ if (navigation.state === "idle") {
11704
+ unsubscribe();
11705
+ reject(Symbol.for("react-router.redirect"));
11706
+ }
11707
+ });
11708
+ window.__router.navigate(payload.location, {
11709
+ replace: payload.replace
11710
+ });
11711
+ return promise;
11712
+ }
11679
11713
  if (payload.type !== "action") {
11680
11714
  throw new Error("Unexpected payload type");
11681
11715
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * react-router v0.0.0-experimental-c1f0daeff
2
+ * react-router v0.0.0-experimental-17b9b60af
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -134,7 +134,7 @@ import {
134
134
  withComponentProps,
135
135
  withErrorBoundaryProps,
136
136
  withHydrateFallbackProps
137
- } from "./chunk-BA2GDMEQ.mjs";
137
+ } from "./chunk-6E4NX5TN.mjs";
138
138
  export {
139
139
  Await,
140
140
  BrowserRouter,
@@ -1,5 +1,5 @@
1
1
  /**
2
- * react-router v0.0.0-experimental-c1f0daeff
2
+ * react-router v0.0.0-experimental-17b9b60af
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * react-router v0.0.0-experimental-c1f0daeff
2
+ * react-router v0.0.0-experimental-17b9b60af
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -25,7 +25,7 @@ function _interopNamespace(e) {
25
25
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
26
26
 
27
27
  /**
28
- * react-router v0.0.0-experimental-c1f0daeff
28
+ * react-router v0.0.0-experimental-17b9b60af
29
29
  *
30
30
  * Copyright (c) Remix Software Inc.
31
31
  *
@@ -2526,6 +2526,9 @@ async function processServerAction(request, decodeCallServer, decodeFormAction,
2526
2526
  try {
2527
2527
  await actionResult;
2528
2528
  } catch (error) {
2529
+ if (isResponse(error)) {
2530
+ return error;
2531
+ }
2529
2532
  onError?.(error);
2530
2533
  }
2531
2534
  return {
@@ -2545,6 +2548,9 @@ async function processServerAction(request, decodeCallServer, decodeFormAction,
2545
2548
  try {
2546
2549
  await action();
2547
2550
  } catch (error) {
2551
+ if (isResponse(error)) {
2552
+ return error;
2553
+ }
2548
2554
  onError?.(error);
2549
2555
  }
2550
2556
  return {
@@ -2581,6 +2587,9 @@ async function generateRenderResponse(request, routes, decodeCallServer, decodeF
2581
2587
  decodeFormAction,
2582
2588
  onError
2583
2589
  );
2590
+ if (isResponse(result2)) {
2591
+ return generateRedirectResponse(statusCode, result2, generateResponse);
2592
+ }
2584
2593
  actionResult = result2?.actionResult;
2585
2594
  request = result2?.revalidationRequest ?? request;
2586
2595
  }
@@ -3,7 +3,7 @@ import * as React from 'react';
3
3
  import { splitCookiesString } from 'set-cookie-parser';
4
4
 
5
5
  /**
6
- * react-router v0.0.0-experimental-c1f0daeff
6
+ * react-router v0.0.0-experimental-17b9b60af
7
7
  *
8
8
  * Copyright (c) Remix Software Inc.
9
9
  *
@@ -2504,6 +2504,9 @@ async function processServerAction(request, decodeCallServer, decodeFormAction,
2504
2504
  try {
2505
2505
  await actionResult;
2506
2506
  } catch (error) {
2507
+ if (isResponse(error)) {
2508
+ return error;
2509
+ }
2507
2510
  onError?.(error);
2508
2511
  }
2509
2512
  return {
@@ -2523,6 +2526,9 @@ async function processServerAction(request, decodeCallServer, decodeFormAction,
2523
2526
  try {
2524
2527
  await action();
2525
2528
  } catch (error) {
2529
+ if (isResponse(error)) {
2530
+ return error;
2531
+ }
2526
2532
  onError?.(error);
2527
2533
  }
2528
2534
  return {
@@ -2559,6 +2565,9 @@ async function generateRenderResponse(request, routes, decodeCallServer, decodeF
2559
2565
  decodeFormAction,
2560
2566
  onError
2561
2567
  );
2568
+ if (isResponse(result2)) {
2569
+ return generateRedirectResponse(statusCode, result2, generateResponse);
2570
+ }
2562
2571
  actionResult = result2?.actionResult;
2563
2572
  request = result2?.revalidationRequest ?? request;
2564
2573
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-router",
3
- "version": "0.0.0-experimental-c1f0daeff",
3
+ "version": "0.0.0-experimental-17b9b60af",
4
4
  "description": "Declarative routing for React",
5
5
  "keywords": [
6
6
  "react",