Allow to await the sidebar
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
This commit is contained in:
parent
344ac9c694
commit
f4d298cc03
3 changed files with 42 additions and 43 deletions
|
@ -75,16 +75,6 @@ export default class Sidebar {
|
|||
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
|
||||
*
|
||||
|
|
|
@ -51,10 +51,10 @@ window.addEventListener('DOMContentLoaded', () => {
|
|||
}
|
||||
|
||||
// Init vue app
|
||||
const AppSidebar = new Vue({
|
||||
// eslint-disable-next-line vue/match-component-file-name
|
||||
const View = Vue.extend(SidebarView)
|
||||
const AppSidebar = new View({
|
||||
name: 'SidebarRoot',
|
||||
render: h => h(SidebarView),
|
||||
})
|
||||
AppSidebar.$mount('#app-sidebar')
|
||||
window.OCA.Files.Sidebar.open = AppSidebar.open
|
||||
})
|
||||
|
|
|
@ -238,35 +238,6 @@ export default {
|
|||
|
||||
isSystemTagsEnabled() {
|
||||
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)
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
|
@ -406,7 +377,45 @@ export default {
|
|||
if (OCA.SystemTags && OCA.SystemTags.View) {
|
||||
OCA.SystemTags.View.toggle()
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Open the sidebar for the given file
|
||||
*
|
||||
* @memberof Sidebar
|
||||
* @param {string} path the file path to load
|
||||
*/
|
||||
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)
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
|
Loading…
Reference in a new issue