diff --git a/frontend/src/pages/Downloads.tsx b/frontend/src/pages/Downloads.tsx index 80991a0..e5fd9bd 100644 --- a/frontend/src/pages/Downloads.tsx +++ b/frontend/src/pages/Downloads.tsx @@ -1,10 +1,10 @@ -import React, { FC, useEffect } from 'react'; +import React, { FC } from 'react'; import { useTranslation } from 'react-i18next'; import { Page } from '../components/Page'; import { observer } from 'mobx-react-lite'; import commonStore from '../stores/commonStore'; import { Divider, Field, ProgressBar } from '@fluentui/react-components'; -import { bytesToGb, bytesToKb, bytesToMb, refreshLocalModels } from '../utils'; +import { bytesToGb, bytesToKb, bytesToMb } from '../utils'; import { ToolTipButton } from '../components/ToolTipButton'; import { Folder20Regular, Pause20Regular, Play20Regular } from '@fluentui/react-icons'; import { AddToDownloadList, OpenFileFolder, PauseDownload } from '../../wailsjs/go/backend_golang/App'; @@ -23,12 +23,6 @@ export type DownloadStatus = { export const Downloads: FC = observer(() => { const { t } = useTranslation(); - const finishedModelsLen = commonStore.downloadList.filter((status) => status.done && status.name.endsWith('.pth')).length; - useEffect(() => { - if (finishedModelsLen > 0) - refreshLocalModels({ models: commonStore.modelSourceList }, false); - console.log('finishedModelsLen:', finishedModelsLen); - }, [finishedModelsLen]); let displayList = commonStore.downloadList.slice(); const downloadListNames = displayList.map(s => s.name); diff --git a/frontend/src/startup.ts b/frontend/src/startup.ts index 8b5e797..06778cd 100644 --- a/frontend/src/startup.ts +++ b/frontend/src/startup.ts @@ -1,6 +1,6 @@ import commonStore, { Platform } from './stores/commonStore'; import { GetPlatform, ListDirFiles, ReadJson } from '../wailsjs/go/backend_golang/App'; -import { Cache, checkUpdate, downloadProgramFiles, LocalConfig, refreshModels } from './utils'; +import { Cache, checkUpdate, downloadProgramFiles, LocalConfig, refreshLocalModels, refreshModels } from './utils'; import { getStatus } from './apis'; import { EventsOn } from '../wailsjs/runtime'; import manifest from '../../manifest.json'; @@ -18,6 +18,7 @@ export async function startup() { EventsOn('wslerr', (e) => { console.log(e); }); + initLocalModelsNotify(); initLoraModels(); initPresets(); @@ -109,3 +110,10 @@ async function initLoraModels() { refreshLoraModels(); }); } + +async function initLocalModelsNotify() { + EventsOn('fsnotify', (data: string) => { + if (data.includes('models') && !data.includes('lora-models')) + refreshLocalModels({ models: commonStore.modelSourceList }, false); //TODO fix bug that only add models + }); +}