 dee4c4b908
			
		
	
	
	
	
	dee4c4b908* improve progress bar fiddle * add comments to code snippet * edits to progress-bar tutorial * remove versions and nodeIntegration * limit line length to 100 * implement standard linter suggestions * add indeterminate and clear timers * update to have reader replace all of main.js * remove extra button * loop the progress bar * add logic to show reset state briefly * Update docs/tutorial/progress-bar.md Co-authored-by: Erick Zhao <erick@hotmail.ca> * chore: fix lint Co-authored-by: Cheng Zhao <github@zcbenz.com> Co-authored-by: Erick Zhao <erick@hotmail.ca>
		
			
				
	
	
		
			48 lines
		
	
	
	
		
			1 KiB
			
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
	
		
			1 KiB
			
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const { app, BrowserWindow } = require('electron')
 | |
| 
 | |
| let progressInterval
 | |
| 
 | |
| function createWindow () {
 | |
|   const win = new BrowserWindow({
 | |
|     width: 800,
 | |
|     height: 600
 | |
|   })
 | |
| 
 | |
|   win.loadFile('index.html')
 | |
| 
 | |
|   const INCREMENT = 0.03
 | |
|   const INTERVAL_DELAY = 100 // ms
 | |
| 
 | |
|   let c = 0
 | |
|   progressInterval = setInterval(() => {
 | |
|     // update progress bar to next value
 | |
|     // values between 0 and 1 will show progress, >1 will show indeterminate or stick at 100%
 | |
|     win.setProgressBar(c)
 | |
| 
 | |
|     // increment or reset progress bar
 | |
|     if (c < 2) {
 | |
|       c += INCREMENT
 | |
|     } else {
 | |
|       c = (-INCREMENT * 5) // reset to a bit less than 0 to show reset state
 | |
|     }
 | |
|   }, INTERVAL_DELAY)
 | |
| }
 | |
| 
 | |
| app.whenReady().then(createWindow)
 | |
| 
 | |
| // before the app is terminated, clear both timers
 | |
| app.on('before-quit', () => {
 | |
|   clearInterval(progressInterval)
 | |
| })
 | |
| 
 | |
| app.on('window-all-closed', () => {
 | |
|   if (process.platform !== 'darwin') {
 | |
|     app.quit()
 | |
|   }
 | |
| })
 | |
| 
 | |
| app.on('activate', () => {
 | |
|   if (BrowserWindow.getAllWindows().length === 0) {
 | |
|     createWindow()
 | |
|   }
 | |
| })
 |