From e929a393ffabc9622dbe0874bf389fa5cf538137 Mon Sep 17 00:00:00 2001 From: Alexis <35.alexis.pele@gmail.com> Date: Sun, 7 Mar 2021 14:40:11 +0100 Subject: [PATCH] Added error message (no formatting yet) and loader --- src/components/NestLoader.vue | 84 +++++++++++++++++++++++++++++ src/views/celestials/Celestial.vue | 18 ++++--- src/views/celestials/Celestials.vue | 39 ++++++++------ 3 files changed, 117 insertions(+), 24 deletions(-) create mode 100644 src/components/NestLoader.vue diff --git a/src/components/NestLoader.vue b/src/components/NestLoader.vue new file mode 100644 index 0000000..db8f133 --- /dev/null +++ b/src/components/NestLoader.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/src/views/celestials/Celestial.vue b/src/views/celestials/Celestial.vue index c3d5cbc..a8e7930 100644 --- a/src/views/celestials/Celestial.vue +++ b/src/views/celestials/Celestial.vue @@ -3,6 +3,10 @@

{{ celestial.name }}

+
+
Une erreur est survenue : {{ error }}
+
{{ celestial }}
+
@@ -18,7 +22,7 @@ export default defineComponent({ name: "Celestial", data() { return { - celestial: {}, + celestial: Object, error: "" }; }, @@ -28,6 +32,7 @@ export default defineComponent({ required: true } }, + mounted() { // Fetches from API... this.fetchCelestial() @@ -35,23 +40,20 @@ export default defineComponent({ // ...and add type this.celestial = addCelestialType(res); }) - .catch(err => { - this.error = err.message; + .catch(() => { + this.error = "Impossible de récupérer l'astre demandé."; }); }, + methods: { /** - * Fetches celestial bodies from API + * Fetches celestial body from API */ fetchCelestial(): Promise { return axios .get(`https://api.le-systeme-solaire.net/rest/bodies/${this.slug}`) .then(res => { return res.data; - }) - .catch(err => { - this.error = err.message; - return []; }); } } diff --git a/src/views/celestials/Celestials.vue b/src/views/celestials/Celestials.vue index 5e13323..7e6ecb8 100644 --- a/src/views/celestials/Celestials.vue +++ b/src/views/celestials/Celestials.vue @@ -4,7 +4,13 @@

Le système solaire

- +
Une erreur est survenue : {{ error }}
+
+ +
+
+ +
@@ -18,17 +24,31 @@ import axios from "axios"; import { addCelestialType } from "@/plugins/methods"; import CelestialsList from "@/components/celestials/CelestialsList.vue"; +import NestLoader from "@/components/NestLoader.vue"; export default defineComponent({ name: "Celestials", components: { - CelestialsList + CelestialsList, + NestLoader }, data() { return { - celestials: Array() + celestials: Array(), + error: "" }; }, + + mounted() { + this.fetchCelestials() + .then(res => { + this.celestials = this.addType(res); + }) + .catch(() => { + this.error = "Impossible de récupérer les astres."; + }); + }, + methods: { /** * Fetches celestial bodies from API @@ -38,10 +58,6 @@ export default defineComponent({ .get("https://api.le-systeme-solaire.net/rest/bodies/") .then(res => { return res.data.bodies; - }) - .catch(err => { - console.log(err); - return []; }); }, /** @@ -50,15 +66,6 @@ export default defineComponent({ addType(bodies: Array): Array { return bodies.map((e: any) => addCelestialType(e)); } - }, - mounted() { - this.fetchCelestials() - .then(res => { - this.celestials = this.addType(res); - }) - .catch(err => { - console.log(err); - }); } });