Как показывать элемент только зарегистрированному пользователю? Vue3 Pinia

Проблема с синхронным отображением кнопки (<v-btn>Билеты</v-btn>). При авторизации кнопка показывается с задержкой, но если обновить страницу, то появляется сразу.

Чего не хватает для отображения кнопки билетов сразу после авторизации и входа на сайт пользователя? Спасибо за помощь!

Компонент UserStore

import {defineStore} from 'pinia'
import axios from 'axios';
import {IUser} from "../models/IUser";

export const useUserStore = defineStore('user', {
    state: () => ({
        activeUser: {} as IUser,
    }),
    actions: {
        loading: false,
        async login(user: IUser) {
            try {
                const response
                    = await axios.post<IUser>('http://localhost/api', user);
                this.activeUser = response.data as IUser;
                window.sessionStorage.setItem('loginUser', JSON.stringify(this.activeUser));
            } catch (error: any) {
                alert('Что-то пошло не так с вашим запросом. ' +
                    'Пожалуйста, убедитесь, что вы правильно заполнили все обязательные поля.');
                this.loading = false;
            }

        },
        
        isAuthenticated() {
            const accessToken = sessionStorage.getItem('loginUser');
            return !!accessToken;
        },
    }
});

Компонент с кнопкой

<template v-slot:activator="{ props: menu }">
          <v-tooltip location="top">
            <template v-slot:activator="{ props: tooltip }">
              <v-btn
                  class="city-btn"
                  v-bind="mergeProps(menu, tooltip)"
              >
                Города
              </v-btn>
              <v-btn
                  class="ticket-btn"
                  v-if="useUserStore().isAuthenticated()"
                  :to="{name:'TicketPage'}"
              >
                Билеты
              </v-btn>
            </template>
          </v-tooltip>

Роутер

const routes = [
    {
        path: '/',
        component: HomePage,
        name: 'HomePage',
    },
    {
        path: '/tickets',
        name: 'TicketPage',
        meta: {isLogged: true},
        component: () =>
            import("../components/ticket/TicketPage.vue"),
    },
]

const router: Router = createRouter({
    history: createWebHistory(),
    routes,
})
export default router;

router.beforeEach((to, from, next) => {
    if (to.matched.some((record) => record.meta.isLogged)) {
        if (!useUserStore().isAuthenticated()) {
            next({name: 'HomePage'});
        } else {
            next();
        }
    } else {
        next();
    }
});

Ответы (0 шт):