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