mobilizon/js/src/main.ts

45 lines
1.3 KiB
TypeScript

import Vue, { createApp, provide } from "vue";
import VueScrollTo from "vue-scrollto";
import { createMetaManager, plugin as metaPlugin } from "vue-meta";
import VTooltipPlugin from "v-tooltip";
import VueAnnouncer from "@vue-a11y/announcer";
import VueSkipTo from "@vue-a11y/skip-to";
import App from "./App.vue";
import router from "./router";
import { NotifierPlugin } from "./plugins/notifier";
import filters from "./filters";
import { i18n } from "./utils/i18n";
import apolloProvider, { apolloClient } from "./vue-apollo";
import Oruga from "@oruga-ui/oruga-next";
import "./registerServiceWorker";
import { bulmaConfig } from "@oruga-ui/theme-bulma";
import { DefaultApolloClient } from "@vue/apollo-composable";
import VueI18n from "vue-i18n";
Vue.use(filters);
const metaManager = createMetaManager();
const app = createApp({
setup() {
const { t } = VueI18n.useI18n();
provide(DefaultApolloClient, apolloClient);
return { $t: t };
},
...App,
});
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
router.app = app;
app
.use(router)
.use(apolloProvider)
.use(Oruga, bulmaConfig)
.use(i18n)
.use(NotifierPlugin)
.use(VueAnnouncer)
.use(VueSkipTo)
.use(VTooltipPlugin)
.use(VueScrollTo)
.use(metaPlugin)
.mount("#app");