habitica/website/client/src/components/404.vue

70 lines
1.5 KiB
Vue
Raw Normal View History

2019-10-12 14:33:05 +00:00
<template>
<div class="row">
2023-06-09 21:33:27 +00:00
<div class="col-6 text-center mx-auto mb-5">
2019-10-12 15:05:15 +00:00
<!-- @TODO i18n. How to setup the strings with the router-link inside?-->
<img
2023-06-09 21:33:27 +00:00
class="my-5"
2019-10-12 14:33:05 +00:00
src="~@/assets/images/404.png"
2019-10-12 15:05:15 +00:00
>
2023-06-09 21:33:27 +00:00
<div v-if="retiredChatPage">
<h1>
{{ $t('tavernDiscontinued') }}
</h1>
<p>{{ $t('tavernDiscontinuedDetail') }}</p>
<p v-html="$t('tavernDiscontinuedLinks')"></p>
</div>
<div v-else>
<h1>
Sometimes even the bravest adventurer gets lost.
</h1>
<p>
Looks like this link is broken or the page may have moved, sorry!
</p>
<p>
Head back to the
<router-link to="/">
Homepage
</router-link>or
<router-link :to="contactUsLink">
Contact Us
</router-link>about the issue.
</p>
</div>
2019-10-12 14:33:05 +00:00
</div>
</div>
</template>
<script>
2019-10-01 13:38:48 +00:00
import { mapState } from '@/libs/store';
export default {
computed: {
...mapState(['isUserLoggedIn']),
contactUsLink () {
if (this.isUserLoggedIn) {
2019-10-09 18:08:36 +00:00
return { name: 'guild', params: { groupId: 'a29da26b-37de-4a71-b0c6-48e72a900dac' } };
}
2019-10-09 18:08:36 +00:00
return { name: 'contact' };
},
2023-06-09 21:33:27 +00:00
retiredChatPage () {
return this.$route.fullPath.indexOf('/groups') !== -1;
},
},
};
</script>
<style lang="scss" scoped>
2019-10-01 13:38:48 +00:00
@import '~@/assets/scss/colors.scss';
2023-06-09 21:33:27 +00:00
h1 {
color: $purple-200;
2023-06-09 21:33:27 +00:00
margin-bottom: 1rem;
}
2023-06-09 21:33:27 +00:00
p {
font-size: 18px;
line-height: 1.77;
}
2023-06-09 21:33:27 +00:00
2019-10-09 18:08:36 +00:00
</style>