Fix error page not showing when site not fetched and adjust styles

This commit is contained in:
abias 2023-05-14 23:01:39 -04:00
parent 3996cdaae3
commit 23d7751523
3 changed files with 33 additions and 16 deletions

View file

@ -167,7 +167,7 @@ server.get("/*", async (req, res) => {
} }
} }
} catch (error) { } catch (error) {
routeData = [getErrorRouteData(error)]; routeData = getErrorRouteData(error, site);
} }
// Redirect to the 404 if there's an API error // Redirect to the 404 if there's an API error
@ -177,13 +177,10 @@ server.get("/*", async (req, res) => {
if (error === "instance_is_private") { if (error === "instance_is_private") {
return res.redirect(`/signup`); return res.redirect(`/signup`);
} else { } else {
routeData = [getErrorRouteData(error, site)]; routeData = getErrorRouteData(error, site);
} }
} }
console.log("Route Data");
console.log(routeData);
const isoData: IsoDataOptionalSite = { const isoData: IsoDataOptionalSite = {
path, path,
site_res: site, site_res: site,

View file

@ -16,31 +16,51 @@ export class ErrorPage extends Component<any, any> {
return ( return (
<div className="container-lg text-center"> <div className="container-lg text-center">
<h1>{errorPageData ? "Error!" : "Page Not Found"}</h1> <h1>{errorPageData ? "Error!" : "Page Not Found"}</h1>
<p> <p className="p-4">
{errorPageData {errorPageData ? (
? '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>' <>
: "The page you are looking for does not exist"} <span>
There was an error on the server. Try refreshing your browser.
If that doesn&apos;t work, come back at a later time. If the
problem persists,
</span>{" "}
<a href="https://github.com/LemmyNet/lemmy/issues">
consider opening an issue.
</a>
</>
) : (
"The page you are looking for does not exist."
)}
</p> </p>
{!errorPageData && ( {!errorPageData && (
<Link to="/">Click here to return to your home page</Link> <Link to="/" replace>
Click here to return to your home page.
</Link>
)} )}
{errorPageData?.adminMatrixIds && {errorPageData?.adminMatrixIds &&
errorPageData.adminMatrixIds.length > 0 && ( errorPageData.adminMatrixIds.length > 0 && (
<div> <>
<div> <div>
If you would like to reach out to one of{" "} If you would like to reach out to one of{" "}
{this.isoData.site_res?.site_view.site.name ?? "this instance"} {this.isoData.site_res?.site_view.site.name ?? "this instance"}
&apos;s admins for support, try the following Matrix addresses: &apos;s admins for support, try the following Matrix addresses:
</div> </div>
<ul> <ul className="mx-auto mt-2" style={{ width: "fit-content" }}>
{errorPageData.adminMatrixIds.map(matrixId => ( {errorPageData.adminMatrixIds.map(matrixId => (
<li key={matrixId}>{matrixId}</li> <li key={matrixId} className="text-info">
{matrixId}
</li>
))} ))}
</ul> </ul>
</div> </>
)} )}
{errorPageData?.error && ( {errorPageData?.error && (
<code className="text-start">{errorPageData.error}</code> <code
style={{ "text-align": "start" }}
className="d-block bg-dark text-light p-2 mt-4"
>
{errorPageData.error}
</code>
)} )}
</div> </div>
); );

View file

@ -6,7 +6,7 @@ function AuthGuard(props: { children?: InfernoNode }) {
if (!UserService.Instance.myUserInfo) { if (!UserService.Instance.myUserInfo) {
return <Redirect to="/login" />; return <Redirect to="/login" />;
} else { } else {
return <>{props.children}</>; return props.children;
} }
} }