mirror of
				https://github.com/langgenius/dify.git
				synced 2025-10-31 19:03:09 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			49 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { useModelList } from '@/app/components/header/account-setting/model-provider-page/hooks'
 | |
| import { ModelTypeEnum } from '@/app/components/header/account-setting/model-provider-page/declarations'
 | |
| import { useProviderContext } from '@/context/provider-context'
 | |
| import { useInvalidateInstalledPluginList } from '@/service/use-plugins'
 | |
| import { useInvalidateAllBuiltInTools, useInvalidateAllToolProviders } from '@/service/use-tools'
 | |
| import { useInvalidateStrategyProviders } from '@/service/use-strategy'
 | |
| import type { Plugin, PluginDeclaration, PluginManifestInMarket } from '../../types'
 | |
| import { PluginType } from '../../types'
 | |
| 
 | |
| const useRefreshPluginList = () => {
 | |
|   const invalidateInstalledPluginList = useInvalidateInstalledPluginList()
 | |
|   const { mutate: refetchLLMModelList } = useModelList(ModelTypeEnum.textGeneration)
 | |
|   const { mutate: refetchEmbeddingModelList } = useModelList(ModelTypeEnum.textEmbedding)
 | |
|   const { mutate: refetchRerankModelList } = useModelList(ModelTypeEnum.rerank)
 | |
|   const { refreshModelProviders } = useProviderContext()
 | |
| 
 | |
|   const invalidateAllToolProviders = useInvalidateAllToolProviders()
 | |
|   const invalidateAllBuiltInTools = useInvalidateAllBuiltInTools()
 | |
| 
 | |
|   const invalidateStrategyProviders = useInvalidateStrategyProviders()
 | |
|   return {
 | |
|     refreshPluginList: (manifest?: PluginManifestInMarket | Plugin | PluginDeclaration | null, refreshAllType?: boolean) => {
 | |
|       // installed list
 | |
|       invalidateInstalledPluginList()
 | |
| 
 | |
|       // tool page, tool select
 | |
|       if ((manifest && PluginType.tool.includes(manifest.category)) || refreshAllType) {
 | |
|         invalidateAllToolProviders()
 | |
|         invalidateAllBuiltInTools()
 | |
|         // TODO: update suggested tools. It's a function in hook useMarketplacePlugins,handleUpdatePlugins
 | |
|       }
 | |
| 
 | |
|       // model select
 | |
|       if ((manifest && PluginType.model.includes(manifest.category)) || refreshAllType) {
 | |
|         refreshModelProviders()
 | |
|         refetchLLMModelList()
 | |
|         refetchEmbeddingModelList()
 | |
|         refetchRerankModelList()
 | |
|       }
 | |
| 
 | |
|       // agent select
 | |
|       if ((manifest && PluginType.agent.includes(manifest.category)) || refreshAllType)
 | |
|         invalidateStrategyProviders()
 | |
|     },
 | |
|   }
 | |
| }
 | |
| 
 | |
| export default useRefreshPluginList
 | 
