fix: allow users cancel backend download (#6582)
* fix: allow users cancel backend download * fix: should not redownload on cancel
This commit is contained in:
parent
d994bc8f6a
commit
7fe58d6bee
@ -319,7 +319,10 @@ export async function downloadBackend(
|
||||
events.emit('onFileDownloadSuccess', { modelId: taskId, downloadType })
|
||||
} catch (error) {
|
||||
// Fallback: if GitHub fails, retry once with CDN
|
||||
if (source === 'github') {
|
||||
if (
|
||||
source === 'github' &&
|
||||
error?.toString() !== 'Error: Download cancelled'
|
||||
) {
|
||||
console.warn(`GitHub download failed, falling back to CDN:`, error)
|
||||
return await downloadBackend(backend, version, 'cdn')
|
||||
}
|
||||
|
||||
@ -400,23 +400,33 @@ export function DownloadManagement() {
|
||||
className="text-main-view-fg/70 cursor-pointer"
|
||||
title="Cancel download"
|
||||
onClick={() => {
|
||||
serviceHub
|
||||
.models()
|
||||
.abortDownload(download.name)
|
||||
.then(() => {
|
||||
toast.info(
|
||||
t('common:toast.downloadCancelled.title'),
|
||||
{
|
||||
id: 'cancel-download',
|
||||
description: t(
|
||||
'common:toast.downloadCancelled.description'
|
||||
),
|
||||
}
|
||||
// TODO: Consolidate cancellation logic
|
||||
if (download.id.startsWith('llamacpp')) {
|
||||
const downloadManager =
|
||||
window.core.extensionManager.getByName(
|
||||
'@janhq/download-extension'
|
||||
)
|
||||
if (downloadProcesses.length === 0) {
|
||||
setIsPopoverOpen(false)
|
||||
}
|
||||
})
|
||||
|
||||
downloadManager.cancelDownload(download.id)
|
||||
} else {
|
||||
serviceHub
|
||||
.models()
|
||||
.abortDownload(download.name)
|
||||
.then(() => {
|
||||
toast.info(
|
||||
t('common:toast.downloadCancelled.title'),
|
||||
{
|
||||
id: 'cancel-download',
|
||||
description: t(
|
||||
'common:toast.downloadCancelled.description'
|
||||
),
|
||||
}
|
||||
)
|
||||
if (downloadProcesses.length === 0) {
|
||||
setIsPopoverOpen(false)
|
||||
}
|
||||
})
|
||||
}
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user