From f7e9d7ea879637e68711847cc3b88594a7a2cf72 Mon Sep 17 00:00:00 2001
From: Pierre-Jean CHANCELLIER <paidge_cs@hotmail.com>
Date: Tue, 14 Dec 2021 01:36:24 +0100
Subject: [PATCH] reorganisation du code

---
 .../{navigation.vue => navigation/Bar.vue}    | 23 +++++++------------
 .../Breadcrumb.vue}                           |  0
 .../{ssMenu.vue => navigation/menu/Group.vue} |  0
 .../menu/Sidebar.vue}                         | 18 ++++++---------
 layouts/default.vue                           |  2 +-
 mixins/wotwizard.js                           |  7 +-----
 pages/explore.vue                             |  4 ++--
 7 files changed, 19 insertions(+), 35 deletions(-)
 rename components/{navigation.vue => navigation/Bar.vue} (85%)
 rename components/{breadcrumb.vue => navigation/Breadcrumb.vue} (100%)
 rename components/{ssMenu.vue => navigation/menu/Group.vue} (100%)
 rename components/{navmenu.vue => navigation/menu/Sidebar.vue} (72%)

diff --git a/components/navigation.vue b/components/navigation/Bar.vue
similarity index 85%
rename from components/navigation.vue
rename to components/navigation/Bar.vue
index aa3b744..ce25c4e 100644
--- a/components/navigation.vue
+++ b/components/navigation/Bar.vue
@@ -1,23 +1,16 @@
 <template>
-<header>
-  <div class="position-relative">
-    <button class="toggle btn border-secondary position-absolute p-1 m-3" @click="toggleMenu"><span></span></button>
-    <breadcrumb :breadcrumb="breadcrumb" class="ml-5 py-3 px-4" />
-  </div>
-  <navmenu @toggleMenu="toggleMenu" />
-  <div class="bg_overlay" @click="toggleMenu"></div>
-</header>
+  <header>
+    <div class="position-relative">
+      <button class="toggle btn border-secondary position-absolute p-1 m-3" @click="toggleMenu"><span></span></button>
+      <NavigationBreadcrumb :breadcrumb="breadcrumb" class="ml-5 py-3 px-4" />
+    </div>
+    <NavigationMenuSidebar @toggleMenu="toggleMenu" />
+    <div class="bg_overlay" @click="toggleMenu"></div>
+  </header>
 </template>
 
 <script>
-import breadcrumb from './breadcrumb.vue'
-import navmenu from './navmenu.vue'
-
 export default {
-  components: {
-    breadcrumb,
-    navmenu
-  },
   methods: {
     toggleMenu() {
       document.querySelector('.app').classList.toggle('open')
diff --git a/components/breadcrumb.vue b/components/navigation/Breadcrumb.vue
similarity index 100%
rename from components/breadcrumb.vue
rename to components/navigation/Breadcrumb.vue
diff --git a/components/ssMenu.vue b/components/navigation/menu/Group.vue
similarity index 100%
rename from components/ssMenu.vue
rename to components/navigation/menu/Group.vue
diff --git a/components/navmenu.vue b/components/navigation/menu/Sidebar.vue
similarity index 72%
rename from components/navmenu.vue
rename to components/navigation/menu/Sidebar.vue
index 220e955..23fd3da 100644
--- a/components/navmenu.vue
+++ b/components/navigation/menu/Sidebar.vue
@@ -7,35 +7,31 @@
             </button>
         </div>
         <nav class="navbar-light">
-            <ssMenu v-for="menu in menus" :key="menu.title" :menu="menu"/>
+            <NavigationMenuGroup v-for="menu in menus" :key="menu.title" :menu="menu"/>
         </nav>
     </aside>
 </template>
 
 <script>
-import ssMenu from './ssMenu.vue'
-
 export default {
     data() {
         return {
             menus : [
-                {title: 'Développement',
+                {
+                title: 'Développement',
                 items : [
                     {path: '/explore',title: 'Explorer la toile de confiance'},
                     {path: '/appolo',title: 'Appolo'}
                 ]},
-                {title: 'Pages',
+                {
+                title: 'Un menu',
                 items : [
-                    {path: '/hoho',title: 'Hoho'},
-                    {path: '/hihi',title: 'Hihi'},
-                    {path: '/haha',title: 'Haha'}
+                    {path: '/lien',title: 'Un lien'},
+                    {path: '/autrelien',title: 'Un aure lien'}
                 ]}
             ]
         }
     },
-    components: {
-        ssMenu
-    },
     methods: {
         toggleMenu() {
             this.$emit('toggleMenu')
diff --git a/layouts/default.vue b/layouts/default.vue
index a7542bb..d6bb1e1 100644
--- a/layouts/default.vue
+++ b/layouts/default.vue
@@ -1,6 +1,6 @@
 <template>
     <div class="app">
-        <Navigation :breadcrumb="breadcrumb" />
+        <NavigationBar :breadcrumb="breadcrumb" />
         <Nuxt />
     </div>
 </template>
diff --git a/mixins/wotwizard.js b/mixins/wotwizard.js
index e07e3b2..09d6e1c 100644
--- a/mixins/wotwizard.js
+++ b/mixins/wotwizard.js
@@ -4,8 +4,7 @@ export default {
             WWZ_URL : "https://wwgql.coinduf.eu",
             WWZ_REQUEST_VERSION : "{version}",
             query: "",
-            retour : null,
-            isWaiting: false
+            retour : null
         }
     },
     methods: {
@@ -13,8 +12,6 @@ export default {
         WWZ_REQUEST_DETAILS(hint) { return `{idSearch(with:{hint:\\"${hint}\\"}){ids{pubkey,uid,status}}}` },
     },
     async fetch() {
-        this.isWaiting = true
-
         this.retour = await fetch(this.WWZ_URL, {
             method: 'POST',
             headers: {
@@ -22,10 +19,8 @@ export default {
             },
             body: '{"query":"' + this.query + '"}'
         }).then((res) => {
-            this.isWaiting = false
             return res.json()
         }).catch((error) => {
-            this.isWaiting = false
             return {errors: error}
         })
     },
diff --git a/pages/explore.vue b/pages/explore.vue
index a7d9a08..96a99c2 100644
--- a/pages/explore.vue
+++ b/pages/explore.vue
@@ -9,11 +9,11 @@
           <input type="text" class="form-control" id="rech" aria-describedby="rechHelp" v-model="search">
           <small id="rechHelp" class="form-text text-muted">Saisissez le début d'un pseudo ou d'une clé publique</small>
         </div>
-        <btnloading :isWaiting="isWaiting"/>
+        <btnloading :isWaiting="$fetchState.pending"/>
       </form>
     </div>
   </div>
-  <div class="row" v-if="retour && !isWaiting">
+  <div class="row" v-if="retour && !$fetchState.pending">
     <div class="col-8 m-auto">
       <p v-if="retour.errors" class="alert alert-danger">{{ retour.errors }}</p>
       <div class="table-responsive" v-else>
-- 
GitLab