From d08ed14f7c820c74f7c121721464b2c66446e479 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timoth=C3=A9e?= <tpoussard@neogeo.fr>
Date: Thu, 30 Jun 2022 18:33:44 +0200
Subject: [PATCH] fix feature type not update not detected when browsing
 features

---
 src/components/Feature/Detail/FeatureTable.vue | 10 +++-------
 src/components/FeatureType/FeatureTypeLink.vue |  1 +
 src/views/Feature/FeatureDetail.vue            |  6 ++++--
 3 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/src/components/Feature/Detail/FeatureTable.vue b/src/components/Feature/Detail/FeatureTable.vue
index bfb939f9..ce19426b 100644
--- a/src/components/Feature/Detail/FeatureTable.vue
+++ b/src/components/Feature/Detail/FeatureTable.vue
@@ -5,12 +5,12 @@
       aria-describedby="Table des données du signalement"
     >
       <tbody>
-        <tr v-if="feature_type || featureType">
+        <tr v-if="featureType">
           <td>
             <strong> Type de signalement </strong>
           </td>
           <td>
-            <FeatureTypeLink :feature-type="feature_type || featureType" />
+            <FeatureTypeLink :feature-type="featureType" />
           </td>
         </tr>
         <tr
@@ -108,7 +108,7 @@
 
 <script>
 
-import { mapState, mapGetters } from 'vuex';
+import { mapState } from 'vuex';
 import FeatureTypeLink from '@/components/FeatureType/FeatureTypeLink';
 import { statusChoices } from '@/utils';
 
@@ -141,10 +141,6 @@ export default {
       'linked_features',
     ]),
 
-    ...mapGetters('feature-type', [
-      'feature_type',
-    ]),
-
     statusIcon() {
       switch (this.currentFeature.status) {
       case 'archived':
diff --git a/src/components/FeatureType/FeatureTypeLink.vue b/src/components/FeatureType/FeatureTypeLink.vue
index d39330e1..0a247d11 100644
--- a/src/components/FeatureType/FeatureTypeLink.vue
+++ b/src/components/FeatureType/FeatureTypeLink.vue
@@ -1,5 +1,6 @@
 <template>
   <router-link
+    v-if="featureType && featureType.slug"
     :to="{
       name: 'details-type-signalement',
       params: { feature_type_slug: featureType.slug },
diff --git a/src/views/Feature/FeatureDetail.vue b/src/views/Feature/FeatureDetail.vue
index 0e6f85f9..d88beb3d 100644
--- a/src/views/Feature/FeatureDetail.vue
+++ b/src/views/Feature/FeatureDetail.vue
@@ -147,7 +147,8 @@ export default {
       'project'
     ]),
     ...mapState('feature-type', [
-      'feature_types'
+      'feature_types',
+      'feature_type',
     ]),
     ...mapState('feature', [
       'currentFeature'
@@ -196,6 +197,7 @@ export default {
     async getPageInfo() {
       if (this.$route.params.slug_signal) { // if coming from the route with an id
         this.slugSignal = this.$route.params.slug_signal;
+        this.featureType = this.feature_type;
       } //* else it would be retrieve after fetchFilteredFeature with offset
       this.DISPLAY_LOADER('Recherche du signalement');
       let promises = [];
@@ -206,7 +208,7 @@ export default {
           this.GET_PROJECT_INFO(this.$route.params.slug),
         );
       }
-      //* changement de requête selon s'il y a un id ou un offset
+      //* changement de requête selon s'il y a un id ou un offset(dans le cas du parcours des signalements filtrés)
       if (this.$route.query.offset >= 0) {
         promises.push(this.fetchFilteredFeature());
       } else if (!this.currentFeature || this.currentFeature.feature_id !== this.slugSignal) {
-- 
GitLab