kopia lustrzana https://codeberg.org/nmkj/audon
53 wiersze
1.1 KiB
JavaScript
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");
|