mirror of
https://github.com/langgenius/dify.git
synced 2026-07-22 03:08:33 +08:00
31 lines
1.1 KiB
TypeScript
31 lines
1.1 KiB
TypeScript
import type { SyncDraftCallback } from '../hooks-store'
|
|
import { useCallback } from 'react'
|
|
import { useHooksStore } from '@/app/components/workflow/hooks-store'
|
|
import { useStore } from '../store'
|
|
import { useNodesReadOnly } from './use-workflow'
|
|
|
|
export type SyncCallback = SyncDraftCallback
|
|
|
|
export const useNodesSyncDraft = () => {
|
|
const { getNodesReadOnly } = useNodesReadOnly()
|
|
const debouncedSyncWorkflowDraft = useStore((s) => s.debouncedSyncWorkflowDraft)
|
|
const doSyncWorkflowDraft = useHooksStore((s) => s.doSyncWorkflowDraft)
|
|
const syncWorkflowDraftWhenPageClose = useHooksStore((s) => s.syncWorkflowDraftWhenPageClose)
|
|
|
|
const handleSyncWorkflowDraft = useCallback(
|
|
(sync?: boolean, notRefreshWhenSyncError?: boolean, callback?: SyncDraftCallback) => {
|
|
if (getNodesReadOnly()) return
|
|
|
|
if (sync) doSyncWorkflowDraft(notRefreshWhenSyncError, callback)
|
|
else debouncedSyncWorkflowDraft(doSyncWorkflowDraft)
|
|
},
|
|
[debouncedSyncWorkflowDraft, doSyncWorkflowDraft, getNodesReadOnly],
|
|
)
|
|
|
|
return {
|
|
doSyncWorkflowDraft,
|
|
handleSyncWorkflowDraft,
|
|
syncWorkflowDraftWhenPageClose,
|
|
}
|
|
}
|