diff --git a/public/Evil_Morty_Profile_Icon.webp b/public/Evil_Morty_Profile_Icon.webp new file mode 100644 index 0000000..f8e7a34 Binary files /dev/null and b/public/Evil_Morty_Profile_Icon.webp differ diff --git a/src/stores/auth.ts b/src/stores/auth.ts index de76020..ed791f9 100644 --- a/src/stores/auth.ts +++ b/src/stores/auth.ts @@ -3,9 +3,18 @@ import { ref, computed } from 'vue' import { kappa } from '@/services/kappa-api' import type { KappaLoginPayload } from '@/types/kappa' +function loadUser(): { name: string; email: string } | null { + const raw = localStorage.getItem('kappa_user') + return raw ? JSON.parse(raw) : null +} + +function saveUser(user: { name: string; email: string }) { + localStorage.setItem('kappa_user', JSON.stringify(user)) +} + export const useAuthStore = defineStore('auth', () => { const token = ref(localStorage.getItem('kappa_token')) - const user = ref<{ name: string; email: string } | null>(null) + const user = ref<{ name: string; email: string } | null>(loadUser()) const loading = ref(false) const error = ref(null) @@ -16,11 +25,13 @@ export const useAuthStore = defineStore('auth', () => { error.value = null try { const data = await kappa.login(payload) - token.value = kappa['token'] // sync with the service instance + token.value = kappa['token'] + const name = `${data.user?.first_name || ''} ${data.user?.last_name || ''}`.trim() user.value = { - name: `${data.user?.first_name || ''} ${data.user?.last_name || ''}`.trim(), + name: name || 'Ricardo Gonzalez', email: payload.email, } + saveUser(user.value) return true } catch (e: any) { error.value = e.message @@ -34,6 +45,7 @@ export const useAuthStore = defineStore('auth', () => { kappa.logout() token.value = null user.value = null + localStorage.removeItem('kappa_user') } return { token, user, loading, error, isAuthenticated, login, logout }