| "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| var _chunkX5SKXJ4Ajs = require('./chunk-X5SKXJ4A.js'); |
|
|
| |
| function getHydrationData({ |
| state, |
| routes, |
| getRouteInfo, |
| location, |
| basename, |
| isSpaMode |
| }) { |
| let hydrationData = { |
| ...state, |
| loaderData: { ...state.loaderData } |
| }; |
| let initialMatches = _chunkX5SKXJ4Ajs.matchRoutes.call(void 0, routes, location, basename); |
| if (initialMatches) { |
| for (let match of initialMatches) { |
| let routeId = match.route.id; |
| let routeInfo = getRouteInfo(routeId); |
| if (_chunkX5SKXJ4Ajs.shouldHydrateRouteLoader.call(void 0, |
| routeId, |
| routeInfo.clientLoader, |
| routeInfo.hasLoader, |
| isSpaMode |
| ) && (routeInfo.hasHydrateFallback || !routeInfo.hasLoader)) { |
| delete hydrationData.loaderData[routeId]; |
| } else if (!routeInfo.hasLoader) { |
| hydrationData.loaderData[routeId] = null; |
| } |
| } |
| } |
| return hydrationData; |
| } |
|
|
| |
| var _react = require('react'); var _react2 = _interopRequireDefault(_react); |
| var RSCRouterGlobalErrorBoundary = class extends _react2.default.Component { |
| constructor(props) { |
| super(props); |
| this.state = { error: null, location: props.location }; |
| } |
| static getDerivedStateFromError(error) { |
| return { error }; |
| } |
| static getDerivedStateFromProps(props, state) { |
| if (state.location !== props.location) { |
| return { error: null, location: props.location }; |
| } |
| return { error: state.error, location: state.location }; |
| } |
| render() { |
| if (this.state.error) { |
| return _react2.default.createElement( |
| RSCDefaultRootErrorBoundaryImpl, |
| { |
| error: this.state.error, |
| renderAppShell: true |
| } |
| ); |
| } else { |
| return this.props.children; |
| } |
| } |
| }; |
| function ErrorWrapper({ |
| renderAppShell, |
| title, |
| children |
| }) { |
| if (!renderAppShell) { |
| return children; |
| } |
| return _react2.default.createElement("html", { lang: "en" }, _react2.default.createElement("head", null, _react2.default.createElement("meta", { charSet: "utf-8" }), _react2.default.createElement( |
| "meta", |
| { |
| name: "viewport", |
| content: "width=device-width,initial-scale=1,viewport-fit=cover" |
| } |
| ), _react2.default.createElement("title", null, title)), _react2.default.createElement("body", null, _react2.default.createElement("main", { style: { fontFamily: "system-ui, sans-serif", padding: "2rem" } }, children))); |
| } |
| function RSCDefaultRootErrorBoundaryImpl({ |
| error, |
| renderAppShell |
| }) { |
| console.error(error); |
| let heyDeveloper = _react2.default.createElement( |
| "script", |
| { |
| dangerouslySetInnerHTML: { |
| __html: ` |
| console.log( |
| "\u{1F4BF} Hey developer \u{1F44B}. You can provide a way better UX than this when your app throws errors. Check out https://reactrouter.com/how-to/error-boundary for more information." |
| ); |
| ` |
| } |
| } |
| ); |
| if (_chunkX5SKXJ4Ajs.isRouteErrorResponse.call(void 0, error)) { |
| return _react2.default.createElement( |
| ErrorWrapper, |
| { |
| renderAppShell, |
| title: "Unhandled Thrown Response!" |
| }, |
| _react2.default.createElement("h1", { style: { fontSize: "24px" } }, error.status, " ", error.statusText), |
| _chunkX5SKXJ4Ajs.ENABLE_DEV_WARNINGS ? heyDeveloper : null |
| ); |
| } |
| let errorInstance; |
| if (error instanceof Error) { |
| errorInstance = error; |
| } else { |
| let errorString = error == null ? "Unknown Error" : typeof error === "object" && "toString" in error ? error.toString() : JSON.stringify(error); |
| errorInstance = new Error(errorString); |
| } |
| return _react2.default.createElement(ErrorWrapper, { renderAppShell, title: "Application Error!" }, _react2.default.createElement("h1", { style: { fontSize: "24px" } }, "Application Error"), _react2.default.createElement( |
| "pre", |
| { |
| style: { |
| padding: "2rem", |
| background: "hsla(10, 50%, 50%, 0.1)", |
| color: "red", |
| overflow: "auto" |
| } |
| }, |
| errorInstance.stack |
| ), heyDeveloper); |
| } |
| function RSCDefaultRootErrorBoundary({ |
| hasRootLayout |
| }) { |
| let error = _chunkX5SKXJ4Ajs.useRouteError.call(void 0, ); |
| if (hasRootLayout === void 0) { |
| throw new Error("Missing 'hasRootLayout' prop"); |
| } |
| return _react2.default.createElement( |
| RSCDefaultRootErrorBoundaryImpl, |
| { |
| renderAppShell: !hasRootLayout, |
| error |
| } |
| ); |
| } |
|
|
| |
| function createRSCRouteModules(payload) { |
| const routeModules = {}; |
| for (const match of payload.matches) { |
| populateRSCRouteModules(routeModules, match); |
| } |
| return routeModules; |
| } |
| function populateRSCRouteModules(routeModules, matches) { |
| matches = Array.isArray(matches) ? matches : [matches]; |
| for (const match of matches) { |
| routeModules[match.id] = { |
| links: match.links, |
| meta: match.meta, |
| default: noopComponent |
| }; |
| } |
| } |
| var noopComponent = () => null; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| exports.getHydrationData = getHydrationData; exports.RSCRouterGlobalErrorBoundary = RSCRouterGlobalErrorBoundary; exports.RSCDefaultRootErrorBoundary = RSCDefaultRootErrorBoundary; exports.createRSCRouteModules = createRSCRouteModules; exports.populateRSCRouteModules = populateRSCRouteModules; |
|
|