1 import { Component } from "inferno";
2 import { Link } from "inferno-router";
3 import { IsoDataOptionalSite } from "shared/interfaces";
4 import { ErrorPageData, setIsoData } from "../../utils";
6 export class ErrorPage extends Component<any, any> {
7 private isoData: IsoDataOptionalSite = setIsoData(this.context);
9 constructor(props: any, context: any) {
10 super(props, context);
14 const errorPageData = this.getErrorPageData();
17 <div className="container-lg text-center">
18 <h1>{errorPageData ? "Error!" : "Page Not Found"}</h1>
23 There was an error on the server. Try refreshing your browser.
24 If that doesn't work, come back at a later time. If the
27 <a href="https://github.com/LemmyNet/lemmy/issues">
28 consider opening an issue.
32 "The page you are looking for does not exist."
37 Click here to return to your home page.
40 {errorPageData?.adminMatrixIds &&
41 errorPageData.adminMatrixIds.length > 0 && (
44 If you would like to reach out to one of{" "}
45 {this.isoData.site_res?.site_view.site.name ?? "this instance"}
46 's admins for support, try the following Matrix addresses:
48 <ul className="mx-auto mt-2" style={{ width: "fit-content" }}>
49 {errorPageData.adminMatrixIds.map(matrixId => (
50 <li key={matrixId} className="text-info">
57 {errorPageData?.error && (
59 style={{ "text-align": "start" }}
60 className="d-block bg-dark text-light p-2 mt-4"
69 private getErrorPageData() {
70 const errorPageData = this.isoData.routeData[0] as
73 if (errorPageData?.type === "error") {