feat(frontend): actual error page
This commit is contained in:
parent
f3bb2d5d01
commit
02e2b230bf
2 changed files with 52 additions and 1 deletions
|
@ -73,7 +73,14 @@
|
|||
"extra-info-header": "Extra error information",
|
||||
"noscript-title": "This page requires JavaScript",
|
||||
"noscript-info": "This page requires JavaScript to function correctly. Some buttons may not work, or the page may not work at all.",
|
||||
"noscript-short": "Requires JavaScript"
|
||||
"noscript-short": "Requires JavaScript",
|
||||
"404-description": "The page you were trying to visit was not found. If you're sure the page should exist, check your address bar for any typos.",
|
||||
"back-to-profile-button": "Go back to your profile",
|
||||
"back-to-main-page-button": "Go back to the main page",
|
||||
"back-to-prev-page-button": "Go back to the previous page",
|
||||
"400-description": "Something went wrong with your request. This error should never land you on this page, so it's probably a bug.",
|
||||
"500-description": "Something went wrong on the server. Please try again later.",
|
||||
"unknown-status-description": "Something went wrong, but we're not sure what. Please try again."
|
||||
},
|
||||
"settings": {
|
||||
"general-information-tab": "General information",
|
||||
|
|
44
Foxnouns.Frontend/src/routes/+error.svelte
Normal file
44
Foxnouns.Frontend/src/routes/+error.svelte
Normal file
|
@ -0,0 +1,44 @@
|
|||
<script lang="ts">
|
||||
import { page } from "$app/stores";
|
||||
import { t } from "$lib/i18n";
|
||||
import type { LayoutData } from "./$types";
|
||||
|
||||
let error = $derived($page.error!);
|
||||
|
||||
type Props = { data: LayoutData };
|
||||
let { data }: Props = $props();
|
||||
</script>
|
||||
|
||||
<svelte:head>
|
||||
<title>{$t("title.an-error-occurred")} • pronouns.cc</title>
|
||||
</svelte:head>
|
||||
|
||||
<div class="container">
|
||||
<h3>{$t("title.an-error-occurred")}</h3>
|
||||
<p>
|
||||
<strong>{$page.status}</strong>: {error.message}
|
||||
</p>
|
||||
<p>
|
||||
{#if $page.status === 400}
|
||||
{$t("error.400-description")}
|
||||
{:else if $page.status === 404}
|
||||
{$t("error.404-description")}
|
||||
{:else if $page.status === 500}
|
||||
{$t("error.500-description")}
|
||||
{:else}
|
||||
{$t("error.unknown-status-description")}
|
||||
{/if}
|
||||
</p>
|
||||
<div class="btn-group">
|
||||
{#if data.meUser}
|
||||
<a class="btn btn-primary" href="/@{data.meUser.username}">
|
||||
{$t("error.back-to-profile-button")}
|
||||
</a>
|
||||
{:else}
|
||||
<a class="btn btn-primary" href="/">{$t("error.back-to-main-page-button")}</a>
|
||||
{/if}
|
||||
<button class="btn btn-secondary" type="button" onclick={() => history.back()}>
|
||||
{$t("error.back-to-prev-page-button")}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
Loading…
Reference in a new issue