diff options
Diffstat (limited to 'apps/files/src/models/Tab.js')
-rw-r--r-- | apps/files/src/models/Tab.js | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/apps/files/src/models/Tab.js b/apps/files/src/models/Tab.js index 28902b0e754..2a045551c54 100644 --- a/apps/files/src/models/Tab.js +++ b/apps/files/src/models/Tab.js @@ -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 } |