dify/web/app/components/integrations/hooks/use-integration-permissions.ts
Jingyi 9b74df21d0
feat(web): refine onboarding UI (#37433)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: yyh <yuanyouhuilyz@gmail.com>
Co-authored-by: Joel <iamjoel007@gmail.com>
Co-authored-by: hjlarry <hjlarry@163.com>
Co-authored-by: fatelei <fatelei@gmail.com>
Co-authored-by: Asuka Minato <i@asukaminato.eu.org>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Xiyuan Chen <52963600+GareArc@users.noreply.github.com>
Co-authored-by: gigglewang <gigglewang@dify.ai>
Co-authored-by: Yunlu Wen <yunlu.wen@dify.ai>
Co-authored-by: chariri <w@chariri.moe>
Co-authored-by: Evan <2869018789@qq.com>
Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com>
2026-06-15 08:47:15 +00:00

46 lines
1.4 KiB
TypeScript

import type { PermissionSettingKey } from '../permission-quick-panel'
import type { IntegrationSection } from '@/app/components/integrations/routes'
import type { PermissionType } from '@/app/components/plugins/types'
import { usePluginSettingsAccess } from '@/app/components/plugins/plugin-page/use-reference-setting'
const isPluginCategorySection = (section: IntegrationSection) => {
return section === 'builtin' || section === 'trigger' || section === 'agent-strategy' || section === 'extension'
}
export function useIntegrationPermissions(section: IntegrationSection) {
const {
permission,
canManagement,
canDebugger,
canSetPermissions,
isPermissionLoading,
permissionError,
setPluginPermissionSettings,
} = usePluginSettingsAccess()
const isPluginCategory = isPluginCategorySection(section)
const showPluginCategorySetting = isPluginCategory && canSetPermissions
const showPermissionQuickPanel = canSetPermissions && !!permission
const handlePermissionChange = (key: PermissionSettingKey, value: PermissionType) => {
if (!permission)
return
setPluginPermissionSettings({
...permission,
[key]: value,
})
}
return {
canDebugger,
canManagement,
handlePermissionChange,
isPluginCategory,
isReferenceSettingLoading: isPermissionLoading,
permission,
referenceSettingError: permissionError,
showPermissionQuickPanel,
showPluginCategorySetting,
}
}