您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

use-plugin-auth.ts 964B

12345678910111213141516171819202122232425
  1. import { useAppContext } from '@/context/app-context'
  2. import {
  3. useGetPluginCredentialInfoHook,
  4. useInvalidPluginCredentialInfoHook,
  5. } from './use-credential'
  6. import { CredentialTypeEnum } from '../types'
  7. import type { PluginPayload } from '../types'
  8. export const usePluginAuth = (pluginPayload: PluginPayload, enable?: boolean) => {
  9. const { data } = useGetPluginCredentialInfoHook(pluginPayload, enable)
  10. const { isCurrentWorkspaceManager } = useAppContext()
  11. const isAuthorized = !!data?.credentials.length
  12. const canOAuth = data?.supported_credential_types.includes(CredentialTypeEnum.OAUTH2)
  13. const canApiKey = data?.supported_credential_types.includes(CredentialTypeEnum.API_KEY)
  14. const invalidPluginCredentialInfo = useInvalidPluginCredentialInfoHook(pluginPayload)
  15. return {
  16. isAuthorized,
  17. canOAuth,
  18. canApiKey,
  19. credentials: data?.credentials || [],
  20. disabled: !isCurrentWorkspaceManager,
  21. invalidPluginCredentialInfo,
  22. }
  23. }