Skip to content
Snippets Groups Projects
Unverified Commit a6a224e7 authored by John Molakvoæ's avatar John Molakvoæ Committed by GitHub
Browse files

Merge pull request #18929 from nextcloud/enh/sidebar/promise

Allow to await the sidebar
parents b3ea5ca3 2e52bdda
No related branches found
No related tags found
No related merge requests found
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
...@@ -75,25 +75,6 @@ export default class Sidebar { ...@@ -75,25 +75,6 @@ export default class Sidebar {
return false return false
} }
/**
* Open the sidebar for the given file
*
* @memberof Sidebar
* @param {string} path the file path to load
*/
open(path) {
this.#state.file = path
}
/**
* Close the sidebar
*
* @memberof Sidebar
*/
close() {
this.#state.file = ''
}
/** /**
* Return current opened file * Return current opened file
* *
......
...@@ -51,10 +51,11 @@ window.addEventListener('DOMContentLoaded', () => { ...@@ -51,10 +51,11 @@ window.addEventListener('DOMContentLoaded', () => {
} }
// Init vue app // Init vue app
const AppSidebar = new Vue({ const View = Vue.extend(SidebarView)
// eslint-disable-next-line vue/match-component-file-name const AppSidebar = new View({
name: 'SidebarRoot', name: 'SidebarRoot',
render: h => h(SidebarView),
}) })
AppSidebar.$mount('#app-sidebar') AppSidebar.$mount('#app-sidebar')
window.OCA.Files.Sidebar.open = AppSidebar.open
window.OCA.Files.Sidebar.close = AppSidebar.close
}) })
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
ref="sidebar" ref="sidebar"
v-bind="appSidebar" v-bind="appSidebar"
:force-menu="true" :force-menu="true"
@close="onClose" @close="close"
@update:active="setActiveTab" @update:active="setActiveTab"
@update:starred="toggleStarred" @update:starred="toggleStarred"
@[defaultActionListener].stop.prevent="onDefaultAction"> @[defaultActionListener].stop.prevent="onDefaultAction">
...@@ -237,35 +237,6 @@ export default { ...@@ -237,35 +237,6 @@ export default {
isSystemTagsEnabled() { isSystemTagsEnabled() {
return OCA && 'SystemTags' in OCA return OCA && 'SystemTags' in OCA
}
},
watch: {
// update the sidebar data
async file(curr, prev) {
this.resetData()
if (curr && curr.trim() !== '') {
try {
this.fileInfo = await FileInfo(this.davPath)
// 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.sidebar) {
this.$refs.sidebar.updateTabs()
}
})
} catch (error) {
this.error = t('files', 'Error while loading the file data')
console.error('Error while loading the file data', error)
}
}
}, },
}, },
...@@ -279,10 +250,6 @@ export default { ...@@ -279,10 +250,6 @@ export default {
canDisplay(tab) { canDisplay(tab) {
return tab.isEnabled(this.fileInfo) return tab.isEnabled(this.fileInfo)
}, },
onClose() {
this.resetData()
OCA.Files.Sidebar.close()
},
resetData() { resetData() {
this.error = null this.error = null
this.fileInfo = null this.fileInfo = null
...@@ -405,7 +372,54 @@ export default { ...@@ -405,7 +372,54 @@ export default {
if (OCA.SystemTags && OCA.SystemTags.View) { if (OCA.SystemTags && OCA.SystemTags.View) {
OCA.SystemTags.View.toggle() OCA.SystemTags.View.toggle()
} }
} },
/**
* Open the sidebar for the given file
*
* @param {string} path the file path to load
* @returns {Promise}
* @throws {Error} loading failure
*/
async open(path) {
// update current opened file
this.Sidebar.file = path
// reset previous data
this.resetData()
if (path && path.trim() !== '') {
try {
this.fileInfo = await FileInfo(this.davPath)
// 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.sidebar) {
this.$refs.sidebar.updateTabs()
}
})
} catch (error) {
this.error = t('files', 'Error while loading the file data')
console.error('Error while loading the file data', error)
throw new Error(error)
}
}
},
/**
* Close the sidebar
*/
close() {
this.Sidebar.file = ''
this.resetData()
},
}, },
} }
</script> </script>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment