import { createWebHistory, createRouter } from "vue-router";
import routes from "./routes";
import { useApiStore } from "../stores/api";
import { usePageStore } from "../stores/page";
import { useUserStore } from "../stores/user";
import { getActivePinia } from "pinia";

const router = createRouter({
  history: createWebHistory(),
  routes,
});

router.beforeEach(async (to, from, next) => {
  const pinia = getActivePinia();
  const api = useApiStore(pinia);
  const pageStore = usePageStore(pinia);
  const userStore = useUserStore(pinia);

  try {
    const res = await api.fetchData(to.path);

    pageStore.page = res.page;
    userStore.user = res.user;
    next();
  } catch (error) {
    console.error(error);
    next(false);
  }
});

export { router };
