front > login : fix redirection when user is already logged in

This commit is contained in:
isUnknown 2025-05-05 16:41:22 +02:00
parent e30a80c4ff
commit 619e124fc4
3 changed files with 25 additions and 14 deletions

View file

@ -17,15 +17,13 @@ router.beforeEach(async (to, from, next) => {
try {
const res = await api.fetchData(to.path);
if (!res.user && to.path === '/login' && from.path === '/login') {
next();
} else if (res.user && to.path === '/login') {
next('/');
} else {
pageStore.page = res.page;
userStore.user = res.user;
next();
if (to.path === '/login' && res.user) {
location.href = '/';
}
pageStore.page = res.page;
userStore.user = res.user;
next();
} catch (error) {
console.error(error);
next(false);

View file

@ -14,7 +14,7 @@
placeholder="mail@exemple.com"
autocomplete="username"
class="w-full rounded-md border border-grey-200 px-16 py-12"
:class="{ invalid: !isValidEmail }"
:class="{ invalid: emailRegex.test(email) }"
required
/>
<p v-else>Email : {{ user.email }}</p>
@ -23,6 +23,17 @@
modifier
</button>
</li>
<li :class="{ 'is-editing': isEditingEmail }">
<input
@input="updatePassword"
type="password"
v-model="password"
id="password"
class="w-full rounded-md border border-grey-200 px-16 py-12"
:class="{ invalid: password.length < 8 }"
required
/>
</li>
<li>
<p>Client : {{ user.client.name }}</p>
</li>
@ -37,14 +48,12 @@ import { useUserStore } from '../stores/user';
import { ref, watch } from 'vue';
const { user } = storeToRefs(useUserStore());
const email = ref('');
const isEditingEmail = ref(false);
const isValidEmail = ref(false);
const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
watch(email, (newEmail) => {
const regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
isValidEmail.value = regex.test(newEmail);
});
const password = ref('');
function updateEmail(event) {
email.value = event.target.value;