2023-05-14 15:08:06 +00:00
import { Component } from "inferno" ;
import { Link } from "inferno-router" ;
2023-05-14 23:49:55 +00:00
import { IsoDataOptionalSite } from "shared/interfaces" ;
2023-05-14 15:08:06 +00:00
import { ErrorPageData , setIsoData } from "../../utils" ;
export class ErrorPage extends Component < any , any > {
2023-05-14 23:49:55 +00:00
private isoData : IsoDataOptionalSite = setIsoData ( this . context ) ;
2023-05-14 15:08:06 +00:00
constructor ( props : any , context : any ) {
super ( props , context ) ;
}
render() {
const errorPageData = this . getErrorPageData ( ) ;
return (
2023-05-14 20:25:03 +00:00
< div className = "container-lg text-center" >
2023-05-14 15:08:06 +00:00
< h1 > { errorPageData ? "Error!" : "Page Not Found" } < / h1 >
< p >
{ errorPageData
2023-05-14 20:25:03 +00:00
? 'There was an error on the server. Try refreshing your browser. If that doesn\'t work, come back at a later time. If the problem persists, <a href="https://github.com/LemmyNet/lemmy/issues">consider opening an issue.</a>'
2023-05-14 15:08:06 +00:00
: "The page you are looking for does not exist" }
< / p >
{ ! errorPageData && (
< Link to = "/" > Click here to return to your home page < / Link >
) }
{ errorPageData ? . adminMatrixIds &&
errorPageData . adminMatrixIds . length > 0 && (
< div >
< div >
If you would like to reach out to one of { " " }
2023-05-14 23:49:55 +00:00
{ this . isoData . site_res ? . site_view . site . name ? ? "this instance" }
& apos ; s admins for support , try the following Matrix addresses :
2023-05-14 15:08:06 +00:00
< / div >
< ul >
{ errorPageData . adminMatrixIds . map ( matrixId = > (
< li key = { matrixId } > { matrixId } < / li >
) ) }
< / ul >
< / div >
) }
2023-05-14 20:25:03 +00:00
{ errorPageData ? . error && (
< code className = "text-start" > { errorPageData . error } < / code >
) }
2023-05-14 15:08:06 +00:00
< / div >
) ;
}
private getErrorPageData() {
const errorPageData = this . isoData . routeData [ 0 ] as
| ErrorPageData
| undefined ;
if ( errorPageData ? . type === "error" ) {
return errorPageData ;
}
return undefined ;
}
}