Adding a delay before positioning the regex
This gives the page time to render the loading indicator before doing all the positioning work; providing a better experience for users when rendering complicated regexs like that Perl email regex.
This commit is contained in:
		
							parent
							
								
									f81ba6535f
								
							
						
					
					
						commit
						bc84f68250
					
				@ -81,9 +81,7 @@ export default class Regexper {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  renderRegexp(expression) {
 | 
					  renderRegexp(expression) {
 | 
				
			||||||
    var snap = Snap(this.svg),
 | 
					    var snap = Snap(this.svg),
 | 
				
			||||||
        deferred = Q.defer(),
 | 
					        padding = this.padding;
 | 
				
			||||||
        padding = this.padding,
 | 
					 | 
				
			||||||
        result;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    snap.selectAll('g').remove();
 | 
					    snap.selectAll('g').remove();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -95,17 +93,25 @@ export default class Regexper {
 | 
				
			|||||||
        return result;
 | 
					        return result;
 | 
				
			||||||
      }, this.showError.bind(this))
 | 
					      }, this.showError.bind(this))
 | 
				
			||||||
      .then((result) => {
 | 
					      .then((result) => {
 | 
				
			||||||
        var box;
 | 
					        var deferred = Q.defer();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        result.position();
 | 
					        setTimeout(() => {
 | 
				
			||||||
 | 
					          var box;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        box = result.getBBox();
 | 
					          result.position();
 | 
				
			||||||
        result.container.transform(Snap.matrix()
 | 
					
 | 
				
			||||||
          .translate(padding - box.x, padding - box.y));
 | 
					          box = result.getBBox();
 | 
				
			||||||
        snap.attr({
 | 
					          result.container.transform(Snap.matrix()
 | 
				
			||||||
          width: box.width + padding * 2,
 | 
					            .translate(padding - box.x, padding - box.y));
 | 
				
			||||||
          height: box.height + padding * 2
 | 
					          snap.attr({
 | 
				
			||||||
 | 
					            width: box.width + padding * 2,
 | 
				
			||||||
 | 
					            height: box.height + padding * 2
 | 
				
			||||||
 | 
					          });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          deferred.resolve();
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return deferred.promise;
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user