diff options
Diffstat (limited to 'apps/files/src/main.ts')
-rw-r--r-- | apps/files/src/main.ts | 61 |
1 files changed, 24 insertions, 37 deletions
diff --git a/apps/files/src/main.ts b/apps/files/src/main.ts index 1206b9cc711..463ecaf6239 100644 --- a/apps/files/src/main.ts +++ b/apps/files/src/main.ts @@ -1,23 +1,28 @@ +/** + * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ +import type { Pinia } from 'pinia' +import { getCSPNonce } from '@nextcloud/auth' +import { PiniaVuePlugin } from 'pinia' import Vue from 'vue' -import { createPinia, PiniaVuePlugin } from 'pinia' -import { getNavigation } from '@nextcloud/files' -import { getRequestToken } from '@nextcloud/auth' -import FilesListView from './views/FilesList.vue' -import NavigationView from './views/Navigation.vue' +import { getPinia } from './store/index.ts' +import FilesApp from './FilesApp.vue' import router from './router/router' import RouterService from './services/RouterService' import SettingsModel from './models/Setting.js' import SettingsService from './services/Settings.js' -// @ts-expect-error __webpack_nonce__ is injected by webpack -__webpack_nonce__ = btoa(getRequestToken()) +__webpack_nonce__ = getCSPNonce() declare global { interface Window { - OC: any; - OCA: any; - OCP: any; + OC: Nextcloud.v29.OC + OCP: Nextcloud.v29.OCP + // eslint-disable-next-line @typescript-eslint/no-explicit-any + OCA: Record<string, any> + _nc_files_pinia: Pinia } } @@ -26,39 +31,21 @@ window.OCA.Files = window.OCA.Files ?? {} window.OCP.Files = window.OCP.Files ?? {} // Expose router -const Router = new RouterService(router) -Object.assign(window.OCP.Files, { Router }) +if (!window.OCP.Files.Router) { + const Router = new RouterService(router) + Object.assign(window.OCP.Files, { Router }) +} // Init Pinia store Vue.use(PiniaVuePlugin) -const pinia = createPinia() - -// Init Navigation Service -const Navigation = getNavigation() -Vue.prototype.$navigation = Navigation // Init Files App Settings Service const Settings = new SettingsService() Object.assign(window.OCA.Files, { Settings }) Object.assign(window.OCA.Files.Settings, { Setting: SettingsModel }) -// Init Navigation View -const View = Vue.extend(NavigationView) -const FilesNavigationRoot = new View({ - name: 'FilesNavigationRoot', - propsData: { - Navigation, - }, - router, - pinia, -}) -FilesNavigationRoot.$mount('#app-navigation-files') - -// Init content list view -const ListView = Vue.extend(FilesListView) -const FilesList = new ListView({ - name: 'FilesListRoot', - router, - pinia, -}) -FilesList.$mount('#app-content-vue') +const FilesAppVue = Vue.extend(FilesApp) +new FilesAppVue({ + router: (window.OCP.Files.Router as RouterService)._router, + pinia: getPinia(), +}).$mount('#content') |