From 4d8cad601ed85afe18806820c358e61aef7ecdb9 Mon Sep 17 00:00:00 2001 From: MTG2000 Date: Wed, 27 Apr 2022 17:09:01 +0300 Subject: [PATCH] fix: improve the texteditor save module --- .../Inputs/TextEditor/SaveModule.tsx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Components/Inputs/TextEditor/SaveModule.tsx b/src/Components/Inputs/TextEditor/SaveModule.tsx index 16b2054..f1bd449 100644 --- a/src/Components/Inputs/TextEditor/SaveModule.tsx +++ b/src/Components/Inputs/TextEditor/SaveModule.tsx @@ -1,29 +1,29 @@ -import React, { useCallback } from 'react' - -import { EditorComponent, Remirror, useHelpers, useRemirror, useEvent, useEditorState } from '@remirror/react'; +import { useHelpers, useEvent, useRemirrorContext } from '@remirror/react'; import { Control, useController } from 'react-hook-form'; +import { useDebouncedCallback } from '@react-hookz/web'; interface Props { control?: Control, name?: string, - } export default function SaveModule(props: Props) { - const state = useEditorState() - const { getMarkdown } = useHelpers(); const { field: { onChange, onBlur } } = useController({ control: props.control, name: props.name ?? 'content' }) - const listener = (d: any) => { - onChange(getMarkdown(state)); - onBlur() - }; + const { getMarkdown } = useHelpers(); - useEvent('blur', listener) + const changeCallback = useDebouncedCallback(ctx => { + const { state } = ctx; + onChange(getMarkdown(state)); + }, [], 500) + + useRemirrorContext(changeCallback) + + useEvent('blur', () => onBlur()) return <> }