Esanders has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/344782 )

Change subject: Defer rendering of visual diff until tab is selected
......................................................................

Defer rendering of visual diff until tab is selected

Bug: T161355
Change-Id: I718a92f4c9f8c3a48e359da898ede7dccebcec5e
---
M modules/ve-mw/ui/dialogs/ve.ui.MWSaveDialog.js
1 file changed, 15 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor 
refs/changes/82/344782/1

diff --git a/modules/ve-mw/ui/dialogs/ve.ui.MWSaveDialog.js 
b/modules/ve-mw/ui/dialogs/ve.ui.MWSaveDialog.js
index 8df5de4..30662e0 100644
--- a/modules/ve-mw/ui/dialogs/ve.ui.MWSaveDialog.js
+++ b/modules/ve-mw/ui/dialogs/ve.ui.MWSaveDialog.js
@@ -124,11 +124,11 @@
 ve.ui.MWSaveDialog.prototype.setDiffAndReview = function ( wikitextDiff, 
visualDiff ) {
        this.$reviewVisualDiff.empty();
        if ( visualDiff ) {
-               this.diffElement = new ve.ui.DiffElement( visualDiff );
-               this.diffElement.$document.addClass( 'mw-body-content' );
-               // TODO: Remove when fixed upstream in Parsoid (T58756)
-               this.diffElement.$element.find( 'a[rel="mw:ExtLink"]' 
).addClass( 'external' );
-               this.$reviewVisualDiff.append( this.diffElement.$element );
+               if ( this.diffElement ) {
+                       this.diffElement.destroy();
+               }
+               this.diffElement = null;
+               this.visualDiff = visualDiff;
                this.reviewModeButtonSelect.getItemFromData( 'visual' 
).setDisabled( false );
        } else {
                // TODO: Support visual diffs in source mode (epic)
@@ -590,9 +590,17 @@
        var isVisual = this.reviewModeButtonSelect.getSelectedItem().getData() 
=== 'visual';
        this.$reviewVisualDiff.toggleClass( 'oo-ui-element-hidden', !isVisual );
        this.$reviewWikitextDiff.toggleClass( 'oo-ui-element-hidden', isVisual 
);
-       this.updateSize();
        if ( isVisual ) {
+               if ( !this.diffElement ) {
+                       this.diffElement = new ve.ui.DiffElement( 
this.visualDiff );
+                       this.diffElement.$document.addClass( 'mw-body-content' 
);
+                       // TODO: Remove when fixed upstream in Parsoid (T58756)
+                       this.diffElement.$element.find( 'a[rel="mw:ExtLink"]' 
).addClass( 'external' );
+                       this.$reviewVisualDiff.append( 
this.diffElement.$element );
+               }
                this.diffElement.positionDescriptions();
+               this.updateSize();
+       } else {
                this.updateSize();
        }
 };
@@ -663,6 +671,7 @@
 ve.ui.MWSaveDialog.prototype.getTeardownProcess = function ( data ) {
        return ve.ui.MWSaveDialog.super.prototype.getTeardownProcess.call( 
this, data )
                .next( function () {
+                       this.diffElement.destroy();
                        this.emit( 'close' );
                }, this );
 };

-- 
To view, visit https://gerrit.wikimedia.org/r/344782
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I718a92f4c9f8c3a48e359da898ede7dccebcec5e
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to