Fix Sidebar enabled check

Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
Signed-off-by: npmbuildbot[bot] <npmbuildbot[bot]@users.noreply.github.com>
pull/18449/head
John Molakvoæ (skjnldsv) 5 years ago committed by npmbuildbot[bot]
parent ac045a2461
commit 27dc4ef268

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -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))
}
},

@ -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
}

@ -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()

Loading…
Cancel
Save