chore: resolve button state download engine variant (#4444)
This commit is contained in:
parent
395f5d41a1
commit
548dd6c027
@ -8,7 +8,7 @@ import {
|
|||||||
InferenceEngine,
|
InferenceEngine,
|
||||||
} from '@janhq/core'
|
} from '@janhq/core'
|
||||||
import { Button, ScrollArea, Badge, Select, Progress } from '@janhq/joi'
|
import { Button, ScrollArea, Badge, Select, Progress } from '@janhq/joi'
|
||||||
import { Trash2Icon } from 'lucide-react'
|
|
||||||
import { twMerge } from 'tailwind-merge'
|
import { twMerge } from 'tailwind-merge'
|
||||||
|
|
||||||
import {
|
import {
|
||||||
@ -18,7 +18,6 @@ import {
|
|||||||
setDefaultEngineVariant,
|
setDefaultEngineVariant,
|
||||||
installEngine,
|
installEngine,
|
||||||
updateEngine,
|
updateEngine,
|
||||||
uninstallEngine,
|
|
||||||
useGetReleasedEnginesByVersion,
|
useGetReleasedEnginesByVersion,
|
||||||
} from '@/hooks/useEngineManagement'
|
} from '@/hooks/useEngineManagement'
|
||||||
|
|
||||||
@ -109,21 +108,32 @@ const EngineSettings = ({ engine }: { engine: InferenceEngine }) => {
|
|||||||
const variant: string | undefined = event.id.includes('.tar.gz')
|
const variant: string | undefined = event.id.includes('.tar.gz')
|
||||||
? availableVariants?.find((e) => event.id.includes(`${e}.tar.gz`))
|
? availableVariants?.find((e) => event.id.includes(`${e}.tar.gz`))
|
||||||
: availableVariants?.find((e) => event.id.includes(e))
|
: availableVariants?.find((e) => event.id.includes(e))
|
||||||
if (!variant) return
|
|
||||||
setInstallingEngines((prev) => {
|
if (!variant) {
|
||||||
prev.set(variant, event.percent)
|
console.error(
|
||||||
return prev
|
'Variant not found for event.id:',
|
||||||
})
|
event.id,
|
||||||
if (
|
availableVariants
|
||||||
event.type === DownloadEvent.onFileDownloadError ||
|
)
|
||||||
event.type === DownloadEvent.onFileDownloadStopped ||
|
return
|
||||||
event.type === DownloadEvent.onFileDownloadSuccess
|
|
||||||
) {
|
|
||||||
setInstallingEngines((prev) => {
|
|
||||||
prev.delete(variant)
|
|
||||||
return prev
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Clone the existing Map to ensure immutability
|
||||||
|
setInstallingEngines((prev) => {
|
||||||
|
const updated = new Map(prev)
|
||||||
|
if (
|
||||||
|
event.type === DownloadEvent.onFileDownloadError ||
|
||||||
|
event.type === DownloadEvent.onFileDownloadStopped ||
|
||||||
|
event.type === DownloadEvent.onFileDownloadSuccess
|
||||||
|
) {
|
||||||
|
// Remove the variant from the Map if download stops/errors/succeeds
|
||||||
|
updated.delete(variant)
|
||||||
|
} else {
|
||||||
|
// Update the variant with the new percentage
|
||||||
|
updated.set(variant, event.percent)
|
||||||
|
}
|
||||||
|
return updated
|
||||||
|
})
|
||||||
},
|
},
|
||||||
[
|
[
|
||||||
mutateDefaultEngineVariant,
|
mutateDefaultEngineVariant,
|
||||||
@ -147,6 +157,7 @@ const EngineSettings = ({ engine }: { engine: InferenceEngine }) => {
|
|||||||
version: String(defaultEngineVariant?.version),
|
version: String(defaultEngineVariant?.version),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ScrollArea className="h-full w-full">
|
<ScrollArea className="h-full w-full">
|
||||||
<div className="block w-full px-4">
|
<div className="block w-full px-4">
|
||||||
@ -296,8 +307,9 @@ const EngineSettings = ({ engine }: { engine: InferenceEngine }) => {
|
|||||||
variant="soft"
|
variant="soft"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setInstallingEngines((prev) => {
|
setInstallingEngines((prev) => {
|
||||||
prev.set(item.name, 0)
|
const updated = new Map(prev)
|
||||||
return prev
|
updated.set(item.name, 0)
|
||||||
|
return updated
|
||||||
})
|
})
|
||||||
installEngine(engine, {
|
installEngine(engine, {
|
||||||
variant: item.name,
|
variant: item.name,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user