diff --git a/apps/files/src/main.ts b/apps/files/src/main.ts index cbaad6b6a3f3b..47321cb7d827b 100644 --- a/apps/files/src/main.ts +++ b/apps/files/src/main.ts @@ -19,9 +19,10 @@ __webpack_nonce__ = btoa(getRequestToken()) declare global { interface Window { - OC: any; - OCA: any; - OCP: any; + OC: Nextcloud.v28.OC + // eslint-disable-next-line @typescript-eslint/no-explicit-any + OCA: Record + OCP: Nextcloud.v28.OCP } } @@ -50,6 +51,6 @@ Object.assign(window.OCA.Files.Settings, { Setting: SettingsModel }) const FilesAppVue = Vue.extend(FilesApp) new FilesAppVue({ - router: window.OCP.Files.Router.router, + router: (window.OCP.Files.Router as RouterService)._router, pinia, }).$mount('#content') diff --git a/apps/files/src/services/RouterService.ts b/apps/files/src/services/RouterService.ts index 0138939b1bafa..4e2999b1d29ef 100644 --- a/apps/files/src/services/RouterService.ts +++ b/apps/files/src/services/RouterService.ts @@ -2,36 +2,37 @@ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ -import type { Route } from 'vue-router' +import type { Route, Location } from 'vue-router' import type VueRouter from 'vue-router' -import type { Dictionary, Location } from 'vue-router/types/router' export default class RouterService { - private _router: VueRouter + // typescript compiles this to `#router` to make it private even in JS, + // but in TS it needs to be called without the visibility specifier + private router: VueRouter constructor(router: VueRouter) { - this._router = router + this.router = router } get name(): string | null | undefined { - return this._router.currentRoute.name + return this.router.currentRoute.name } - get query(): Dictionary { - return this._router.currentRoute.query || {} + get query(): Record { + return this.router.currentRoute.query || {} } - get params(): Dictionary { - return this._router.currentRoute.params || {} + get params(): Record { + return this.router.currentRoute.params || {} } /** * This is a protected getter only for internal use * @private */ - get router() { - return this._router + get _router() { + return this.router } /** @@ -42,7 +43,7 @@ export default class RouterService { * @see https://router.vuejs.org/guide/essentials/navigation.html#navigate-to-a-different-location */ goTo(path: string, replace = false): Promise { - return this._router.push({ + return this.router.push({ path, replace, }) @@ -59,11 +60,11 @@ export default class RouterService { */ goToRoute( name?: string, - params?: Dictionary, - query?: Dictionary, + params?: Record, + query?: Record, replace?: boolean, ): Promise { - return this._router.push({ + return this.router.push({ name, query, params,