From c40c1e3fc94b6e6ee8737bbc3d89363605846fa7 Mon Sep 17 00:00:00 2001 From: Vitaliy Prachov Date: Fri, 29 Oct 2021 10:50:45 +0300 Subject: [PATCH] fix: remove modal after create lesson --- front/src/pages/Teacher/LessonEdit/LessonEdit.jsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/front/src/pages/Teacher/LessonEdit/LessonEdit.jsx b/front/src/pages/Teacher/LessonEdit/LessonEdit.jsx index 7a5b868f..e902b148 100644 --- a/front/src/pages/Teacher/LessonEdit/LessonEdit.jsx +++ b/front/src/pages/Teacher/LessonEdit/LessonEdit.jsx @@ -62,6 +62,7 @@ const LessonEdit = () => { const editorJSRef = useRef(null); const [dataBlocks, setDataBlocks] = useState(null); const undoPluginRef = useRef(null); + const createdLessonBlocks = useRef(null); const currentLocation = useMemo( () => LESSONS_EDIT.replace(':id', lessonId), [lessonId], @@ -89,12 +90,14 @@ const LessonEdit = () => { const createLessonMutation = useMutation(createLesson, { onSuccess: (data) => { - const { id } = data?.lesson; + const { id, blocks } = data?.lesson || {}; history.replace(LESSONS_EDIT.replace(':id', id), { forceSkip: true }); message.success({ content: t('editor_js.message.success_created'), duration: 2, }); + createdLessonBlocks.current = blocks; + setCurrentBlocks(blocks); }, onError: () => { message.error({ @@ -250,7 +253,9 @@ const LessonEdit = () => { }; const isBlocksChanged = useCallback(() => { - const oldBlocks = prepareEditorData(lessonData?.lesson?.blocks); + const oldBlocks = + prepareEditorData(lessonData?.lesson?.blocks) || + createdLessonBlocks.current; // TODO: Compare with fast-deep-equal after adding this library return JSON.stringify(oldBlocks) !== JSON.stringify(currentBlocks); }, [currentBlocks, lessonData?.lesson?.blocks]);