diff --git a/src/main-oauth-popup.js b/src/main-oauth-popup.js index 898170c624..7aa2b88fad 100644 --- a/src/main-oauth-popup.js +++ b/src/main-oauth-popup.js @@ -5,7 +5,7 @@ import { getRequestToken } from '@nextcloud/auth' import { generateFilePath } from '@nextcloud/router' -import Vue from 'vue' +import { createApp } from 'vue' import OauthDone from './views/OauthDone.vue' import Nextcloud from './mixins/Nextcloud.js' @@ -13,10 +13,9 @@ __webpack_nonce__ = btoa(getRequestToken()) __webpack_public_path__ = generateFilePath('mail', '', 'js/') -Vue.mixin(Nextcloud) - -const View = Vue.extend(OauthDone) -new View({}).$mount('#mail-oauth-done') +const app = createApp(OauthDone) +app.mixin(Nextcloud) +app.mount('#mail-oauth-done') if (window.opener) { window.opener.postMessage('DONE') diff --git a/src/main-settings.js b/src/main-settings.js index ab278141ea..e2be1fdf38 100644 --- a/src/main-settings.js +++ b/src/main-settings.js @@ -6,7 +6,7 @@ import { getRequestToken } from '@nextcloud/auth' import { loadState } from '@nextcloud/initial-state' import { generateFilePath } from '@nextcloud/router' -import Vue from 'vue' +import { createApp } from 'vue' import AdminSettings from './components/settings/AdminSettings.vue' import Nextcloud from './mixins/Nextcloud.js' @@ -16,11 +16,9 @@ __webpack_nonce__ = btoa(getRequestToken()) __webpack_public_path__ = generateFilePath('mail', '', 'js/') -Vue.mixin(Nextcloud) +const app = createApp(AdminSettings, { + provisioningSettings: loadState('mail', 'provisioning_settings') || [], +}) -const View = Vue.extend(AdminSettings) -new View({ - propsData: { - provisioningSettings: loadState('mail', 'provisioning_settings') || [], - }, -}).$mount('#mail-admin-settings') +app.mixin(Nextcloud) +app.mount('#mail-admin-settings') diff --git a/src/main.js b/src/main.js index bc815d8fbf..723e035c66 100644 --- a/src/main.js +++ b/src/main.js @@ -6,10 +6,10 @@ import { getRequestToken } from '@nextcloud/auth' import { registerDavProperty } from '@nextcloud/files' import { generateFilePath } from '@nextcloud/router' -import { createPinia, PiniaVuePlugin } from 'pinia' -import vToolTip from 'v-tooltip' -import Vue from 'vue' -import VueShortKey from 'vue-shortkey' +import { createPinia } from 'pinia' +import FloatingVue from 'floating-vue' +import { createApp } from 'vue' +import VueShortKey from 'vue3-shortkey' import App from './App.vue' import Nextcloud from './mixins/Nextcloud.js' import router from './router.js' @@ -21,20 +21,15 @@ __webpack_nonce__ = btoa(getRequestToken()) __webpack_public_path__ = generateFilePath('mail', '', 'js/') -Vue.use(PiniaVuePlugin) const pinia = createPinia() +const app = createApp(App) -Vue.mixin(Nextcloud) - -Vue.use(VueShortKey, { prevent: ['input', 'div', 'textarea'] }) -Vue.use(vToolTip) +app.mixin(Nextcloud) +app.use(pinia) +app.use(router) +app.use(VueShortKey, { prevent: ['input', 'div', 'textarea'] }) +app.use(FloatingVue) registerDavProperty('nc:share-attributes', { nc: 'http://nextcloud.org/ns' }) -export default new Vue({ - el: '#content', - name: 'Mail', - router, - pinia, - render: (h) => h(App), -}) +app.mount('#content') diff --git a/src/router.js b/src/router.js index 620ca0e53e..2a4da27a5b 100644 --- a/src/router.js +++ b/src/router.js @@ -4,17 +4,13 @@ * SPDX-License-Identifier: AGPL-3.0-only */ import { generateUrl } from '@nextcloud/router' -import Vue from 'vue' -import Router from 'vue-router' +import { createRouter, createWebHistory } from 'vue-router' const Home = () => import('./views/Home.vue') const Setup = () => import('./views/Setup.vue') -Vue.use(Router) - -export default new Router({ - mode: 'history', - base: generateUrl('/apps/mail/'), +export default createRouter({ + history: createWebHistory(generateUrl('/apps/mail/')), linkActiveClass: 'active', routes: [ {