Refactor useAutoUpdater hook for improved readability and update handling

- Rearranged import statements for better organization.
- Enhanced download progress handling logic for clarity and consistency.
- Ensured proper state updates during the download process, including setting download progress to 100% upon completion.
This commit is contained in:
Jamie Pine
2026-01-27 13:18:33 -08:00
parent f1be633dca
commit ce2f09d29e
+7 -8
View File
@@ -1,6 +1,6 @@
import { useCallback, useEffect, useState } from 'react';
import { check, type Update } from '@tauri-apps/plugin-updater';
import { relaunch } from '@tauri-apps/plugin-process'; import { relaunch } from '@tauri-apps/plugin-process';
import { check, type Update } from '@tauri-apps/plugin-updater';
import { useCallback, useEffect, useState } from 'react';
export interface UpdateStatus { export interface UpdateStatus {
checking: boolean; checking: boolean;
@@ -97,18 +97,17 @@ export function useAutoUpdater(checkOnMount = false) {
downloading: true, downloading: true,
totalBytes, totalBytes,
downloadedBytes: 0, downloadedBytes: 0,
downloadProgress: 0 downloadProgress: 0,
})); }));
break; break;
case 'Progress': { case 'Progress': {
downloadedBytes += event.data.chunkLength; downloadedBytes += event.data.chunkLength;
const progress = totalBytes > 0 const progress =
? Math.round((downloadedBytes / totalBytes) * 100) totalBytes > 0 ? Math.round((downloadedBytes / totalBytes) * 100) : undefined;
: undefined;
setStatus((prev) => ({ setStatus((prev) => ({
...prev, ...prev,
downloadedBytes, downloadedBytes,
downloadProgress: progress downloadProgress: progress,
})); }));
break; break;
} }
@@ -117,7 +116,7 @@ export function useAutoUpdater(checkOnMount = false) {
...prev, ...prev,
downloading: false, downloading: false,
readyToInstall: true, readyToInstall: true,
downloadProgress: 100 downloadProgress: 100,
})); }));
break; break;
} }