fix(files): Update sidebar when renaming node

fixes #51408

Signed-off-by: Marcel Klehr <mklehr@gmx.net>
This commit is contained in:
Marcel Klehr 2026-01-13 10:51:31 +01:00
parent 450633e224
commit 26df3ce530

View file

@ -325,12 +325,14 @@ export default defineComponent({
},
created() {
subscribe('files:node:deleted', this.onNodeDeleted)
subscribe('files:node:updated', this.onNodeUpdated)
window.addEventListener('resize', this.handleWindowResize)
this.handleWindowResize()
},
beforeDestroy() {
unsubscribe('file:node:deleted', this.onNodeDeleted)
unsubscribe('file:node:deleted', this.onNodeUpdated)
window.removeEventListener('resize', this.handleWindowResize)
},
@ -549,6 +551,35 @@ export default defineComponent({
}
},
/**
* Handle if the current node was updated
* @param {import('@nextcloud/files').Node} node The deleted node
*/
async onNodeUpdated(node) {
if (this.fileInfo && node && this.fileInfo.id === node.fileid && node.path !== this.file) {
this.loading = true
this.fileInfo = null
this.Sidebar.file = node.path
this.node = await fetchNode(this.file)
this.fileInfo = FileInfo(this.node)
// adding this as fallback because other apps expect it
this.fileInfo.dir = this.file.split('/').slice(0, -1).join('/')
// DEPRECATED legacy views
// TODO: remove
this.views.forEach(view => {
view.setFileInfo(this.fileInfo)
})
this.$nextTick(() => {
if (this.$refs.tabs) {
this.$refs.tabs.updateTabs()
}
this.loading = false
})
}
},
/**
* Allow to set the Sidebar as fullscreen from OCA.Files.Sidebar
*