feat: submit knop om de code in te versturen
This commit is contained in:
		
							parent
							
								
									729c3f6972
								
							
						
					
					
						commit
						87974bbfe5
					
				
					 1 changed files with 30 additions and 14 deletions
				
			
		| 
						 | 
				
			
			@ -1,13 +1,14 @@
 | 
			
		|||
<script setup lang="ts">
 | 
			
		||||
    import { useI18n } from "vue-i18n";
 | 
			
		||||
    import authState from "@/services/auth/auth-service.ts";
 | 
			
		||||
    import { ref, watch } from "vue";
 | 
			
		||||
    import { ref } from "vue";
 | 
			
		||||
    import { validate, version } from "uuid";
 | 
			
		||||
 | 
			
		||||
    const { t } = useI18n();
 | 
			
		||||
 | 
			
		||||
    const role: String = authState.authState.activeRole!;
 | 
			
		||||
 | 
			
		||||
    // TODO : temp data until frontend controllers are ready
 | 
			
		||||
    type Teacher = {
 | 
			
		||||
        username: string;
 | 
			
		||||
        firstName: string;
 | 
			
		||||
| 
						 | 
				
			
			@ -44,19 +45,24 @@
 | 
			
		|||
 | 
			
		||||
    const classes: Array<Class> = [class01, class02, class03];
 | 
			
		||||
 | 
			
		||||
    const valid = ref(false);
 | 
			
		||||
    // handle the class join requests
 | 
			
		||||
    const code = ref<string>("");
 | 
			
		||||
 | 
			
		||||
    // the code 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
 | 
			
		||||
    const codeRules = [
 | 
			
		||||
        (value: string | undefined) => {
 | 
			
		||||
            if (value !== undefined && validate(value) && version(value) === 4) return true;
 | 
			
		||||
            return "Invalid format.";
 | 
			
		||||
        },
 | 
			
		||||
    ];
 | 
			
		||||
    watch(code, (newValue) => {
 | 
			
		||||
    // submitting a code will send a request if the code is valid
 | 
			
		||||
    const submitCode = () => {
 | 
			
		||||
        if (code.value !== undefined && validate(code.value) && version(code.value) == 4) {
 | 
			
		||||
            console.log("Code changed:", newValue);
 | 
			
		||||
            // TODO: temp function until frontend controllers are ready
 | 
			
		||||
            console.log("Code submitted:", code.value);
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // handle dialog for showing members of a class
 | 
			
		||||
    const dialog = ref(false);
 | 
			
		||||
| 
						 | 
				
			
			@ -126,15 +132,25 @@
 | 
			
		|||
            <div class="join">
 | 
			
		||||
                <h1>{{ t("joinClass") }}</h1>
 | 
			
		||||
                <p>{{ t("JoinClassExplanation") }}</p>
 | 
			
		||||
                <v-form v-model="valid">
 | 
			
		||||
                    <v-text-field
 | 
			
		||||
                        label="CODE"
 | 
			
		||||
                        v-model="code"
 | 
			
		||||
                        :rules="codeRules"
 | 
			
		||||
                        variant="outlined"
 | 
			
		||||
                        max-width="400px"
 | 
			
		||||
                    ></v-text-field>
 | 
			
		||||
                </v-form>
 | 
			
		||||
                <v-sheet width="400">
 | 
			
		||||
                    <v-form @submit.prevent>
 | 
			
		||||
                        <v-text-field
 | 
			
		||||
                            label="CODE"
 | 
			
		||||
                            v-model="code"
 | 
			
		||||
                            placeholder="XXXXXXXX-XXXX-4XXX-XXXX-XXXXXXXXXXXX"
 | 
			
		||||
                            :rules="codeRules"
 | 
			
		||||
                            variant="outlined"
 | 
			
		||||
                        ></v-text-field>
 | 
			
		||||
                        <v-btn
 | 
			
		||||
                            class="mt-4"
 | 
			
		||||
                            style="background-color: #f6faf2"
 | 
			
		||||
                            type="submit"
 | 
			
		||||
                            @click="submitCode"
 | 
			
		||||
                            block
 | 
			
		||||
                            >Submit</v-btn
 | 
			
		||||
                        >
 | 
			
		||||
                    </v-form>
 | 
			
		||||
                </v-sheet>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </main>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue