// ── Auth store ─────────────────────────────────────────────────────────────── // Holds current session state. Calls api/auth.js only. // To change the auth method: edit api/auth.js. This store stays the same. // ───────────────────────────────────────────────────────────────────────────── import { defineStore } from 'pinia' import { ref } from 'vue' import { login, logout, getLoggedUser } from 'src/api/auth' export const useAuthStore = defineStore('auth', () => { const user = ref(null) // email string when logged in, null when guest const loading = ref(false) const error = ref('') async function checkSession () { loading.value = true user.value = await getLoggedUser() loading.value = false } async function doLogin (usr, pwd) { loading.value = true error.value = '' try { await login(usr, pwd) user.value = usr } catch (e) { error.value = e.message || 'Erreur de connexion' } finally { loading.value = false } } async function doLogout () { await logout() user.value = null } return { user, loading, error, checkSession, doLogin, doLogout } })