+ Added layout page and error handler

This commit is contained in:
Alexis
2021-03-29 16:18:37 +02:00
parent ef49660376
commit b9fe9ca514
2 changed files with 54 additions and 7 deletions

44
layouts/error.vue Normal file
View File

@@ -0,0 +1,44 @@
<template>
<section class="error bg-image">
<div class="splash">
<h2 class="heading-1">
<span v-if="error.statusCode === 404">Page non trouvée</span>
<span v-else>Une erreur est survenue</span>
<span>:(</span>
</h2>
<p>{{ error.message }}</p>
<div>
<nuxt-link :to="'/'">
<AtomsFSButton>Retourner à la page d'accueil</AtomsFSButton>
</nuxt-link>
</div>
</div>
</section>
</template>
<script>
export default {
layout: 'error',
props: {
error: {
type: String,
default: ''
}
}
}
</script>
<style lang="scss">
.error {
position: relative;
min-height: inherit;
padding: 0 10%;
display: flex;
align-items: center;
overflow: hidden;
&:after {
background-image: url("/celestials_bg-min.jpg");
}
}
</style>

View File

@@ -53,22 +53,25 @@ import { fetchCelestial } from '@/api/le-systeme-solaire'
export default {
name: 'Celestial',
data () {
return {
celestial: false
async asyncData ({ params, error }) {
const slug = params.slug
try {
const celestial = await fetchCelestial(slug)
return { celestial }
} catch (err) {
error(err)
}
},
mounted () {
// Fetches from API...
fetchCelestial(this.$route.params.slug)
.then((res) => {
this.celestial = res
return this.celestial
})
// .catch((err) => {
// console.error(err)
// })
.catch(() => {
console.log('test')
})
}
}
</script>