import { computed, ref } from "vue"; import { defineStore } from "pinia"; import { AuthService } from "../modules/auth/services/services-auth"; import type { User } from "src/modules/shared/types/user-interface"; const defaultUser: User = { firstName: 'Unknown', lastName: 'Unknown', email: 'guest@guest.com', role: 'guest' }; export const useAuthStore = defineStore('auth', () => { const user = ref (defaultUser); const authError = ref(""); const isAuthorizedUser = computed(() => user.value.role !== 'guest'); const login = () => { //TODO: manage customer login process }; const oidcLogin = () => { const oidcPopup = AuthService.oidcLogin(); if (!oidcPopup) { authError.value = "You have popups blocked on this website!"; } }; const logout = () => { user.value = defaultUser; }; const setUser = (currentUser: User) => { user.value = currentUser; }; return { user, authError, isAuthorizedUser, login, oidcLogin, logout, setUser }; });