jenkins-bot has submitted this change and it was merged. Change subject: [BREAKING CHANGE] Return promise instead of taking callback argument ......................................................................
[BREAKING CHANGE] Return promise instead of taking callback argument In the OO.ui.OptionWidget flash method, we now return a promise. Technically this is a breaking change, but there are no known callers outside of OOUI. Change-Id: I2dcddb9199c225ba2ebc89a1d2d1f144cfb38122 --- M src/widgets/MenuWidget.js M src/widgets/OptionWidget.js 2 files changed, 14 insertions(+), 12 deletions(-) Approvals: Krinkle: Looks good to me, approved jenkins-bot: Verified diff --git a/src/widgets/MenuWidget.js b/src/widgets/MenuWidget.js index e3e47cb..8ca16e9 100644 --- a/src/widgets/MenuWidget.js +++ b/src/widgets/MenuWidget.js @@ -136,7 +136,7 @@ if ( item && !this.flashing ) { this.flashing = true; - item.flash( OO.ui.bind( function () { + item.flash().done( OO.ui.bind( function () { this.hide(); this.flashing = false; }, this ) ); diff --git a/src/widgets/OptionWidget.js b/src/widgets/OptionWidget.js index 946b98c..c60f458 100644 --- a/src/widgets/OptionWidget.js +++ b/src/widgets/OptionWidget.js @@ -186,24 +186,26 @@ * * While flashing, the visual style of the pressed state is removed if present. * - * @param {Function} [done] Callback to execute when flash effect is complete. + * @return {jQuery.Promise} Promise resolved when flashing is done */ -OO.ui.OptionWidget.prototype.flash = function ( done ) { - var $this = this.$element; +OO.ui.OptionWidget.prototype.flash = function () { + var $this = this.$element, + deferred = $.Deferred(); if ( !this.disabled && this.constructor.static.pressable ) { $this.removeClass( 'oo-ui-optionWidget-highlighted oo-ui-optionWidget-pressed' ); setTimeout( OO.ui.bind( function () { - $this.addClass( 'oo-ui-optionWidget-highlighted' ); - if ( done ) { - // Restore original classes - $this - .toggleClass( 'oo-ui-optionWidget-highlighted', this.highlighted ) - .toggleClass( 'oo-ui-optionWidget-pressed', this.pressed ); - setTimeout( done, 100 ); - } + // Restore original classes + $this + .toggleClass( 'oo-ui-optionWidget-highlighted', this.highlighted ) + .toggleClass( 'oo-ui-optionWidget-pressed', this.pressed ); + setTimeout( function () { + deferred.resolve(); + }, 100 ); }, this ), 100 ); } + + return deferred.promise(); }; /** -- To view, visit https://gerrit.wikimedia.org/r/130424 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I2dcddb9199c225ba2ebc89a1d2d1f144cfb38122 Gerrit-PatchSet: 3 Gerrit-Project: oojs/ui Gerrit-Branch: master Gerrit-Owner: Trevor Parscal <tpars...@wikimedia.org> Gerrit-Reviewer: Krinkle <krinklem...@gmail.com> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits