feat: query in link, laad klas code in + fix: regex fix
This commit is contained in:
		
							parent
							
								
									c0b0e01eea
								
							
						
					
					
						commit
						5bd5748706
					
				
					 1 changed files with 14 additions and 4 deletions
				
			
		|  | @ -2,7 +2,7 @@ | ||||||
|     import { useI18n } from "vue-i18n"; |     import { useI18n } from "vue-i18n"; | ||||||
|     import authState from "@/services/auth/auth-service.ts"; |     import authState from "@/services/auth/auth-service.ts"; | ||||||
|     import { computed, onMounted, ref } from "vue"; |     import { computed, onMounted, ref } from "vue"; | ||||||
|     import { validate, version } from "uuid"; |     import { useRoute } from "vue-router"; | ||||||
|     import type { ClassDTO } from "@dwengo-1/common/interfaces/class"; |     import type { ClassDTO } from "@dwengo-1/common/interfaces/class"; | ||||||
|     import { useCreateJoinRequestMutation, useStudentClassesQuery } from "@/queries/students"; |     import { useCreateJoinRequestMutation, useStudentClassesQuery } from "@/queries/students"; | ||||||
|     import type { StudentDTO } from "@dwengo-1/common/interfaces/student"; |     import type { StudentDTO } from "@dwengo-1/common/interfaces/student"; | ||||||
|  | @ -15,6 +15,7 @@ | ||||||
|     import "../../assets/common.css"; |     import "../../assets/common.css"; | ||||||
| 
 | 
 | ||||||
|     const { t } = useI18n(); |     const { t } = useI18n(); | ||||||
|  |     const route = useRoute(); | ||||||
| 
 | 
 | ||||||
|     // Username of logged in student |     // Username of logged in student | ||||||
|     const username = ref<string | undefined>(undefined); |     const username = ref<string | undefined>(undefined); | ||||||
|  | @ -38,6 +39,11 @@ | ||||||
|         } finally { |         } finally { | ||||||
|             isLoading.value = false; |             isLoading.value = false; | ||||||
|         } |         } | ||||||
|  | 
 | ||||||
|  |         const queryCode = route.query.code as string | undefined; | ||||||
|  |         if (queryCode) { | ||||||
|  |             code.value = queryCode; | ||||||
|  |         } | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     // Fetch all classes of the logged in student |     // Fetch all classes of the logged in student | ||||||
|  | @ -75,11 +81,15 @@ | ||||||
| 
 | 
 | ||||||
|     // The code a student sends in to join a class needs to be formatted as v4 to be valid |     // The code a student sends in to join a class needs to be formatted as v4 to be valid | ||||||
|     // These rules are used to display a message to the user if they use a code that has an invalid format |     // These rules are used to display a message to the user if they use a code that has an invalid format | ||||||
|  |     function codeRegex(value: string){ | ||||||
|  |         return /^[a-zA-Z0-9]{6}$/.test(value) | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     const codeRules = [ |     const codeRules = [ | ||||||
|         (value: string | undefined): string | boolean => { |         (value: string | undefined): string | boolean => { | ||||||
|             if (value === undefined || value === "") { |             if (value === undefined || value === "") { | ||||||
|                 return true; |                 return true; | ||||||
|             } else if (value !== undefined && validate(value) && version(value) === 4) { |             } else if (codeRegex(value)) { | ||||||
|                 return true; |                 return true; | ||||||
|             } |             } | ||||||
|             return t("invalidFormat"); |             return t("invalidFormat"); | ||||||
|  | @ -92,7 +102,7 @@ | ||||||
|     // Function called when a student submits a code to join a class |     // Function called when a student submits a code to join a class | ||||||
|     function submitCode(): void { |     function submitCode(): void { | ||||||
|         // Check if the code is valid |         // Check if the code is valid | ||||||
|         if (code.value !== undefined && validate(code.value) && version(code.value) === 4) { |         if (code.value !== undefined && codeRegex(code.value)) { | ||||||
|             mutate( |             mutate( | ||||||
|                 { username: username.value!, classId: code.value }, |                 { username: username.value!, classId: code.value }, | ||||||
|                 { |                 { | ||||||
|  | @ -260,7 +270,7 @@ | ||||||
|                             <v-text-field |                             <v-text-field | ||||||
|                                 label="CODE" |                                 label="CODE" | ||||||
|                                 v-model="code" |                                 v-model="code" | ||||||
|                                 placeholder="XXXXXXXX-XXXX-4XXX-XXXX-XXXXXXXXXXXX" |                                 placeholder="XXXXXX" | ||||||
|                                 :rules="codeRules" |                                 :rules="codeRules" | ||||||
|                                 variant="outlined" |                                 variant="outlined" | ||||||
|                             ></v-text-field> |                             ></v-text-field> | ||||||
|  |  | ||||||
		Reference in a new issue
	
	 Gabriellvl
						Gabriellvl