| 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, |
| } |
| } |
|
|