mirror of
https://github.com/nextcloud/server.git
synced 2026-06-14 19:20:35 -04:00
refactor(files): Make RouterService provide a protected getter for the router to allow injecting the files_sharing router
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
This commit is contained in:
parent
82a7a3971d
commit
f109c1a044
2 changed files with 17 additions and 16 deletions
|
|
@ -50,6 +50,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')
|
||||
|
|
|
|||
|
|
@ -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<string | (string | null)[] | null | undefined> {
|
||||
return this._router.currentRoute.query || {}
|
||||
get query(): Record<string, string | (string | null)[] | null | undefined> {
|
||||
return this.router.currentRoute.query || {}
|
||||
}
|
||||
|
||||
get params(): Dictionary<string> {
|
||||
return this._router.currentRoute.params || {}
|
||||
get params(): Record<string, string> {
|
||||
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<Route> {
|
||||
return this._router.push({
|
||||
return this.router.push({
|
||||
path,
|
||||
replace,
|
||||
})
|
||||
|
|
@ -59,11 +60,11 @@ export default class RouterService {
|
|||
*/
|
||||
goToRoute(
|
||||
name?: string,
|
||||
params?: Dictionary<string>,
|
||||
query?: Dictionary<string | (string | null)[] | null | undefined>,
|
||||
params?: Record<string, string>,
|
||||
query?: Record<string, string | (string | null)[] | null | undefined>,
|
||||
replace?: boolean,
|
||||
): Promise<Route> {
|
||||
return this._router.push({
|
||||
return this.router.push({
|
||||
name,
|
||||
query,
|
||||
params,
|
||||
|
|
|
|||
Loading…
Reference in a new issue