aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files/src/main.ts
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files/src/main.ts')
-rw-r--r--apps/files/src/main.ts51
1 files changed, 51 insertions, 0 deletions
diff --git a/apps/files/src/main.ts b/apps/files/src/main.ts
new file mode 100644
index 00000000000..463ecaf6239
--- /dev/null
+++ b/apps/files/src/main.ts
@@ -0,0 +1,51 @@
+/**
+ * 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 { 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'
+
+__webpack_nonce__ = getCSPNonce()
+
+declare global {
+ interface Window {
+ 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
+ }
+}
+
+// Init private and public Files namespace
+window.OCA.Files = window.OCA.Files ?? {}
+window.OCP.Files = window.OCP.Files ?? {}
+
+// Expose router
+if (!window.OCP.Files.Router) {
+ const Router = new RouterService(router)
+ Object.assign(window.OCP.Files, { Router })
+}
+
+// Init Pinia store
+Vue.use(PiniaVuePlugin)
+
+// Init Files App Settings Service
+const Settings = new SettingsService()
+Object.assign(window.OCA.Files, { Settings })
+Object.assign(window.OCA.Files.Settings, { Setting: SettingsModel })
+
+const FilesAppVue = Vue.extend(FilesApp)
+new FilesAppVue({
+ router: (window.OCP.Files.Router as RouterService)._router,
+ pinia: getPinia(),
+}).$mount('#content')