Spaces:
Build error
Build error
import { useCallback } from 'react' | |
import type { EditorState } from 'lexical' | |
import { WorkflowHistoryEvent, useNodeDataUpdate, useWorkflowHistory } from '../hooks' | |
import type { NoteTheme } from './types' | |
export const useNote = (id: string) => { | |
const { handleNodeDataUpdateWithSyncDraft } = useNodeDataUpdate() | |
const { saveStateToHistory } = useWorkflowHistory() | |
const handleThemeChange = useCallback((theme: NoteTheme) => { | |
handleNodeDataUpdateWithSyncDraft({ id, data: { theme } }) | |
saveStateToHistory(WorkflowHistoryEvent.NoteChange) | |
}, [handleNodeDataUpdateWithSyncDraft, id, saveStateToHistory]) | |
const handleEditorChange = useCallback((editorState: EditorState) => { | |
if (!editorState?.isEmpty()) | |
handleNodeDataUpdateWithSyncDraft({ id, data: { text: JSON.stringify(editorState) } }) | |
else | |
handleNodeDataUpdateWithSyncDraft({ id, data: { text: '' } }) | |
}, [handleNodeDataUpdateWithSyncDraft, id]) | |
const handleShowAuthorChange = useCallback((showAuthor: boolean) => { | |
handleNodeDataUpdateWithSyncDraft({ id, data: { showAuthor } }) | |
saveStateToHistory(WorkflowHistoryEvent.NoteChange) | |
}, [handleNodeDataUpdateWithSyncDraft, id, saveStateToHistory]) | |
return { | |
handleThemeChange, | |
handleEditorChange, | |
handleShowAuthorChange, | |
} | |
} | |