fix stop model first then start model when change on right panel setting
This commit is contained in:
parent
9fa684e480
commit
95225c3637
@ -50,7 +50,7 @@ export default function DropdownListSidebar() {
|
|||||||
const threadStates = useAtomValue(threadStatesAtom)
|
const threadStates = useAtomValue(threadStatesAtom)
|
||||||
const [selectedModel, setSelectedModel] = useAtom(selectedModelAtom)
|
const [selectedModel, setSelectedModel] = useAtom(selectedModelAtom)
|
||||||
const setThreadModelParams = useSetAtom(setThreadModelParamsAtom)
|
const setThreadModelParams = useSetAtom(setThreadModelParamsAtom)
|
||||||
const { activeModel, startModel, stateModel } = useActiveModel()
|
const { activeModel, startModel, stateModel, stopModel } = useActiveModel()
|
||||||
const [serverEnabled, setServerEnabled] = useAtom(serverEnabledAtom)
|
const [serverEnabled, setServerEnabled] = useAtom(serverEnabledAtom)
|
||||||
|
|
||||||
const { setMainViewState } = useMainViewState()
|
const { setMainViewState } = useMainViewState()
|
||||||
@ -142,12 +142,14 @@ export default function DropdownListSidebar() {
|
|||||||
}, [stateModel.loading, loader])
|
}, [stateModel.loading, loader])
|
||||||
|
|
||||||
const onValueSelected = useCallback(
|
const onValueSelected = useCallback(
|
||||||
(modelId: string) => {
|
async (modelId: string) => {
|
||||||
const model = downloadedModels.find((m) => m.id === modelId)
|
const model = downloadedModels.find((m) => m.id === modelId)
|
||||||
setSelectedModel(model)
|
setSelectedModel(model)
|
||||||
|
|
||||||
|
await stopModel()
|
||||||
|
|
||||||
if (activeModel?.id !== modelId) {
|
if (activeModel?.id !== modelId) {
|
||||||
startModel(modelId)
|
await startModel(modelId)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (serverEnabled) {
|
if (serverEnabled) {
|
||||||
@ -168,6 +170,7 @@ export default function DropdownListSidebar() {
|
|||||||
downloadedModels,
|
downloadedModels,
|
||||||
serverEnabled,
|
serverEnabled,
|
||||||
activeThreadId,
|
activeThreadId,
|
||||||
|
activeModel,
|
||||||
setSelectedModel,
|
setSelectedModel,
|
||||||
setThreadModelParams,
|
setThreadModelParams,
|
||||||
]
|
]
|
||||||
@ -184,7 +187,7 @@ export default function DropdownListSidebar() {
|
|||||||
<div
|
<div
|
||||||
className={twMerge(
|
className={twMerge(
|
||||||
'relative w-full overflow-hidden rounded-md',
|
'relative w-full overflow-hidden rounded-md',
|
||||||
stateModel.loading && 'bg-blue-200 text-blue-600'
|
stateModel.loading && 'pointer-events-none bg-blue-200 text-blue-600'
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
<Select value={selected?.id} onValueChange={onValueSelected}>
|
<Select value={selected?.id} onValueChange={onValueSelected}>
|
||||||
@ -244,7 +247,9 @@ export default function DropdownListSidebar() {
|
|||||||
value={x.id}
|
value={x.id}
|
||||||
className={twMerge(x.id === selected?.id && 'bg-secondary')}
|
className={twMerge(x.id === selected?.id && 'bg-secondary')}
|
||||||
onPointerUp={() => {
|
onPointerUp={() => {
|
||||||
|
if (x.id === selected?.id) {
|
||||||
startModel(x.id)
|
startModel(x.id)
|
||||||
|
}
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div className="flex w-full justify-between">
|
<div className="flex w-full justify-between">
|
||||||
|
|||||||
@ -8,7 +8,7 @@ export default function ModelStart() {
|
|||||||
|
|
||||||
// This is fake loader please fix this when we have realtime percentage when load model
|
// This is fake loader please fix this when we have realtime percentage when load model
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (stateModel.loading) {
|
if (stateModel.loading && stateModel.state === 'start') {
|
||||||
if (loader === 24) {
|
if (loader === 24) {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
setLoader(loader + 1)
|
setLoader(loader + 1)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user