audon/audon-fe/src/main.js

53 wiersze
1.1 KiB
JavaScript

import { createApp } from "vue";
import { createPinia } from "pinia";
import { createVuetify } from "vuetify";
import { aliases, mdi } from "vuetify/iconsets/mdi-svg";
import axios from "axios";
import App from "./App.vue";
import router from "./router";
import { useMastodonStore } from "./stores/mastodon";
import "./assets/style.css";
import "vuetify/styles";
const vuetify = createVuetify({
theme: {
defaultTheme: "dark",
},
icons: {
aliases,
sets: {
mdi,
},
},
});
axios.defaults.withCredentials = true;
// if audon server returns 401, display the login form
axios.interceptors.response.use(undefined, (error) => {
if (error.response?.status === 401) {
const donStore = useMastodonStore();
donStore.$reset();
}
return Promise.reject(error);
});
router.afterEach((to) => {
const donStore = useMastodonStore();
if (!to.meta.noauth && !donStore.authorized) {
router.push({ name: "login" });
}
});
const app = createApp(App);
app.use(createPinia());
app.use(vuetify);
app.use(router);
// app.config.compilerOptions.delimiters = ["{%", "%}"];
app.mount("#app");