import { defineStore } from "pinia"; import { UserAPI, userStore, UserView } from "timi-web"; const store = defineStore("visitUser", () => { const visitUserView = ref(); const isVisitor = computed(() => { const loginUser = userStore.loginUser; return !userStore.isLogged() || !loginUser.token || !visitUserView.value || loginUser.token.id !== visitUserView.value.id; }); async function updateVisitUserView(id: number): Promise { if (visitUserView.value && visitUserView.value.id === id) { return; } if (!visitUserView.value && userStore.loginUser.user?.id === Number(id)) { visitUserView.value = userStore.loginUser.user; return; } visitUserView.value = await UserAPI.view(id); } async function reloadVisitUserView(): Promise { if (visitUserView.value) { const id = visitUserView.value.id as number; visitUserView.value = undefined; await updateVisitUserView(id); } } return { isVisitor, visitUserView, updateVisitUserView, reloadVisitUserView }; }); export function useVisitUserStore() { return store(); }