dify/web/app/components/plugins/plugin-detail-panel/tool-selector/hooks/use-plugin-installed-check.ts
Stephen Zhou a84c2d36a3
style: format with vp fmt (#38803)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-12 15:57:46 +00:00

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,
}
}