Skip to content

Commit 5db140d

Browse files
authored
Merge pull request #57393 from nextcloud/fix/viewer-sidebar
fix(files): properly handle viewer integration of sidebar
2 parents 10661bf + b78699a commit 5db140d

12 files changed

Lines changed: 34 additions & 15 deletions

‎apps/files/src/eventbus.d.ts‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ declare module '@nextcloud/event-bus' {
3333

3434
'files:sidebar:opened': INode
3535
'files:sidebar:closed': undefined
36+
37+
'viewer:sidebar:open': { source: string }
3638
}
3739
}
3840

‎apps/files/src/services/RouterService.ts‎

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,7 @@ export default class RouterService {
6464
query?: Record<string, string | (string | null)[] | null | undefined>,
6565
replace?: boolean,
6666
): Promise<Route> {
67-
if (!name) {
68-
name = this.router.currentRoute.name as string
69-
}
67+
name ??= this.router.currentRoute.name as string
7068
const location: Location = { name, query, params }
7169
if (replace) {
7270
return this._router.replace(location)

‎apps/files/src/store/sidebar.ts‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { defineStore } from 'pinia'
1111
import { computed, ref, watch } from 'vue'
1212
import logger from '../logger.ts'
1313
import { useActiveStore } from './active.ts'
14+
import { useFilesStore } from './files.ts'
1415

1516
export const useSidebarStore = defineStore('sidebar', () => {
1617
const activeTab = ref<string>()
@@ -127,6 +128,17 @@ export const useSidebarStore = defineStore('sidebar', () => {
127128
}
128129
})
129130

131+
subscribe('viewer:sidebar:open', ({ source }) => {
132+
const filesStore = useFilesStore()
133+
const node = filesStore.getNode(source)
134+
if (node) {
135+
logger.debug('Opening sidebar for node from Viewer.', { node })
136+
open(node)
137+
} else {
138+
logger.error(`Cannot open sidebar for node '${source}' because it was not found in the current view.`)
139+
}
140+
})
141+
130142
let initialized = false
131143
// close sidebar when parameter is removed from url
132144
subscribe('files:list:updated', () => {

‎dist/core-common.js‎

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎dist/core-common.js.map‎

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎dist/files-main.js‎

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎dist/files-main.js.map‎

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎dist/files-sidebar.js‎

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎dist/files-sidebar.js.license‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ SPDX-FileCopyrightText: Tobias Koppers @sokra
1212
SPDX-FileCopyrightText: T. Jameson Little <t.jameson.little@gmail.com>
1313
SPDX-FileCopyrightText: Sindre Sorhus
1414
SPDX-FileCopyrightText: Roman Shtylman <shtylman@gmail.com>
15+
SPDX-FileCopyrightText: Perry Mitchell <perry@perrymitchell.net>
1516
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
1617
SPDX-FileCopyrightText: Nathan Rajlich <nathan@tootallnate.net> (http://n8.io/)
1718
SPDX-FileCopyrightText: Jonas Schade <derzade@gmail.com>
@@ -62,6 +63,9 @@ This file is generated from multiple sources. Included packages:
6263
- @nextcloud/router
6364
- version: 3.1.0
6465
- license: GPL-3.0-or-later
66+
- @nextcloud/sharing
67+
- version: 0.3.0
68+
- license: GPL-3.0-or-later
6569
- @vue/devtools-api
6670
- version: 6.6.4
6771
- license: MIT
@@ -125,6 +129,9 @@ This file is generated from multiple sources. Included packages:
125129
- vue
126130
- version: 2.7.16
127131
- license: MIT
132+
- webdav
133+
- version: 5.8.0
134+
- license: MIT
128135
- webpack
129136
- version: 5.104.1
130137
- license: MIT

‎dist/files-sidebar.js.map‎

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)