dify/web/app/components/tools/marketplace/hooks.ts

54 lines
1.4 KiB
TypeScript
Raw Normal View History

2024-10-29 10:51:41 +08:00
import {
useEffect,
} from 'react'
2024-10-31 15:41:02 +08:00
import {
2024-10-31 18:31:17 +08:00
useMarketplaceCollectionsAndPlugins,
useMarketplacePlugins,
} from '@/app/components/plugins/marketplace/hooks'
2024-11-13 16:28:18 +08:00
import { PluginType } from '@/app/components/plugins/types'
2024-10-29 10:51:41 +08:00
2024-10-31 15:41:02 +08:00
export const useMarketplace = (searchPluginText: string, filterPluginTags: string[]) => {
2024-10-31 18:31:17 +08:00
const {
isLoading,
marketplaceCollections,
marketplaceCollectionPluginsMap,
queryMarketplaceCollectionsAndPlugins,
} = useMarketplaceCollectionsAndPlugins()
const {
plugins,
2024-11-08 18:21:39 +08:00
resetPlugins,
2024-10-31 18:31:17 +08:00
queryPlugins,
queryPluginsWithDebounced,
isLoading: isPluginsLoading,
} = useMarketplacePlugins()
2024-10-31 15:41:02 +08:00
2024-10-29 10:51:41 +08:00
useEffect(() => {
2024-10-31 15:41:02 +08:00
if (searchPluginText || filterPluginTags.length) {
if (searchPluginText) {
2024-10-31 18:31:17 +08:00
queryPluginsWithDebounced({
2024-11-13 16:28:18 +08:00
category: PluginType.tool,
2024-10-31 15:41:02 +08:00
query: searchPluginText,
tags: filterPluginTags,
})
return
}
2024-10-31 18:31:17 +08:00
queryPlugins({
2024-11-13 16:28:18 +08:00
category: PluginType.tool,
2024-10-31 15:41:02 +08:00
query: searchPluginText,
tags: filterPluginTags,
})
}
else {
2024-11-13 16:28:18 +08:00
queryMarketplaceCollectionsAndPlugins({ category: PluginType.tool })
2024-11-08 18:21:39 +08:00
resetPlugins()
2024-10-31 15:41:02 +08:00
}
2024-11-08 18:21:39 +08:00
}, [searchPluginText, filterPluginTags, queryPlugins, queryMarketplaceCollectionsAndPlugins, queryPluginsWithDebounced, resetPlugins])
2024-10-29 10:51:41 +08:00
return {
2024-10-31 18:31:17 +08:00
isLoading: isLoading || isPluginsLoading,
2024-10-29 10:51:41 +08:00
marketplaceCollections,
marketplaceCollectionPluginsMap,
2024-10-31 15:41:02 +08:00
plugins,
2024-10-29 10:51:41 +08:00
}
}