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

Reply via email to