1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| 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,
| }
| }
|
|