next-auth
Version:
Authentication for Next.js
79 lines (75 loc) • 2.47 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = ErrorPage;
var _preact = require("preact");
function ErrorPage(props) {
var _errors$error$toLower;
const {
url,
error = "default",
theme
} = props;
const signinPageUrl = `${url}/signin`;
const errors = {
default: {
status: 200,
heading: "Error",
message: (0, _preact.h)("p", null, (0, _preact.h)("a", {
className: "site",
href: url === null || url === void 0 ? void 0 : url.origin
}, url === null || url === void 0 ? void 0 : url.host))
},
configuration: {
status: 500,
heading: "Server error",
message: (0, _preact.h)("div", null, (0, _preact.h)("p", null, "There is a problem with the server configuration."), (0, _preact.h)("p", null, "Check the server logs for more information."))
},
accessdenied: {
status: 403,
heading: "Access Denied",
message: (0, _preact.h)("div", null, (0, _preact.h)("p", null, "You do not have permission to sign in."), (0, _preact.h)("p", null, (0, _preact.h)("a", {
className: "button",
href: signinPageUrl
}, "Sign in")))
},
verification: {
status: 403,
heading: "Unable to sign in",
message: (0, _preact.h)("div", null, (0, _preact.h)("p", null, "The sign in link is no longer valid."), (0, _preact.h)("p", null, "It may have been used already or it may have expired.")),
signin: (0, _preact.h)("p", null, (0, _preact.h)("a", {
className: "button",
href: signinPageUrl
}, "Sign in"))
}
};
const {
status,
heading,
message,
signin
} = (_errors$error$toLower = errors[error.toLowerCase()]) !== null && _errors$error$toLower !== void 0 ? _errors$error$toLower : errors.default;
return {
status,
html: (0, _preact.h)("div", {
className: "error"
}, (0, _preact.h)("style", {
dangerouslySetInnerHTML: {
__html: `
:root {
--brand-color: ${theme === null || theme === void 0 ? void 0 : theme.brandColor};
}
`
}
}), (theme === null || theme === void 0 ? void 0 : theme.logo) && (0, _preact.h)("img", {
src: theme.logo,
alt: "Logo",
className: "logo"
}), (0, _preact.h)("div", {
className: "card"
}, (0, _preact.h)("h1", null, heading), (0, _preact.h)("div", {
className: "message"
}, message), signin))
};
}
;