106 lines
4.2 KiB
JavaScript
106 lines
4.2 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "default", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return Error;
|
|
}
|
|
});
|
|
const _interop_require_default = require("@swc/helpers/_/_interop_require_default");
|
|
const _react = /*#__PURE__*/ _interop_require_default._(require("react"));
|
|
const _head = /*#__PURE__*/ _interop_require_default._(require("../shared/lib/head"));
|
|
const statusCodes = {
|
|
400: "Bad Request",
|
|
404: "This page could not be found",
|
|
405: "Method Not Allowed",
|
|
500: "Internal Server Error"
|
|
};
|
|
function _getInitialProps(param) {
|
|
let { res, err } = param;
|
|
const statusCode = res && res.statusCode ? res.statusCode : err ? err.statusCode : 404;
|
|
return {
|
|
statusCode
|
|
};
|
|
}
|
|
const styles = {
|
|
error: {
|
|
// https://github.com/sindresorhus/modern-normalize/blob/main/modern-normalize.css#L38-L52
|
|
fontFamily: 'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',
|
|
height: "100vh",
|
|
textAlign: "center",
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
alignItems: "center",
|
|
justifyContent: "center"
|
|
},
|
|
desc: {
|
|
lineHeight: "48px"
|
|
},
|
|
h1: {
|
|
display: "inline-block",
|
|
margin: "0 20px 0 0",
|
|
paddingRight: 23,
|
|
fontSize: 24,
|
|
fontWeight: 500,
|
|
verticalAlign: "top"
|
|
},
|
|
h2: {
|
|
fontSize: 14,
|
|
fontWeight: 400,
|
|
lineHeight: "28px"
|
|
},
|
|
wrap: {
|
|
display: "inline-block"
|
|
}
|
|
};
|
|
class Error extends _react.default.Component {
|
|
render() {
|
|
const { statusCode, withDarkMode = true } = this.props;
|
|
const title = this.props.title || statusCodes[statusCode] || "An unexpected error has occurred";
|
|
return /*#__PURE__*/ _react.default.createElement("div", {
|
|
style: styles.error
|
|
}, /*#__PURE__*/ _react.default.createElement(_head.default, null, /*#__PURE__*/ _react.default.createElement("title", null, statusCode ? statusCode + ": " + title : "Application error: a client-side exception has occurred")), /*#__PURE__*/ _react.default.createElement("div", {
|
|
style: styles.desc
|
|
}, /*#__PURE__*/ _react.default.createElement("style", {
|
|
dangerouslySetInnerHTML: {
|
|
/* CSS minified from
|
|
body { margin: 0; color: #000; background: #fff; }
|
|
.next-error-h1 {
|
|
border-right: 1px solid rgba(0, 0, 0, .3);
|
|
}
|
|
|
|
${
|
|
withDarkMode
|
|
? `@media (prefers-color-scheme: dark) {
|
|
body { color: #fff; background: #000; }
|
|
.next-error-h1 {
|
|
border-right: 1px solid rgba(255, 255, 255, .3);
|
|
}
|
|
}`
|
|
: ''
|
|
}
|
|
*/ __html: "body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}" + (withDarkMode ? "@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}" : "")
|
|
}
|
|
}), statusCode ? /*#__PURE__*/ _react.default.createElement("h1", {
|
|
className: "next-error-h1",
|
|
style: styles.h1
|
|
}, statusCode) : null, /*#__PURE__*/ _react.default.createElement("div", {
|
|
style: styles.wrap
|
|
}, /*#__PURE__*/ _react.default.createElement("h2", {
|
|
style: styles.h2
|
|
}, this.props.title || statusCode ? title : /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, "Application error: a client-side exception has occurred (see the browser console for more information)"), "."))));
|
|
}
|
|
}
|
|
Error.displayName = "ErrorPage";
|
|
Error.getInitialProps = _getInitialProps;
|
|
Error.origGetInitialProps = _getInitialProps;
|
|
|
|
if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {
|
|
Object.defineProperty(exports.default, '__esModule', { value: true });
|
|
Object.assign(exports.default, exports);
|
|
module.exports = exports.default;
|
|
}
|
|
|
|
//# sourceMappingURL=_error.js.map
|