Fix Sidebar enabled check

Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
Signed-off-by: npmbuildbot[bot] <npmbuildbot[bot]@users.noreply.github.com>
This commit is contained in:
John Molakvoæ (skjnldsv) 2019-12-17 17:27:36 +01:00 committed by npmbuildbot[bot]
parent ac045a2461
commit 27dc4ef268
5 changed files with 24 additions and 16 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -3650,8 +3650,9 @@
registerTabView: function(tabView) {
console.warn('registerTabView is deprecated! It will be removed in nextcloud 20.');
const name = tabView.getLabel()
const enabled = tabView.canDisplay || undefined
if (name) {
OCA.Files.Sidebar.registerTab(new OCA.Files.Sidebar.Tab(name, tabView, true))
OCA.Files.Sidebar.registerTab(new OCA.Files.Sidebar.Tab(name, tabView, enabled, true))
}
},

View File

@ -22,20 +22,27 @@
export default class Tab {
#component;
#legacy;
#name;
#component
#legacy
#name
#enabled
/**
* Create a new tab instance
*
* @param {string} name the name of this tab
* @param {Object} component the vue component
* @param {Function} [enabled] function that returns if the tab should be shown or not
* @param {boolean} [legacy] is this a legacy tab
*/
constructor(name, component, legacy) {
constructor(name, component, enabled = () => true, legacy) {
if (typeof enabled !== 'function') {
throw new Error('The enabled argument should be a function')
}
this.#name = name
this.#component = component
this.#enabled = enabled
this.#legacy = legacy === true
if (this.#legacy) {
@ -52,6 +59,10 @@ export default class Tab {
return this.#component
}
get isEnabled() {
return this.#enabled
}
get isLegacyTab() {
return this.#legacy === true
}

View File

@ -255,11 +255,7 @@ export default {
* @returns {boolean}
*/
canDisplay(tab) {
if (tab.isLegacyTab) {
return this.fileInfo && tab.component.canDisplay && tab.component.canDisplay(this.fileInfo)
}
// if the tab does not have an enabled method, we assume it's always available
return tab.enabled ? tab.enabled(this.fileInfo) : true
return tab.isEnabled(this.fileInfo)
},
onClose() {
this.resetData()