From 7012c77fe9ddfd2b24572bc0e3165ca2c8d3317a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Tue, 22 May 2018 12:01:00 +0200 Subject: [PATCH] feat(toolbox): add ability to specify a toggled label on AbstractButton --- .../base/toolbox/components/AbstractButton.js | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/react/features/base/toolbox/components/AbstractButton.js b/react/features/base/toolbox/components/AbstractButton.js index 908f05c59..526fad0d2 100644 --- a/react/features/base/toolbox/components/AbstractButton.js +++ b/react/features/base/toolbox/components/AbstractButton.js @@ -68,6 +68,11 @@ export default class AbstractButton extends Component { */ label: string; + /** + * The label for this button, when toggled. + */ + toggledLabel: string; + /** * The name of the icon of this button, when toggled. * @@ -119,6 +124,19 @@ export default class AbstractButton extends Component { || this.iconName; } + /** + * Gets the current label, taking the toggled state into account. If no + * toggled label is provided, the regular label will also be used in the + * toggled state. + * + * @private + * @returns {string} + */ + _getLabel() { + return (this._isToggled() ? this.toggledLabel : this.label) + || this.label; + } + /** * Gets the current styles, taking the toggled state into account. If no * toggled styles are provided, the regular styles will also be used in the @@ -179,7 +197,7 @@ export default class AbstractButton extends Component { ...this.props, accessibilityLabel: this.accessibilityLabel, iconName: this._getIconName(), - label: this.label, + label: this._getLabel(), styles: this._getStyles(), tooltip: this.tooltip };