feat(toolbox): add ability to specify a toggled label on AbstractButton

This commit is contained in:
Saúl Ibarra Corretgé 2018-05-22 12:01:00 +02:00
parent f608ad4e5e
commit 7012c77fe9
1 changed files with 19 additions and 1 deletions

View File

@ -68,6 +68,11 @@ export default class AbstractButton<P: Props, S: *> extends Component<P, S> {
*/ */
label: string; label: string;
/**
* The label for this button, when toggled.
*/
toggledLabel: string;
/** /**
* The name of the icon of this button, when toggled. * The name of the icon of this button, when toggled.
* *
@ -119,6 +124,19 @@ export default class AbstractButton<P: Props, S: *> extends Component<P, S> {
|| this.iconName; || 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 * 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 * toggled styles are provided, the regular styles will also be used in the
@ -179,7 +197,7 @@ export default class AbstractButton<P: Props, S: *> extends Component<P, S> {
...this.props, ...this.props,
accessibilityLabel: this.accessibilityLabel, accessibilityLabel: this.accessibilityLabel,
iconName: this._getIconName(), iconName: this._getIconName(),
label: this.label, label: this._getLabel(),
styles: this._getStyles(), styles: this._getStyles(),
tooltip: this.tooltip tooltip: this.tooltip
}; };