diff --git a/src/components/feature/FeatureExtraForm.vue b/src/components/feature/FeatureExtraForm.vue
index a1c8140fd5c6aac973000dac7ea5609deac30e26..d4e10cf5acc33f27ed850117d93ebaa987e891b6 100644
--- a/src/components/feature/FeatureExtraForm.vue
+++ b/src/components/feature/FeatureExtraForm.vue
@@ -6,7 +6,7 @@
     <label for="field.name">{{ field.label }}</label>
     <input
       :id="field.name"
-      v-model="field.value"
+      :value="field.value"
       type="text"
       :name="field.name"
       @blur="updateStore_extra_form"
@@ -33,7 +33,7 @@
       <!-- //* si click sur fléche dans champ input, pas de focus, donc pas de blur, donc utilisation de @change -->
       <input
         :id="field.name"
-        v-model.number="field.value"
+        :value="field.value"
         type="number"
         :name="field.name"
         @change="updateStore_extra_form"
@@ -62,7 +62,7 @@
     <label for="field.name">{{ field.label }}</label>
     <input
       :id="field.name"
-      v-model="field.value"
+      :value="field.value"
       type="date"
       :name="field.name"
       @blur="updateStore_extra_form"
@@ -76,7 +76,7 @@
     <div class="ui input">
       <input
         :id="field.name"
-        v-model.number="field.value"
+        :value="field.value"
         type="number"
         step=".01"
         :name="field.name"
@@ -90,7 +90,7 @@
   >
     <label :for="field.name">{{ field.label }}</label>
     <textarea
-      v-model="field.value"
+      :value="field.value"
       :name="field.name"
       rows="3"
       @blur="updateStore_extra_form"
diff --git a/src/components/feature/FeatureListTable.vue b/src/components/feature/FeatureListTable.vue
index 0d032474221692bfb64cb630455601b47233e1dd..940810d256435c07a4defbf326fe963d5cec36f0 100644
--- a/src/components/feature/FeatureListTable.vue
+++ b/src/components/feature/FeatureListTable.vue
@@ -277,6 +277,8 @@
 </template>
 
 <script>
+/* eslint-disable */
+
 import { mapState, mapGetters } from 'vuex';
 
 export default {
diff --git a/src/components/project/ProjectMappingContextLayer.vue b/src/components/project/ProjectMappingContextLayer.vue
index eacd0d968943544419b3d872796cfc18323139f0..9f9fe56d3246cd35ff8f7d48504a7ab13dd2b916 100644
--- a/src/components/project/ProjectMappingContextLayer.vue
+++ b/src/components/project/ProjectMappingContextLayer.vue
@@ -1,4 +1,6 @@
 <template>
+<!-- eslint-disable -->
+
   <div
     :id="layer.dataKey"
     class="ui segment layer-item"
diff --git a/src/components/project/project_mapping_basemap.vue b/src/components/project/project_mapping_basemap.vue
index 36684a2357dd210b1d2e07e1a537acb430d09783..22c2f6b9d8e861ab6a0e24179aea0aa309badcad 100644
--- a/src/components/project/project_mapping_basemap.vue
+++ b/src/components/project/project_mapping_basemap.vue
@@ -2,8 +2,10 @@
   <div class="ui segment">
     <div class="field required">
       <label for="basemap-title">Titre</label>
+      <!-- eslint-disable -->
       <input
-        v-model="basemap.title"
+        :value="basemap.title"
+        @input="updateTitle"
         type="text"
         name="basemap-title"
         required
@@ -66,6 +68,8 @@
 </template>
 
 <script>
+/* eslint-disable */
+
 import Sortable from 'sortablejs';
 import ProjectMappingContextLayer from '@/components/project/ProjectMappingContextLayer.vue';
 
@@ -95,21 +99,6 @@ export default {
     },
   },
 
-  watch: {
-    'basemap.title': {
-      deep: true,
-      handler: function (newValue, oldValue) {
-        if (newValue !== oldValue) {
-          this.basemap.title = newValue;
-          if (newValue === '')
-            this.basemap.errors = 'Veuillez compléter ce champ.';
-          else this.basemap.errors = '';
-          this.updateTitle(this.basemap);
-        }
-      },
-    },
-  },
-
   created() {
     if (this.basemap.layers) {
       //* add datakeys to layers coming from api
@@ -144,11 +133,18 @@ export default {
     },
 
     updateTitle(evt) {
+      let errors = '';
+      if(evt.target.value === '') { //* delete or add error message while typing
+        errors = "Veuillez compléter ce champ.";
+      }
       this.$store.commit('map/UPDATE_BASEMAP', {
         id: this.basemap.id,
-        title: evt.title,
-        errors: evt.errors,
+        title: evt.target.value,
+        errors,
       });
+
+
+
     },
 
     removeLayer(dataKey) {
diff --git a/src/store/modules/map.js b/src/store/modules/map.js
index cc4d836f36ca5df1b5a1559e3fdba407087e7194..a1e4b1b3ba0756635f1a1542fb48e58558a9e472 100644
--- a/src/store/modules/map.js
+++ b/src/store/modules/map.js
@@ -40,15 +40,11 @@ const map = {
     UPDATE_BASEMAP(state, { title, id, layers, errors }) {
       const index = state.basemaps.findIndex((el) => el.id === id);
       if (index !== -1) {
-        if (title) {
-          state.basemaps[index].title = title;
-        }
+        state.basemaps[index].title = title;
+        state.basemaps[index].errors = errors;
         if (layers) {
           state.basemaps[index].layers = layers;
         }
-        if (errors) {
-          state.basemaps[index].errors = errors;
-        }
       }
     },
     DELETE_BASEMAP(state, basemapId) {
diff --git a/src/views/project/Project_mapping.vue b/src/views/project/Project_mapping.vue
index c8b110ab4abdf51d1fa76ed4dae60436450db7eb..ff4c03513e883b223f5b9cfcbe22331ca74d2940 100644
--- a/src/views/project/Project_mapping.vue
+++ b/src/views/project/Project_mapping.vue
@@ -102,7 +102,7 @@ export default {
     checkTitles() {
       let isValid = true;
       this.basemaps.forEach((basemap) => {
-        if (basemap.title === null || basemap.title === '') {
+        if (basemap.title === null || basemap.title === '') { //* check title when saving basemaps
           basemap.errors = 'Veuillez compléter ce champ.';
           isValid = false;
         } else if (basemap.layers.length === 0) {