From 615c7b30ba30e958f736e90ae9e0acde82a0fc76 Mon Sep 17 00:00:00 2001 From: shixiaohua Date: Sun, 28 Jan 2024 11:48:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=9D=E5=AD=98=E6=96=87=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/comment/TopMenu.js | 2 +- src/components/ItemTree/index.jsx | 5 +++- src/pages/Note/Hlexical/index.jsx | 46 +++++++++++++++++++++++++++---- 3 files changed, 45 insertions(+), 8 deletions(-) diff --git a/src/comment/TopMenu.js b/src/comment/TopMenu.js index 4d1c74b..6f7544f 100644 --- a/src/comment/TopMenu.js +++ b/src/comment/TopMenu.js @@ -22,7 +22,7 @@ exports.menuRebuild = (mainWindow) => { : []), // { role: 'fileMenu' } { - label: 'File', + label: '文件', submenu: [ { label: '打开目录', diff --git a/src/components/ItemTree/index.jsx b/src/components/ItemTree/index.jsx index 7c97dd4..902e1f0 100644 --- a/src/components/ItemTree/index.jsx +++ b/src/components/ItemTree/index.jsx @@ -64,7 +64,10 @@ const ItemTree = () => { useEffect(() => { store.subscribe(() => { let fileDirDate = store.getState().dirMessage.data; - console.log("打开目录fileDirDate:", fileDirDate) + if (fileDirDate.length===0){ + return + } + console.log("打开目录1fileDirDate:", fileDirDate) for (let i = 0; i < fileDirDate.length; i++) { const node = fileDirDate[i]; console.log("node:", node) diff --git a/src/pages/Note/Hlexical/index.jsx b/src/pages/Note/Hlexical/index.jsx index 2079e01..7829965 100644 --- a/src/pages/Note/Hlexical/index.jsx +++ b/src/pages/Note/Hlexical/index.jsx @@ -28,9 +28,10 @@ import {CLEAR_HISTORY_COMMAND} from "lexical"; import ActionPlugin from "../../../components/ActionPlug" import {func} from "prop-types"; import store from "../../../redux/store"; -import {useSelector} from 'react-redux' + import {SAVE} from "../../../utils/HotkeyConst"; import md5 from "md5" +import {isEmpty} from "../../../utils/ObjectUtils"; function Placeholder() { return
Enter some rich text...
; @@ -85,15 +86,22 @@ function ImportFilePlugin(props) { } function SaveFilePlugin(props) { - const [editor] = useLexicalComposerContext(); useEffect(() => { store.subscribe(() => { + console.log("触发保存") let data = store.getState().pushHotkeys.data; - const editorState = {"editorState":editor.getEditorState()}; + console.log("props.editorState",props.editorState) + if (isEmpty(props.editorState)){ + return + } + const editorState = {"editorState":JSON.parse(props.editorState)}; let resultSave = JSON.stringify(editorState); + console.log("data === SAVE",data,SAVE,data === SAVE) if (data === SAVE) { importFile(props.filePath).then(value => { - if (md5(resultSave)!==md5(JSON.stringify(JSON.parse(value.toString())))){ + let save = md5(resultSave)!==md5(JSON.stringify(JSON.parse(value.toString()))); + console.log("md5(resultSave)!==md5(JSON.stringify(JSON.parse(value.toString())))",resultSave,save) + if (save){ console.log("保存重写") overWriteFile(props.filePath, resultSave) } @@ -103,7 +111,7 @@ function SaveFilePlugin(props) { } }) - }, editor) + }, props) } // 从字符串化 JSON 设置编辑器状态 @@ -122,6 +130,32 @@ export default function Hlexical(props) { setEditorState(JSON.stringify(editorStateJSON)); } + store.subscribe(() => { + console.log("触发保存") + let data = store.getState().pushHotkeys.data; + console.log("props.editorState",editorState) + if (isEmpty(editorState)){ + return + } + const editorStateSave = {"editorState":JSON.parse(editorState)}; + console.log("editorStateSave",editorStateSave) + let resultSave = JSON.stringify(editorStateSave); + console.log("data === SAVE",resultSave,data === SAVE) + if (data === SAVE) { + importFile(props.filePath).then(value => { + let save = md5(resultSave)!==md5(JSON.stringify(JSON.parse(value.toString()))); + console.log("md5(resultSave)!==md5(JSON.stringify(JSON.parse(value.toString())))",resultSave,save) + if (save){ + console.log("保存重写") + overWriteFile(props.filePath, resultSave) + } + }).catch(error => + console.error(error) + ) + + } + }) + return (
@@ -145,7 +179,7 @@ export default function Hlexical(props) { - + {/**/} {/**/}