chore : electron-auto-update refinement
This commit is contained in:
		
							parent
							
								
									07f3854019
								
							
						
					
					
						commit
						db6facfd53
					
				| 
						 | 
					@ -52,7 +52,6 @@ export function update(win: Electron.BrowserWindow) {
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
  })
 | 
					  })
 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Install now
 | 
					  // Install now
 | 
				
			||||||
  ipcMain.handle('quit-and-install', () => {
 | 
					  ipcMain.handle('quit-and-install', () => {
 | 
				
			||||||
    autoUpdater.quitAndInstall(false, true)
 | 
					    autoUpdater.quitAndInstall(false, true)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,10 +11,10 @@ const Progress: React.FC<React.PropsWithChildren<{
 | 
				
			||||||
      <div className='progress-pr'>
 | 
					      <div className='progress-pr'>
 | 
				
			||||||
        <div
 | 
					        <div
 | 
				
			||||||
          className='progress-rate'
 | 
					          className='progress-rate'
 | 
				
			||||||
          style={{ width: `${percent / 100}%` }}
 | 
					          style={{ width: `${percent}%` }}
 | 
				
			||||||
        />
 | 
					        />
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
      <span className='progress-num'>{percent}%</span>
 | 
					      <span className='progress-num'>{(percent ?? 0).toString().substring(0,4)}%</span>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
  )
 | 
					  )
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,6 +7,7 @@
 | 
				
			||||||
      border: 1px solid #000;
 | 
					      border: 1px solid #000;
 | 
				
			||||||
      border-radius: 3px;
 | 
					      border-radius: 3px;
 | 
				
			||||||
      height: 6px;
 | 
					      height: 6px;
 | 
				
			||||||
 | 
					      width: 100px;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .progress-rate {
 | 
					    .progress-rate {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -28,14 +28,12 @@ const Update = () => {
 | 
				
			||||||
     * @type {import('electron-updater').UpdateCheckResult | null | { message: string, error: Error }}
 | 
					     * @type {import('electron-updater').UpdateCheckResult | null | { message: string, error: Error }}
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    const result = await ipcRenderer.invoke('check-update')
 | 
					    const result = await ipcRenderer.invoke('check-update')
 | 
				
			||||||
 | 
					    setProgressInfo({ percent: 0 })
 | 
				
			||||||
    setChecking(false)
 | 
					    setChecking(false)
 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (result?.error) {
 | 
					 | 
				
			||||||
      console.error(result.error)
 | 
					 | 
				
			||||||
      setUpdateAvailable(false)
 | 
					 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
      setUpdateAvailable(true)
 | 
					 | 
				
			||||||
    setModalOpen(true)
 | 
					    setModalOpen(true)
 | 
				
			||||||
 | 
					    if (result?.error) {
 | 
				
			||||||
 | 
					      setUpdateAvailable(false)
 | 
				
			||||||
 | 
					      setUpdateError(result?.error)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -50,20 +48,27 @@ const Update = () => {
 | 
				
			||||||
        onCancel: () => setModalOpen(false),
 | 
					        onCancel: () => setModalOpen(false),
 | 
				
			||||||
        onOk: () => ipcRenderer.invoke('start-download'),
 | 
					        onOk: () => ipcRenderer.invoke('start-download'),
 | 
				
			||||||
      }))
 | 
					      }))
 | 
				
			||||||
 | 
					      setUpdateAvailable(true)
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					      setUpdateAvailable(false)
 | 
				
			||||||
 | 
					      setUpdateError(undefined)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }, [])
 | 
					  }, [])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const onUpdateError = useCallback((_event: Electron.IpcRendererEvent, arg1: ErrorType) => {
 | 
					  const onUpdateError = useCallback((_event: Electron.IpcRendererEvent, arg1: ErrorType) => {
 | 
				
			||||||
    console.error(arg1.error)
 | 
					    console.error('arg1.error',arg1.error)
 | 
				
			||||||
 | 
					    setUpdateAvailable(false)
 | 
				
			||||||
    setUpdateError(arg1)
 | 
					    setUpdateError(arg1)
 | 
				
			||||||
  }, [])
 | 
					  }, [])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const onDownloadProgress = useCallback((_event: Electron.IpcRendererEvent, arg1: ProgressInfo) => {
 | 
					  const onDownloadProgress = useCallback((_event: Electron.IpcRendererEvent, arg1: ProgressInfo) => {
 | 
				
			||||||
    console.log(arg1)
 | 
					    console.log(arg1)
 | 
				
			||||||
 | 
					    setUpdateAvailable(true)
 | 
				
			||||||
    setProgressInfo(arg1)
 | 
					    setProgressInfo(arg1)
 | 
				
			||||||
  }, [])
 | 
					  }, [])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const onUpdateDownloaded = useCallback((_event: Electron.IpcRendererEvent, ...args: any[]) => {
 | 
					  const onUpdateDownloaded = useCallback((_event: Electron.IpcRendererEvent, ...args: any[]) => {
 | 
				
			||||||
 | 
					    setProgressInfo({ percent: 100 })
 | 
				
			||||||
    setModalBtn(state => ({
 | 
					    setModalBtn(state => ({
 | 
				
			||||||
      ...state,
 | 
					      ...state,
 | 
				
			||||||
      cancelText: 'Later',
 | 
					      cancelText: 'Later',
 | 
				
			||||||
| 
						 | 
					@ -87,6 +92,8 @@ const Update = () => {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }, [])
 | 
					  }, [])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const isUpdate = updateAvailable && versionInfo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return (
 | 
					  return (
 | 
				
			||||||
    <>
 | 
					    <>
 | 
				
			||||||
      <Modal
 | 
					      <Modal
 | 
				
			||||||
| 
						 | 
					@ -95,21 +102,11 @@ const Update = () => {
 | 
				
			||||||
        okText={modalBtn?.okText}
 | 
					        okText={modalBtn?.okText}
 | 
				
			||||||
        onCancel={modalBtn?.onCancel}
 | 
					        onCancel={modalBtn?.onCancel}
 | 
				
			||||||
        onOk={modalBtn?.onOk}
 | 
					        onOk={modalBtn?.onOk}
 | 
				
			||||||
        footer={!versionInfo?.update ? /* hide footer */null : undefined}
 | 
					        footer={isUpdate ? /* hide footer */null : undefined}
 | 
				
			||||||
      >
 | 
					      >
 | 
				
			||||||
        <div className={styles.modalslot}>
 | 
					        <div className={styles.modalslot}>
 | 
				
			||||||
          {updateError ? (
 | 
					          {
 | 
				
			||||||
            <div className='update-error'>
 | 
					            isUpdate
 | 
				
			||||||
              <p>Error downloading the latest version.</p>
 | 
					 | 
				
			||||||
              <p>{updateError.message}</p>
 | 
					 | 
				
			||||||
            </div>
 | 
					 | 
				
			||||||
          ) : null}
 | 
					 | 
				
			||||||
          {!updateAvailable ? (
 | 
					 | 
				
			||||||
            <div className='update-not-available'>
 | 
					 | 
				
			||||||
              <span>Check update is Error, Please check your Network!</span>
 | 
					 | 
				
			||||||
            </div>
 | 
					 | 
				
			||||||
          ) : null}
 | 
					 | 
				
			||||||
          {versionInfo
 | 
					 | 
				
			||||||
              ? (
 | 
					              ? (
 | 
				
			||||||
                <div>
 | 
					                <div>
 | 
				
			||||||
                  <div>The last version is: v{versionInfo.newVersion}</div>
 | 
					                  <div>The last version is: v{versionInfo.newVersion}</div>
 | 
				
			||||||
| 
						 | 
					@ -122,7 +119,18 @@ const Update = () => {
 | 
				
			||||||
                  </div>
 | 
					                  </div>
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
              )
 | 
					              )
 | 
				
			||||||
            : <span>Checking...</span>}
 | 
					              : updateError
 | 
				
			||||||
 | 
					                ? (
 | 
				
			||||||
 | 
					                  <div className='update-error'>
 | 
				
			||||||
 | 
					                    <p>Error downloading the latest version.</p>
 | 
				
			||||||
 | 
					                    <p>{updateError.message}</p>
 | 
				
			||||||
 | 
					                  </div>
 | 
				
			||||||
 | 
					                ) : (
 | 
				
			||||||
 | 
					                  <div>
 | 
				
			||||||
 | 
					                    <div>The last version is: v{versionInfo?.version}</div>
 | 
				
			||||||
 | 
					                  </div>
 | 
				
			||||||
 | 
					                )
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
      </Modal>
 | 
					      </Modal>
 | 
				
			||||||
      <button disabled={checking} onClick={checkUpdate}>
 | 
					      <button disabled={checking} onClick={checkUpdate}>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue