Skip to content

Commit

Permalink
Merge pull request #48001 from nextcloud/backport/47920/stable29
Browse files Browse the repository at this point in the history
[stable29] feat: Reset route if neither the Viewer of the Sidebar is open
  • Loading branch information
artonge authored Sep 16, 2024
2 parents 7d440fa + 08c35a5 commit bac653a
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 9 deletions.
28 changes: 22 additions & 6 deletions apps/files/src/components/FilesListVirtual.vue
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ import type { UserConfig } from '../types'
import { getFileListHeaders, Folder, View, getFileActions, FileType } from '@nextcloud/files'
import { showError } from '@nextcloud/dialogs'
import { translate as t, translatePlural as n } from '@nextcloud/l10n'
import { subscribe, unsubscribe } from '@nextcloud/event-bus'
import { defineComponent } from 'vue'

import { action as sidebarAction } from '../actions/sidebarAction.ts'
Expand Down Expand Up @@ -216,8 +217,12 @@ export default defineComponent({
handler() {
// wait for scrolling and updating the actions to settle
this.$nextTick(() => {
if (this.fileId && this.openFile) {
this.handleOpenFile(this.fileId)
if (this.fileId) {
if (this.openFile) {
this.handleOpenFile(this.fileId)
} else {
this.unselectFile()
}
}
})
},
Expand All @@ -230,6 +235,8 @@ export default defineComponent({
const mainContent = window.document.querySelector('main.app-content') as HTMLElement
mainContent.addEventListener('dragover', this.onDragOver)

subscribe('files:sidebar:closed', this.unselectFile)

// If the file list is mounted with a fileId specified
// then we need to open the sidebar initially
if (this.fileId) {
Expand All @@ -240,6 +247,8 @@ export default defineComponent({
beforeDestroy() {
const mainContent = window.document.querySelector('main.app-content') as HTMLElement
mainContent.removeEventListener('dragover', this.onDragOver)

unsubscribe('files:sidebar:closed', this.unselectFile)
},

methods: {
Expand Down Expand Up @@ -267,15 +276,22 @@ export default defineComponent({
}
},

unselectFile() {
// If the Sidebar is closed and if openFile is false, remove the file id from the URL
if (!this.openFile && OCA.Files.Sidebar.file === '') {
window.OCP.Files.Router.goToRoute(
null,
{ ...this.$route.params, fileid: String(this.currentFolder.fileid ?? '') },
this.$route.query,
)
}
},

/**
* Handle opening a file (e.g. by ?openfile=true)
* @param fileId File to open
*/
handleOpenFile(fileId: number|null) {
if (!this.openFile) {
return
}

if (fileId === null || this.openFileId === fileId) {
return
}
Expand Down
4 changes: 2 additions & 2 deletions dist/files-main.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/files-main.js.map

Large diffs are not rendered by default.

0 comments on commit bac653a

Please sign in to comment.