Merge pull request #121 from RSS1102/RSS1102-main
chore : electron-auto-update refinement
This commit is contained in:
commit
2c52f297cb
|
@ -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)
|
||||||
|
setModalOpen(true)
|
||||||
if (result?.error) {
|
if (result?.error) {
|
||||||
console.error(result.error)
|
|
||||||
setUpdateAvailable(false)
|
setUpdateAvailable(false)
|
||||||
} else {
|
setUpdateError(result?.error)
|
||||||
setUpdateAvailable(true)
|
|
||||||
setModalOpen(true)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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,34 +102,35 @@ 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>
|
||||||
</div>
|
<div>The last version is: v{versionInfo.newVersion}</div>
|
||||||
) : null}
|
<div>v{versionInfo.version} -> v{versionInfo.newVersion}</div>
|
||||||
{!updateAvailable ? (
|
<div className='update-progress'>
|
||||||
<div className='update-not-available'>
|
<div className='progress-title'>Update progress:</div>
|
||||||
<span>Check update is Error, Please check your Network!</span>
|
<div className='progress-bar'>
|
||||||
</div>
|
<Progress percent={progressInfo?.percent} ></Progress>
|
||||||
) : null}
|
</div>
|
||||||
{versionInfo
|
|
||||||
? (
|
|
||||||
<div>
|
|
||||||
<div>The last version is: v{versionInfo.newVersion}</div>
|
|
||||||
<div>v{versionInfo.version} -> v{versionInfo.newVersion}</div>
|
|
||||||
<div className='update-progress'>
|
|
||||||
<div className='progress-title'>Update progress:</div>
|
|
||||||
<div className='progress-bar'>
|
|
||||||
<Progress percent={progressInfo?.percent} ></Progress>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
)
|
||||||
)
|
: updateError
|
||||||
: <span>Checking...</span>}
|
? (
|
||||||
|
<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