| 
									
										
										
										
											2024-04-08 18:51:46 +08:00
										 |  |  | import { useCallback } from 'react' | 
					
						
							|  |  |  | import { | 
					
						
							|  |  |  |   useStore, | 
					
						
							|  |  |  | } from '../store' | 
					
						
							| 
									
										
										
										
											2024-08-19 18:11:11 +08:00
										 |  |  | import { | 
					
						
							|  |  |  |   useNodesReadOnly, | 
					
						
							|  |  |  | } from './use-workflow' | 
					
						
							| 
									
										
										
										
											2025-04-18 13:59:12 +08:00
										 |  |  | import { useHooksStore } from '@/app/components/workflow/hooks-store' | 
					
						
							| 
									
										
										
										
											2024-04-08 18:51:46 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | export const useNodesSyncDraft = () => { | 
					
						
							|  |  |  |   const { getNodesReadOnly } = useNodesReadOnly() | 
					
						
							|  |  |  |   const debouncedSyncWorkflowDraft = useStore(s => s.debouncedSyncWorkflowDraft) | 
					
						
							| 
									
										
										
										
											2025-04-18 13:59:12 +08:00
										 |  |  |   const doSyncWorkflowDraft = useHooksStore(s => s.doSyncWorkflowDraft) | 
					
						
							|  |  |  |   const syncWorkflowDraftWhenPageClose = useHooksStore(s => s.syncWorkflowDraftWhenPageClose) | 
					
						
							| 
									
										
										
										
											2024-04-08 18:51:46 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-03-07 18:10:40 +08:00
										 |  |  |   const handleSyncWorkflowDraft = useCallback(( | 
					
						
							|  |  |  |     sync?: boolean, | 
					
						
							|  |  |  |     notRefreshWhenSyncError?: boolean, | 
					
						
							|  |  |  |     callback?: { | 
					
						
							|  |  |  |       onSuccess?: () => void | 
					
						
							|  |  |  |       onError?: () => void | 
					
						
							|  |  |  |       onSettled?: () => void | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |   ) => { | 
					
						
							| 
									
										
										
										
											2024-04-08 18:51:46 +08:00
										 |  |  |     if (getNodesReadOnly()) | 
					
						
							|  |  |  |       return | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (sync) | 
					
						
							| 
									
										
										
										
											2025-03-07 18:10:40 +08:00
										 |  |  |       doSyncWorkflowDraft(notRefreshWhenSyncError, callback) | 
					
						
							| 
									
										
										
										
											2024-04-08 18:51:46 +08:00
										 |  |  |     else | 
					
						
							|  |  |  |       debouncedSyncWorkflowDraft(doSyncWorkflowDraft) | 
					
						
							|  |  |  |   }, [debouncedSyncWorkflowDraft, doSyncWorkflowDraft, getNodesReadOnly]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return { | 
					
						
							|  |  |  |     doSyncWorkflowDraft, | 
					
						
							|  |  |  |     handleSyncWorkflowDraft, | 
					
						
							|  |  |  |     syncWorkflowDraftWhenPageClose, | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } |