Extracting custom event creation into a util module
This commit is contained in:
		
							parent
							
								
									0d6e272216
								
							
						
					
					
						commit
						78917d44e6
					
				| @ -1,3 +1,4 @@ | ||||
| import { customEvent } from 'src/js/util.js'; | ||||
| import Regexper from 'src/js/regexper.js'; | ||||
| import Parser from 'src/js/parser/javascript.js'; | ||||
| import Snap from 'snapsvg'; | ||||
| @ -24,7 +25,7 @@ describe('regexper.js', function() { | ||||
|   describe('#keypressListener', function() { | ||||
| 
 | ||||
|     beforeEach(function() { | ||||
|       this.event = document.createEvent('Event'); | ||||
|       this.event = customEvent('keypress'); | ||||
|       spyOn(this.event, 'preventDefault'); | ||||
|       spyOn(this.regexper.form, 'dispatchEvent'); | ||||
|     }); | ||||
| @ -99,7 +100,7 @@ describe('regexper.js', function() { | ||||
|   describe('#documentKeypressListener', function() { | ||||
| 
 | ||||
|     beforeEach(function() { | ||||
|       this.event = document.createEvent('Event'); | ||||
|       this.event = customEvent('keyup'); | ||||
|       this.regexper.runningParser = jasmine.createSpyObj('parser', ['cancel']); | ||||
|     }); | ||||
| 
 | ||||
| @ -134,7 +135,7 @@ describe('regexper.js', function() { | ||||
|   describe('#submitListener', function() { | ||||
| 
 | ||||
|     beforeEach(function() { | ||||
|       this.event = document.createEvent('Event'); | ||||
|       this.event = customEvent('submit'); | ||||
|       spyOn(this.event, 'preventDefault'); | ||||
| 
 | ||||
|       this.regexper.field.value = 'example value'; | ||||
| @ -190,8 +191,7 @@ describe('regexper.js', function() { | ||||
|   describe('#updatePercentage', function() { | ||||
| 
 | ||||
|     beforeEach(function() { | ||||
|       this.event = document.createEvent('Event'); | ||||
|       this.event.detail = { percentage: 0.42 }; | ||||
|       this.event = customEvent('updateStatus', { percentage: 0.42 }); | ||||
|     }); | ||||
| 
 | ||||
|     it('sets the width of the progress bar', function() { | ||||
|  | ||||
							
								
								
									
										19
									
								
								spec/util_spec.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								spec/util_spec.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,19 @@ | ||||
| import { customEvent } from 'src/js/util.js'; | ||||
| 
 | ||||
| describe('util.js', function() { | ||||
| 
 | ||||
|   describe('customEvent', function() { | ||||
| 
 | ||||
|     it('sets the event type', function() { | ||||
|       var event = customEvent('example'); | ||||
|       expect(event.type).toEqual('example'); | ||||
|     }); | ||||
| 
 | ||||
|     it('sets the event detail', function() { | ||||
|       var event = customEvent('example', 'detail'); | ||||
|       expect(event.detail).toEqual('detail'); | ||||
|     }); | ||||
| 
 | ||||
|   }); | ||||
| 
 | ||||
| }); | ||||
| @ -1,3 +1,4 @@ | ||||
| import { customEvent } from './util.js'; | ||||
| import Regexper from './regexper.js'; | ||||
| 
 | ||||
| (function() { | ||||
| @ -7,10 +8,7 @@ import Regexper from './regexper.js'; | ||||
|     regexper.bindListeners(); | ||||
| 
 | ||||
|     setTimeout(() => { | ||||
|       var evt = document.createEvent('Event'); | ||||
| 
 | ||||
|       evt.initEvent('hashchange', true, true); | ||||
|       window.dispatchEvent(evt); | ||||
|       window.dispatchEvent(customEvent('hashchange')); | ||||
|     }); | ||||
|   } | ||||
| }()); | ||||
|  | ||||
| @ -1,3 +1,4 @@ | ||||
| import { customEvent } from '../../util.js'; | ||||
| import _ from 'lodash'; | ||||
| import Q from 'q'; | ||||
| 
 | ||||
| @ -108,20 +109,15 @@ export default class Node { | ||||
|   } | ||||
| 
 | ||||
|   doneRender() { | ||||
|     var evt; | ||||
| 
 | ||||
|     if (this.state.maxCounter === 0) { | ||||
|       this.state.maxCounter = this.state.renderCounter; | ||||
|     } | ||||
| 
 | ||||
|     this.state.renderCounter--; | ||||
| 
 | ||||
|     evt = document.createEvent('Event'); | ||||
|     evt.initEvent('updateStatus', true, true); | ||||
|     evt.detail = { | ||||
|     document.body.dispatchEvent(customEvent('updateStatus', { | ||||
|       percentage: (this.state.maxCounter - this.state.renderCounter) / this.state.maxCounter | ||||
|     }; | ||||
|     document.body.dispatchEvent(evt); | ||||
|     })); | ||||
| 
 | ||||
|     if (this.state.renderCounter === 0) { | ||||
|       this.state.maxCounter = 0; | ||||
|  | ||||
| @ -1,3 +1,4 @@ | ||||
| import { customEvent } from './util.js'; | ||||
| import Parser from './parser/javascript.js'; | ||||
| import Snap from 'snapsvg'; | ||||
| import Q from 'q'; | ||||
| @ -20,17 +21,13 @@ export default class Regexper { | ||||
|   } | ||||
| 
 | ||||
|   keypressListener(event) { | ||||
|     var evt; | ||||
| 
 | ||||
|     if (event.shiftKey && event.keyCode === 13) { | ||||
|       event.returnValue = false; | ||||
|       if (event.preventDefault) { | ||||
|         event.preventDefault(); | ||||
|       } | ||||
| 
 | ||||
|       evt = document.createEvent('Event'); | ||||
|       evt.initEvent('submit', true, true); | ||||
|       this.form.dispatchEvent(evt); | ||||
|       this.form.dispatchEvent(customEvent('submit')); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										6
									
								
								src/js/util.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								src/js/util.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | ||||
| export function customEvent(name, detail) { | ||||
|   var evt = document.createEvent('Event'); | ||||
|   evt.initEvent(name, true, true); | ||||
|   evt.detail = detail; | ||||
|   return evt; | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user