diff options
Diffstat (limited to 'src/main.js')
-rw-r--r-- | src/main.js | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..1fda9df --- /dev/null +++ b/src/main.js @@ -0,0 +1,58 @@ +import "bootstrap"; +import { createApp, h } from "vue"; +import contenteditable from "vue-contenteditable"; +import Toast from "vue-toastification"; +import "vue-toastification/dist/index.css"; +import App from "./App.vue"; +import "./assets/app.scss"; +import "./assets/vue-datepicker.scss"; +import { i18n } from "./i18n"; +import { FontAwesomeIcon } from "./icon.js"; +import datetime from "./mixins/datetime"; +import mobile from "./mixins/mobile"; +import publicMixin from "./mixins/public"; +import socket from "./mixins/socket"; +import theme from "./mixins/theme"; +import lang from "./mixins/lang"; +import { router } from "./router"; +import { appName } from "./util.ts"; +import dayjs from "dayjs"; +import timezone from "./modules/dayjs/plugin/timezone"; +import utc from "dayjs/plugin/utc"; +import relativeTime from "dayjs/plugin/relativeTime"; +import { loadToastSettings } from "./util-frontend"; +dayjs.extend(utc); +dayjs.extend(timezone); +dayjs.extend(relativeTime); + +const app = createApp({ + mixins: [ + socket, + theme, + mobile, + datetime, + publicMixin, + lang, + ], + data() { + return { + appName: appName + }; + }, + render: () => h(App), +}); + +app.use(router); +app.use(i18n); + +app.use(Toast, loadToastSettings()); +app.component("Editable", contenteditable); +app.component("FontAwesomeIcon", FontAwesomeIcon); + +app.mount("#app"); + +// Expose the vue instance for development +if (process.env.NODE_ENV === "development") { + console.log("Dev Only: window.app is the vue instance"); + window.app = app._instance; +} |