mirror of
https://github.com/langgenius/dify.git
synced 2026-07-24 04:58:32 +08:00
30 lines
1023 B
TypeScript
30 lines
1023 B
TypeScript
import { PluginSource } from '@/app/components/plugins/types'
|
|
import { useCheckInstalled, usePluginManifestInfo } from '@/service/use-plugins'
|
|
|
|
type UsePluginInstalledCheckOptions = {
|
|
providerPluginId?: string | null
|
|
enabled?: boolean
|
|
}
|
|
|
|
export const usePluginInstalledCheck = (input: UsePluginInstalledCheckOptions = {}) => {
|
|
const { providerPluginId, enabled = true } = input
|
|
const pluginID = providerPluginId ?? ''
|
|
|
|
const { data: installedPluginData } = useCheckInstalled({
|
|
pluginIds: pluginID ? [pluginID] : [],
|
|
enabled: enabled && !!pluginID,
|
|
})
|
|
const installedPlugin = installedPluginData?.plugins.at(0)
|
|
const shouldQueryMarketplace =
|
|
enabled &&
|
|
!!pluginID &&
|
|
(!installedPlugin || installedPlugin.source === PluginSource.marketplace)
|
|
const { data: manifest } = usePluginManifestInfo(shouldQueryMarketplace ? pluginID : '')
|
|
|
|
return {
|
|
inMarketPlace: installedPlugin?.source === PluginSource.marketplace || !!manifest,
|
|
manifest: manifest?.data.plugin,
|
|
pluginID,
|
|
}
|
|
}
|