mirror of
https://github.com/langgenius/dify.git
synced 2026-07-24 04:58:32 +08:00
34 lines
1.1 KiB
TypeScript
34 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],
|
|
)
|
|
}
|