dify/web/app/components/integrations/hooks/use-integration-permissions.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

57 lines
1.6 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,
canDebugger,
canInstallPlugin,
canDeletePlugin,
canSetPluginPreferences,
canSetPermissions,
canUpdatePlugin,
isPermissionLoading,
permissionError,
setPluginPermissionSettings,
} = usePluginSettingsAccess()
const isPluginCategory = isPluginCategorySection(section)
const showPluginCategorySetting = isPluginCategory && canSetPluginPreferences
const showPermissionQuickPanel = canSetPermissions && !!permission
const handlePermissionChange = (key: PermissionSettingKey, value: PermissionType) => {
if (!permission) return
setPluginPermissionSettings({
...permission,
[key]: value,
})
}
return {
canDebugger,
canInstallPlugin,
canDeletePlugin,
canSetPluginPreferences,
canUpdatePlugin,
canManagement: canInstallPlugin,
handlePermissionChange,
isPluginCategory,
isReferenceSettingLoading: isPermissionLoading,
permission,
referenceSettingError: permissionError,
showPermissionQuickPanel,
showPluginCategorySetting,
}
}