diff options
author | John Molakvoæ <skjnldsv@protonmail.com> | 2023-04-20 09:06:34 +0200 |
---|---|---|
committer | John Molakvoæ <skjnldsv@protonmail.com> | 2023-04-20 09:14:44 +0200 |
commit | 0a2a1b4b526d30ca5e95454559e1c45b8d7c1589 (patch) | |
tree | 767b48427a504f7a48a451b1aafb6beadb79dce1 /apps/files/src/main.ts | |
parent | bb4d7969b93c806e4f578ecc5a6d04bb6bebee73 (diff) | |
download | nextcloud-server-0a2a1b4b526d30ca5e95454559e1c45b8d7c1589.tar.gz nextcloud-server-0a2a1b4b526d30ca5e95454559e1c45b8d7c1589.zip |
feat(files): expose Files router
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
Diffstat (limited to 'apps/files/src/main.ts')
-rw-r--r-- | apps/files/src/main.ts | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/apps/files/src/main.ts b/apps/files/src/main.ts new file mode 100644 index 00000000000..976714a8f1f --- /dev/null +++ b/apps/files/src/main.ts @@ -0,0 +1,73 @@ +import './templates.js' +import './legacy/filelistSearch.js' +import './actions/deleteAction' + +import Vue from 'vue' +import { createPinia, PiniaVuePlugin } from 'pinia' + +import FilesListView from './views/FilesList.vue' +import NavigationService from './services/Navigation' +import NavigationView from './views/Navigation.vue' +import processLegacyFilesViews from './legacy/navigationMapper.js' +import registerPreviewServiceWorker from './services/ServiceWorker.js' +import router from './router/router.js' +import SettingsModel from './models/Setting.js' +import SettingsService from './services/Settings.js' +import RouterService from './services/RouterService' + +declare global { + interface Window { + OC: any; + OCA: any; + OCP: any; + } +} + +// Init private and public Files namespace +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 }) + +// Init Pinia store +Vue.use(PiniaVuePlugin) +const pinia = createPinia() + +// Init Navigation Service +const Navigation = new NavigationService() +Object.assign(window.OCP.Files, { Navigation }) +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') + +// Init legacy and new files views +processLegacyFilesViews() + +// Register preview service worker +registerPreviewServiceWorker() |