dify/web/app/components/header/account-setting/use-integrations-setting.ts
盐粒 Yanli 3f2d22ec0f
feat(agent-v2): sync nightly updates to main (#37599)
Co-authored-by: Jingyi-Dify <jingyi.qi@dify.ai>
Co-authored-by: yyh <yuanyouhuilyz@gmail.com>
Co-authored-by: Joel <iamjoel007@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: hjlarry <hjlarry@163.com>
Co-authored-by: Bond Zhu <783504079@qq.com>
Co-authored-by: Yansong Zhang <916125788@qq.com>
Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com>
2026-06-18 05:03:34 +00:00

31 lines
1.1 KiB
TypeScript

'use client'
import type { MovedAccountSettingTab } from './destinations'
import type { IntegrationSection } from '@/app/components/integrations/routes'
import { useCallback } from 'react'
import { useModalContext } from '@/context/modal-context'
import { integrationSectionByMovedAccountSettingTab } from './destinations'
type IntegrationsSettingState
= | { payload: MovedAccountSettingTab, source?: 'agent', onCancelCallback?: () => void }
| { section: IntegrationSection, source?: 'agent', onCancelCallback?: () => void }
export const useIntegrationsSetting = () => {
const { setShowAccountSettingModal } = useModalContext()
return useCallback((state: IntegrationsSettingState) => {
const section
= 'section' in state
? state.section
: integrationSectionByMovedAccountSettingTab[state.payload]
if (section) {
setShowAccountSettingModal({
payload: section,
...(state.source ? { source: state.source } : {}),
...(state.onCancelCallback ? { onCancelCallback: state.onCancelCallback } : {}),
})
}
}, [setShowAccountSettingModal])
}