Przeglądaj źródła

fix eslint errors

Olivier Massot 4 miesięcy temu
rodzic
commit
a44d8d33b9

+ 1 - 2
components/Ui/Input/Number.vue

@@ -30,8 +30,7 @@ type ValidationRule = (value: string | number | null) => boolean | string
 const props = defineProps({
   modelValue: {
     type: Number,
-    required: true,
-    default: null,
+    required: true
   },
   /**
    * Nom de la propriété d'une entité lorsque l'input concerne cette propriété

+ 1 - 1
components/Ui/Input/Phone.vue

@@ -7,7 +7,7 @@ Champs de saisie d'un numéro de téléphone
 
 <template>
   <v-phone-input
-    :model-value.number="modelValue"
+    :model-value="modelValue"
     :rules="rules"
     :variant="variant"
     :label="label || field ? $t(label ?? field) : undefined"

+ 13 - 7
components/Ui/MapLeaflet.client.vue

@@ -34,7 +34,7 @@
     </v-btn>
 
     <div v-if="!pending && gpsResponses.length > 0">
-      <div v-for="(gpsResponse, key) in gpsResponses" class="address_choices" @click="addressChoice(key)">
+      <div v-for="(gpsResponse, key) in gpsResponses" :key="key" class="address_choices" @click="addressChoice(key)">
         {{gpsResponse['displayName']}}
         <v-btn
           prepend-icon="fas fa-map-location"
@@ -69,27 +69,33 @@ const props = defineProps({
   },
   streetAddress:{
     type: String as PropType<string | null>,
-    required: false
+    required: false,
+    default: null
   },
   streetAddressSecond:{
     type: String as PropType<string | null>,
-    required: false
+    required: false,
+    default: null
   },
   streetAddressThird:{
     type: String as PropType<string | null>,
-    required: false
+    required: false,
+    default: null
   },
   postalCode:{
     type: String as PropType<string | null>,
-    required: false
+    required: false,
+    default: null
   },
   addressCity:{
     type: String as PropType<string | null>,
-    required: false
+    required: false,
+    default: null
   },
   addressCountryId:{
     type: Number as PropType<number | null>,
-    required: false
+    required: false,
+    default: null
   },
   searchButton:{
     type: Boolean,

+ 1 - 1
composables/data/useEntityManager.ts

@@ -7,7 +7,7 @@ import type {AsyncData} from "#app";
 
 let entityManager: EntityManager | null = null
 
-interface useEntityManagerReturnType {
+interface _useEntityManagerReturnType {
   fetch: <T extends typeof ApiResource>(
     model: T,
     id?: number | null

+ 78 - 77
pages/freemium/dashboard.vue

@@ -1,81 +1,82 @@
 <template>
-  <v-container fluid class="inner-container">
-    <v-row>
-      <!-- Bloc événements -->
-      <v-col cols="12" md="7">
-        <v-card>
-          <v-tabs v-model="tab" class="tabs-title">
-            <v-tab value="future">{{$t('futur_event')}}</v-tab>
-            <v-tab value="past">{{$t('past_event')}}</v-tab>
-          </v-tabs>
-
-          <v-btn color="primary" to="events/new" class="ml-5 mt-5">{{$t('add_event')}}</v-btn>
-
-          <v-tabs-window v-model="tab">
-            <v-tabs-window-item value="future">
-              <UiLoadingPanel v-if="statusUpcomingEvents == FETCHING_STATUS.PENDING" />
-
-              <span v-if="upcomingEvents.items.length == 0" class="no_event">
-                {{$t('no_future_event')}}
-              </span>
-              <UiEventList
-                v-if="statusUpcomingEvents == FETCHING_STATUS.SUCCESS && upcomingEvents?.items"
-                :events="upcomingEvents.items"
-                :pagination="upcomingEvents.pagination"
-                @load="loadUpcomingEvents"
-                @edit="editEvent"
-              />
-
-            </v-tabs-window-item>
-            <v-tabs-window-item value="past">
-              <UiLoadingPanel v-if="statusPastEvents == FETCHING_STATUS.PENDING" />
-              <span v-if="pastEvents.items.length == 0" class="no_event">
-                {{$t('no_past_event')}}
-              </span>
-              <UiEventList
-                v-if="statusPastEvents == FETCHING_STATUS.SUCCESS && pastEvents?.items"
-                :events="pastEvents.items"
-                :pagination="pastEvents.pagination"
-                @load="loadPastEvents"
-                @edit="editEvent"
-              />
-            </v-tabs-window-item>
-          </v-tabs-window>
-
-        </v-card>
-      </v-col>
-
-      <!-- Bloc structure -->
-      <v-col cols="12" md="5">
-        <v-card v-if="statusOrganization == FETCHING_STATUS.SUCCESS" class="pa-5">
-          <v-card-title class="text-h6" >
-            <v-icon icon="fa fa-hotel" class="text-button icon-hotel"  />
-            <span class="organization_title">{{$t('my_organization')}}</span>
-          </v-card-title>
-          <v-card-text>
-            <div><strong>{{$t('name')}} :</strong> {{ organization?.name }}</div>
-            <div><strong>{{$t('email')}} :</strong> {{ organization?.email }}</div>
-          </v-card-text>
-        </v-card>
-
-        <v-btn block class="mb-2 btn btn_edit_orga" to="organization">
-          <i class="fa fa-pen mr-2" />{{$t('edit_organization')}}
-        </v-btn>
-
-        <v-btn block class="text-black btn btn_trial" @click="startTrial">
-          <span><v-icon icon="fa fa-ticket" /> {{$t('try_premium_light')}}<br /> {{$t('30_days_free')}}</span>
-        </v-btn>
-
-      </v-col>
-    </v-row>
-
-  </v-container>
-
-  <LayoutDialogTrialAlreadyDid
-    :show="showDialogTrialAlReadyDid"
-    @close-dialog="showDialogTrialAlReadyDid = false"
-  />
-
+  <div>
+    <v-container fluid class="inner-container">
+      <v-row>
+        <!-- Bloc événements -->
+        <v-col cols="12" md="7">
+          <v-card>
+            <v-tabs v-model="tab" class="tabs-title">
+              <v-tab value="future">{{$t('futur_event')}}</v-tab>
+              <v-tab value="past">{{$t('past_event')}}</v-tab>
+            </v-tabs>
+
+            <v-btn color="primary" to="events/new" class="ml-5 mt-5">{{$t('add_event')}}</v-btn>
+
+            <v-tabs-window v-model="tab">
+              <v-tabs-window-item value="future">
+                <UiLoadingPanel v-if="statusUpcomingEvents == FETCHING_STATUS.PENDING" />
+
+                <span v-if="upcomingEvents.items.length == 0" class="no_event">
+                  {{$t('no_future_event')}}
+                </span>
+                <UiEventList
+                  v-if="statusUpcomingEvents == FETCHING_STATUS.SUCCESS && upcomingEvents?.items"
+                  :events="upcomingEvents.items"
+                  :pagination="upcomingEvents.pagination"
+                  @load="loadUpcomingEvents"
+                  @edit="editEvent"
+                />
+
+              </v-tabs-window-item>
+              <v-tabs-window-item value="past">
+                <UiLoadingPanel v-if="statusPastEvents == FETCHING_STATUS.PENDING" />
+                <span v-if="pastEvents.items.length == 0" class="no_event">
+                  {{$t('no_past_event')}}
+                </span>
+                <UiEventList
+                  v-if="statusPastEvents == FETCHING_STATUS.SUCCESS && pastEvents?.items"
+                  :events="pastEvents.items"
+                  :pagination="pastEvents.pagination"
+                  @load="loadPastEvents"
+                  @edit="editEvent"
+                />
+              </v-tabs-window-item>
+            </v-tabs-window>
+
+          </v-card>
+        </v-col>
+
+        <!-- Bloc structure -->
+        <v-col cols="12" md="5">
+          <v-card v-if="statusOrganization == FETCHING_STATUS.SUCCESS" class="pa-5">
+            <v-card-title class="text-h6" >
+              <v-icon icon="fa fa-hotel" class="text-button icon-hotel"  />
+              <span class="organization_title">{{$t('my_organization')}}</span>
+            </v-card-title>
+            <v-card-text>
+              <div><strong>{{$t('name')}} :</strong> {{ organization?.name }}</div>
+              <div><strong>{{$t('email')}} :</strong> {{ organization?.email }}</div>
+            </v-card-text>
+          </v-card>
+
+          <v-btn block class="mb-2 btn btn_edit_orga" to="organization">
+            <i class="fa fa-pen mr-2" />{{$t('edit_organization')}}
+          </v-btn>
+
+          <v-btn block class="text-black btn btn_trial" @click="startTrial">
+            <span><v-icon icon="fa fa-ticket" /> {{$t('try_premium_light')}}<br /> {{$t('30_days_free')}}</span>
+          </v-btn>
+
+        </v-col>
+      </v-row>
+
+    </v-container>
+
+    <LayoutDialogTrialAlreadyDid
+      :show="showDialogTrialAlReadyDid"
+      @close-dialog="showDialogTrialAlReadyDid = false"
+    />
+  </div>
 </template>
 
 <script setup lang="ts">

+ 2 - 2
services/asserts/AssertRuleRegistry.ts

@@ -14,8 +14,8 @@ export class AssertRuleRegistry {
     ];
   }
 
-  getValidators(asserts: Record<string, any>): ((value: any) => true | string)[] {
-    const allRules: ((value: any) => true | string)[] = [];
+  getValidators(asserts: Record<string, unknown>): ((value: unknown) => true | string)[] {
+    const allRules: ((value: unknown) => true | string)[] = [];
 
     for (const key in asserts) {
       const criteria = asserts[key];

+ 2 - 2
services/asserts/NullableAssert.ts

@@ -6,10 +6,10 @@ export class NullableAssert implements AssertRule {
     return key === 'nullable';
   }
 
-  createRule(criteria: boolean): (value: any) => true | string {
+  createRule(criteria: boolean): (value: unknown) => true | string {
 
     const { t } = useI18n();
-    return (value: any) =>
+    return (value: unknown) =>
       !criteria ? value !== null && !!value || t('please_enter_a_value') : true
   }
 }

+ 5 - 5
services/asserts/TypeAssert.ts

@@ -7,18 +7,18 @@ export class TypeAssert implements AssertRule {
     return key === 'type';
   }
 
-  createRule(criteria: string): (value: any) => true | string {
+  createRule(criteria: string): (value: unknown) => true | string {
     const validationUtils = new ValidationUtils()
     const { t } = useI18n();
 
     if (criteria === 'email') {
-      return (email: string) =>
-        validationUtils.validEmail(email) || t('email_error');
+      return (email: unknown) =>
+        typeof email === 'string' && validationUtils.validEmail(email) || t('email_error');
     }
 
     if (criteria === 'integer') {
-      return (value: any) =>
-        Number.isInteger(value) || t('need_to_be_integer');
+      return (value: unknown) =>
+        Number.isInteger(value as number) || t('need_to_be_integer');
     }
 
     return () => true;

+ 1 - 1
services/asserts/getAssertUtils.ts

@@ -1,6 +1,6 @@
 import { AssertRuleRegistry } from './AssertRuleRegistry';
 
-export function getAssertUtils(asserts: Record<string, any>, key: string) {
+export function getAssertUtils(asserts: Record<string, unknown>, key: string) {
   if (!asserts || !(key in asserts)) return [];
 
   const registry = new AssertRuleRegistry();

+ 1 - 1
types/interfaces.d.ts

@@ -215,5 +215,5 @@ interface ColumnDefinition {
 
 interface AssertRule {
   supports(key: string): boolean;
-  createRule(criteria: any): (value: any) => true | string;
+  createRule(criteria: unknown): (value: unknown) => true | string;
 }