From 8a396e97dc9a636c04c5a964910d6d7072899230 Mon Sep 17 00:00:00 2001 From: Geoffrey MERRAN Date: Mon, 5 Sep 2022 23:09:00 +0100 Subject: [PATCH 1/4] feat(editor): add markdown editor and markdown editor with preview --- .../MarkdownEditor/MarkdownEditor.tsx | 30 +++ .../NFTArticle/NFTArticleEditor.module.scss | 84 ++++++++ src/components/NFTArticle/NFTArticleEditor.ts | 3 - .../NFTArticle/NFTArticleEditor.tsx | 182 ++++++++++++++++++ .../SlateEditor/Plugins/SlateMediaPlugin.ts | 30 ++- .../NFTArticle/SlateEditor/index.tsx | 2 +- .../Article/Editor/ArticleEditor.tsx | 62 ++---- .../Article/Editor/AutosaveArticle.tsx | 2 +- src/containers/Article/Editor/EditorMedia.tsx | 57 ++++-- .../Article/Editor/EditorMedias.module.scss | 4 + src/containers/Article/PageArticle.tsx | 1 - src/utils/debounce.ts | 14 +- 12 files changed, 404 insertions(+), 67 deletions(-) create mode 100644 src/components/NFTArticle/MarkdownEditor/MarkdownEditor.tsx create mode 100644 src/components/NFTArticle/NFTArticleEditor.module.scss delete mode 100644 src/components/NFTArticle/NFTArticleEditor.ts create mode 100644 src/components/NFTArticle/NFTArticleEditor.tsx diff --git a/src/components/NFTArticle/MarkdownEditor/MarkdownEditor.tsx b/src/components/NFTArticle/MarkdownEditor/MarkdownEditor.tsx new file mode 100644 index 000000000..73249ab50 --- /dev/null +++ b/src/components/NFTArticle/MarkdownEditor/MarkdownEditor.tsx @@ -0,0 +1,30 @@ +import React, { ChangeEventHandler, FocusEventHandler, memo } from 'react'; +import useInit from "../../../hooks/useInit"; + +interface MarkdownEditorProps { + className?: string + value?: string + onChange?: ChangeEventHandler + onBlur?: FocusEventHandler + placeholder?: string + onInit?: (markdown: string) => void +} + +const _MarkdownEditor = ({ className, value, onChange, onBlur, placeholder, onInit }: MarkdownEditorProps) => { + useInit(() => { + if (onInit) { + onInit(value || ''); + } + }) + return ( +