2019-01-21 15:08:22 +01:00
|
|
|
<template>
|
2022-07-12 10:55:28 +02:00
|
|
|
<section class="container mx-auto pt-4 is-max-desktop max-w-2xl">
|
|
|
|
<div class="">
|
|
|
|
<div class="">
|
2020-12-11 15:27:04 +01:00
|
|
|
<picture>
|
|
|
|
<source
|
2022-07-12 10:55:28 +02:00
|
|
|
:srcset="`/img/pics/error-480w.webp 1x, /img/pics/error-1024w.webp 2x`"
|
2020-12-11 15:27:04 +01:00
|
|
|
type="image/webp"
|
|
|
|
/>
|
|
|
|
|
|
|
|
<img
|
2022-08-12 16:40:04 +02:00
|
|
|
:src="`/img/pics/error-480w.webp`"
|
2020-12-11 15:27:04 +01:00
|
|
|
alt=""
|
|
|
|
width="2616"
|
|
|
|
height="1698"
|
|
|
|
loading="lazy"
|
|
|
|
/>
|
|
|
|
</picture>
|
2022-07-12 10:55:28 +02:00
|
|
|
<h1 class="text-4xl mb-3">
|
2020-11-30 10:24:11 +01:00
|
|
|
{{ $t("The page you're looking for doesn't exist.") }}
|
|
|
|
</h1>
|
2019-04-03 17:29:03 +02:00
|
|
|
<p>
|
2020-11-30 10:24:11 +01:00
|
|
|
{{
|
|
|
|
$t(
|
|
|
|
"Please make sure the address is correct and that the page hasn't been moved."
|
|
|
|
)
|
|
|
|
}}
|
2019-04-03 17:29:03 +02:00
|
|
|
</p>
|
|
|
|
<p>
|
2020-11-30 10:24:11 +01:00
|
|
|
{{
|
|
|
|
$t(
|
|
|
|
"Please contact this instance's Mobilizon admin if you think this is a mistake."
|
|
|
|
)
|
|
|
|
}}
|
2019-04-03 17:29:03 +02:00
|
|
|
</p>
|
|
|
|
<!-- The following should just be replaced with the SearchField component but it fails for some reason -->
|
2022-07-12 10:55:28 +02:00
|
|
|
<form @submit.prevent="enter" class="flex flex-wrap mt-3">
|
|
|
|
<o-field expanded>
|
|
|
|
<o-input
|
2020-02-18 08:57:00 +01:00
|
|
|
expanded
|
|
|
|
icon="magnify"
|
|
|
|
type="search"
|
|
|
|
:placeholder="searchPlaceHolder"
|
|
|
|
v-model="searchText"
|
|
|
|
/>
|
2019-04-03 17:29:03 +02:00
|
|
|
<p class="control">
|
2020-11-30 10:24:11 +01:00
|
|
|
<button type="submit" class="button is-primary">
|
|
|
|
{{ $t("Search") }}
|
|
|
|
</button>
|
2019-04-03 17:29:03 +02:00
|
|
|
</p>
|
2022-07-12 10:55:28 +02:00
|
|
|
</o-field>
|
2019-04-03 17:29:03 +02:00
|
|
|
</form>
|
|
|
|
</div>
|
|
|
|
</div>
|
2019-01-21 15:08:22 +01:00
|
|
|
</section>
|
|
|
|
</template>
|
2022-07-12 10:55:28 +02:00
|
|
|
<script lang="ts" setup>
|
|
|
|
import { useHead } from "@vueuse/head";
|
|
|
|
import { computed, ref } from "vue";
|
|
|
|
import { useI18n } from "vue-i18n";
|
|
|
|
import { useRouter } from "vue-router";
|
2020-02-18 08:57:00 +01:00
|
|
|
import RouteName from "../router/name";
|
2019-04-03 17:29:03 +02:00
|
|
|
|
2022-07-12 10:55:28 +02:00
|
|
|
const searchText = ref("");
|
2019-04-03 17:29:03 +02:00
|
|
|
|
2022-07-12 10:55:28 +02:00
|
|
|
const { t } = useI18n({ useScope: "global" });
|
|
|
|
useHead({
|
|
|
|
title: computed(() => t("Page not found")),
|
|
|
|
});
|
|
|
|
const router = useRouter();
|
2019-04-03 17:29:03 +02:00
|
|
|
|
2022-07-12 10:55:28 +02:00
|
|
|
const searchPlaceHolder = computed((): string => {
|
|
|
|
return t("Search events, groups, etc.") as string;
|
|
|
|
});
|
2019-04-03 17:29:03 +02:00
|
|
|
|
2022-07-12 10:55:28 +02:00
|
|
|
const enter = async (): Promise<void> => {
|
|
|
|
await router.push({
|
|
|
|
name: RouteName.SEARCH,
|
|
|
|
query: { term: searchText.value },
|
|
|
|
});
|
|
|
|
};
|
|
|
|
</script>
|