| import { useCallback } from 'react' | |
| import { generateNewNode } from '../utils' | |
| import { useWorkflowStore } from '../store' | |
| import type { NoteNodeType } from '../note-node/types' | |
| import { CUSTOM_NOTE_NODE } from '../note-node/constants' | |
| import { NoteTheme } from '../note-node/types' | |
| import { useAppContext } from '@/context/app-context' | |
| export const useOperator = () => { | |
| const workflowStore = useWorkflowStore() | |
| const { userProfile } = useAppContext() | |
| const handleAddNote = useCallback(() => { | |
| const { newNode } = generateNewNode({ | |
| type: CUSTOM_NOTE_NODE, | |
| data: { | |
| title: '', | |
| desc: '', | |
| type: '' as any, | |
| text: '', | |
| theme: NoteTheme.blue, | |
| author: userProfile?.name || '', | |
| showAuthor: true, | |
| width: 240, | |
| height: 88, | |
| _isCandidate: true, | |
| } as NoteNodeType, | |
| position: { | |
| x: 0, | |
| y: 0, | |
| }, | |
| }) | |
| workflowStore.setState({ | |
| candidateNode: newNode, | |
| }) | |
| }, [workflowStore, userProfile]) | |
| return { | |
| handleAddNote, | |
| } | |
| } | |