Olivier Massot пре 4 месеци
родитељ
комит
7e50eb8fab
2 измењених фајлова са 30 додато и 4 уклоњено
  1. 28 4
      pages/shop/try/artist-premium.vue
  2. 2 0
      types/interface.d.ts

+ 28 - 4
pages/shop/try/artist-premium.vue

@@ -107,7 +107,7 @@
                       <v-text-field
                         v-model="trialRequest.address"
                         :rules="[validateRequired]"
-                        label="Adresse siège social de la structure*"
+                        label="Adresse du siège social de la structure*"
                         required
                       />
                     </v-col>
@@ -145,7 +145,7 @@
                       <v-text-field
                         v-model="trialRequest.structureEmail"
                         :rules="[validateRequired, validateEmail]"
-                        label="Adresse mail de la structure*"
+                        label="Adresse email de la structure*"
                         required
                         type="email"
                       />
@@ -227,7 +227,7 @@
                       <v-text-field
                         v-model="trialRequest.representativeEmail"
                         :rules="[validateRequired, validateEmail]"
-                        label="Adresse mail*"
+                        label="Adresse email*"
                         required
                         type="email"
                       />
@@ -319,6 +319,17 @@
                           caractère spécial.
                         </i>
                       </div>
+                      <v-text-field
+                        v-model="trialRequest.confirmPassword"
+                        :rules="[
+                          showPassword ? () => true : validateRequired,
+                          showPassword ? () => true : validatePasswordMatch,
+                        ]"
+                        label="Confirmer le mot de passe*"
+                        :required="!showPassword"
+                        :disabled="showPassword"
+                        :type="showPassword ? 'text' : 'password'"
+                      />
                     </v-col>
                   </v-row>
 
@@ -457,6 +468,7 @@ import {
 } from '~/services/utils/stringUtils'
 
 const router = useRouter()
+const i18n = useI18n()
 
 const form: Ref<HTMLElement | null> = ref(null)
 
@@ -503,9 +515,11 @@ const trialRequest = reactive<TrialRequest>({
   representativeEmail: '',
   representativePhone: '',
   password: '',
+  confirmPassword: '',
   termsAccepted: false,
   legalRepresentative: false,
   newsletterSubscription: false,
+  createWebsite: false
 })
 
 // Function to fill the form with dummy data
@@ -529,6 +543,7 @@ const fillWithDummyData = () => {
   trialRequest.representativeEmail = 'jean.dupont@compagnie-test.fr'
   trialRequest.representativePhone = '0612345678'
   trialRequest.password = 'Test1234!'
+  trialRequest.confirmPassword = 'Test1234!'
   trialRequest.termsAccepted = true
   trialRequest.legalRepresentative = true
   trialRequest.newsletterSubscription = true
@@ -624,6 +639,15 @@ const validatePassword = (password: string) => {
   return true
 }
 
+const validatePasswordMatch = () => {
+  if (!trialRequest.confirmPassword) return 'Ce champ est obligatoire'
+
+  return (
+    trialRequest.password === trialRequest.confirmPassword ||
+    'Les mots de passe ne correspondent pas'
+  )
+}
+
 const validateSubdomain = (value: string) => {
   if (!value) return 'Ce champ est obligatoire'
 
@@ -698,7 +722,7 @@ const submit = async (): Promise<void> => {
 
     // Process the error message using the common error handler
     const processedError = processApiError(e)
-    errorMsg.value += '\n' + processedError
+    errorMsg.value += '\n' + i18n.t(processedError)
   }
 }
 

+ 2 - 0
types/interface.d.ts

@@ -201,7 +201,9 @@ interface TrialRequest {
   representativeEmail: string
   representativePhone: string
   password: string
+  confirmPassword: ?string
   termsAccepted: boolean
   legalRepresentative: boolean
   newsletterSubscription: boolean
+  createWebsite: boolean
 }