import { UserApi } from "~~/lib/api/user"; import { defineStore } from "pinia"; import { useLocalStorage } from "@vueuse/core"; export const useAuthStore = defineStore("auth", { state: () => ({ token: useLocalStorage("pinia/auth/token", ""), expires: useLocalStorage("pinia/auth/expires", ""), }), getters: { isTokenExpired: (state) => { if (!state.expires) { return true; } if (typeof state.expires === "string") { return new Date(state.expires) < new Date(); } return state.expires < new Date(); }, }, actions: { async logout(api: UserApi) { const result = await api.logout(); if (result.error) { return result; } this.token = ""; this.expires = ""; return result; }, }, });