diff --git a/src/components/FormLogin.vue b/src/components/FormLogin.vue index e676c6c6fec21252758cd1fe527d2c2985ecc01a..3295165e4da1d9b64376d364d468055a35d81452 100644 --- a/src/components/FormLogin.vue +++ b/src/components/FormLogin.vue @@ -16,8 +16,8 @@ const userStore = useUserStore() const isEmailValid = computed(() => emailRegex.test(resetEmail.value)) const isSendingEmail = ref(false) -const successMessage = ref<string>('') -const modalErrorMessage = ref<string>('') +const successMessage = ref<string | null>(null) +const modalErrorMessage = ref<string | null>(null) const submitForm = () => { userStore.login(username.value, password.value) @@ -27,42 +27,31 @@ const toggleShowPassword = () => { showPassword.value = !showPassword.value } -const openForgotPasswordModal = (event: MouseEvent) => { - event.preventDefault() - isModalOpen.value = true -} - const submitReset = async () => { isSendingEmail.value = true - modalErrorMessage.value = '' - successMessage.value = '' - try { - const response = await axios.post( - 'http://localhost:8080/forgotPassword/changePasswordRequest', - { - email: resetEmail.value - } - ) - successMessage.value = - 'E-posten er sendt. Vennligst sjekk innboksen din for instrukser. OBS: E-posten kan havne i spam-mappen' - isSendingEmail.value = false - setTimeout(() => { - isModalOpen.value = false - successMessage.value = '' - }, 5000) - } catch (error) { - console.error(error) - modalErrorMessage.value = 'Noe gikk galt. Vennligst prøv igjen.' - isSendingEmail.value = false - } + + await axios + .post('http://localhost:8080/forgotPassword/changePasswordRequest', { + email: resetEmail.value + }) + .then(() => { + successMessage.value = + 'E-posten er sendt. Vennligst sjekk innboksen din for instrukser. OBS: E-posten kan havne i spam-mappen' + }) + .catch((error) => { + console.error(error) + modalErrorMessage.value = 'Noe gikk galt. Vennligst prøv igjen.' + }) + + isSendingEmail.value = false } const closeModal = () => { isModalOpen.value = false isSendingEmail.value = false - modalErrorMessage.value = '' + modalErrorMessage.value = null resetEmail.value = '' - successMessage.value = '' + successMessage.value = null } watch( @@ -101,7 +90,7 @@ watch( {{ showPassword ? '🔓' : '🔒' }} </button> <a - @click="openForgotPasswordModal" + @click="isModalOpen = true" class="transition-none absolute right-3 top-10 hover:underline hover:bg-transparent text-[#ef9691] hover:transition-none hover:p-0 cursor-pointer" >Glemt passord?</a > @@ -120,54 +109,57 @@ watch( </div> </div> <modal-component + v-if="isModalOpen" :title="'Glemt passord'" :message="'Vennligst skriv inn e-posten din for å endre passordet.'" - :is-modal-open="isModalOpen" - @close="closeModal" > - <template v-slot:input> - <div v-if="isSendingEmail" class="flex justify-center items-center"> - <div - class="p-3 animate-spin drop-shadow-2xl bg-gradient-to-r from-lime-500 from-30% to-green-600 to-90% md:w-18 md:h-20 h-20 w-20 aspect-square rounded-full" - > - <div class="rounded-full h-full w-full bg-slate-100 background-blur-md"></div> - </div> - </div> - <div v-else-if="successMessage"> - <p class="text-green-500 text-center">{{ successMessage }}</p> + <div v-if="isSendingEmail" class="flex justify-center items-center"> + <div + class="p-3 animate-spin bg-gradient-to-r from-lime-500 from-30% to-green-600 to-90% md:w-18 md:h-20 h-20 w-20 aspect-square rounded-full" + > + <div class="rounded-full h-full w-full bg-slate-100"></div> </div> - <div v-else-if="modalErrorMessage"> - <p class="text-red-500 text-center">{{ modalErrorMessage }}</p> + </div> + <div v-else-if="successMessage"> + <p class="text-green-500 text-center">{{ successMessage }}</p> + <button + class="active-button font-bold py-2 px-4 w-1/2 mt-4 border-2 disabled:border-transparent" + @click="closeModal" + > + Lukk + </button> + </div> + <div v-else-if="modalErrorMessage"> + <p class="text-red-500 text-center">{{ modalErrorMessage }}</p> + <button + class="active-button font-bold py-2 px-4 w-1/2 mt-4 border-2 disabled:border-transparent" + @click="closeModal" + > + Lukk + </button> + </div> + <div v-else> + <input + v-model="resetEmail" + class="border border-gray-300 p-2 w-full mb-7" + placeholder="Skriv e-postadressen din her" + type="email" + /> + <div class="flex gap-5 mt-4"> <button + :disabled="!isEmailValid" + class="active-button font-bold py-2 px-4 w-1/2 border-2 disabled:border-transparent" + @click="submitReset" + > + Send mail + </button> + <button + class="active-button font-bold py-2 px-4 w-1/2 border-2 disabled:border-transparent" @click="closeModal" - class="active-button font-bold py-2 px-4 w-1/2 mt-4 border-2 disabled:border-transparent" > Lukk </button> </div> - <div v-else> - <input - type="email" - v-model="resetEmail" - class="border border-gray-300 p-2 w-full mb-7" - placeholder="Skriv e-postadressen din her" - /> - <div class="flex gap-5 mt-4"> - <button - :disabled="!isEmailValid" - @click="submitReset" - class="active-button font-bold py-2 px-4 w-1/2 border-2 disabled:border-transparent" - > - Send mail - </button> - <button - @click="closeModal" - class="active-button font-bold py-2 px-4 w-1/2 border-2 disabled:border-transparent" - > - Lukk - </button> - </div> - </div> - </template> + </div> </modal-component> </template> diff --git a/src/router/index.ts b/src/router/index.ts index d725996ad9cadf5e79165183e4977eaabef3a6a2..e440a314d843500378eb317a89cdaa2fbe1f0925 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -172,14 +172,11 @@ router.beforeEach(async (to, from, next) => { next() } } else { - console.log('Logged in') - if (!userStore.user.isConfigured) { await userStore.checkIfUserConfigured() } const isConfigured = userStore.user.isConfigured - console.log('Is configured:', isConfigured) if (configRequired && !isConfigured) { await router.replace({ name: 'configure-biometric' })