diff --git a/packages/blocks-editor/src/Editor/BlocksEditorComposer.tsx b/packages/blocks-editor/src/Editor/BlocksEditorComposer.tsx index 5d334c9bc..764c108c9 100644 --- a/packages/blocks-editor/src/Editor/BlocksEditorComposer.tsx +++ b/packages/blocks-editor/src/Editor/BlocksEditorComposer.tsx @@ -5,7 +5,7 @@ import {BlockEditorNodes} from '../Lexical/Nodes/AllNodes'; import {Klass, LexicalNode} from 'lexical'; type BlocksEditorComposerProps = { - initialValue: string; + initialValue: string | undefined; children: React.ReactNode; nodes?: Array>; readonly?: boolean; diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ImportPlugin/ImportPlugin.tsx b/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ImportPlugin/ImportPlugin.tsx index 87f4512ab..f91b0b093 100644 --- a/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ImportPlugin/ImportPlugin.tsx +++ b/packages/web/src/javascripts/Components/NoteView/SuperEditor/Plugins/ImportPlugin/ImportPlugin.tsx @@ -9,6 +9,11 @@ export default function ImportPlugin({ text, format }: { text: string; format: ' const [editor] = useLexicalComposerContext() useEffect(() => { + const dontAllowConversionOfEmptyStringWhichWouldResultInError = text.length === 0 + if (dontAllowConversionOfEmptyStringWhichWouldResultInError) { + return + } + editor.update(() => { if (format === 'md') { $convertFromMarkdownString(text, [...TRANSFORMERS]) diff --git a/packages/web/src/javascripts/Components/NoteView/SuperEditor/SuperNoteImporter.tsx b/packages/web/src/javascripts/Components/NoteView/SuperEditor/SuperNoteImporter.tsx index d207542a7..14f212790 100644 --- a/packages/web/src/javascripts/Components/NoteView/SuperEditor/SuperNoteImporter.tsx +++ b/packages/web/src/javascripts/Components/NoteView/SuperEditor/SuperNoteImporter.tsx @@ -25,6 +25,7 @@ type Props = { } export const SuperNoteImporter: FunctionComponent = ({ note, application, closeDialog, onConvertComplete }) => { + const isSeamlessConvert = note.text.length === 0 const [lastValue, setLastValue] = useState({ text: '', previewPlain: '' }) const format = @@ -51,16 +52,18 @@ export const SuperNoteImporter: FunctionComponent = ({ note, application, ) const confirmConvert = useCallback(async () => { - await performConvert(lastValue.text, lastValue.previewPlain) closeDialog() + + await performConvert(lastValue.text, lastValue.previewPlain) + onConvertComplete() }, [closeDialog, performConvert, onConvertComplete, lastValue]) useEffect(() => { - if (note.text.length === 0) { + if (isSeamlessConvert) { void confirmConvert() } - }, [note, confirmConvert]) + }, [isSeamlessConvert, confirmConvert]) const convertAsIs = useCallback(async () => { const confirmed = await application.alertService.confirm( @@ -75,12 +78,17 @@ export const SuperNoteImporter: FunctionComponent = ({ note, application, return } + closeDialog() + await performConvert(note.text, note.preview_plain) - closeDialog() onConvertComplete() }, [closeDialog, application, note, onConvertComplete, performConvert]) + if (isSeamlessConvert) { + return null + } + return ( @@ -93,7 +101,7 @@ export const SuperNoteImporter: FunctionComponent = ({ note, application,
- +