diff --git a/src/pages/Note/Hlexical/index.jsx b/src/pages/Note/Hlexical/index.jsx
index 51e4f05..7a24ec1 100644
--- a/src/pages/Note/Hlexical/index.jsx
+++ b/src/pages/Note/Hlexical/index.jsx
@@ -23,6 +23,8 @@ import {store} from "../../../redux/store";
import {SAVE} from "../../../utils/HotkeyConst";
import md5 from "md5"
import {isEmpty} from "../../../utils/ObjectUtils";
+import {useDispatch} from "react-redux";
+import {updatedSavedFile} from "../../../redux/tableBarItem_reducer";
function Placeholder() {
return
Enter some rich text...
;
@@ -87,6 +89,7 @@ export default function Hlexical(props) {
console.log("this.props.filePath:", props.filePath)
const [editorState, setEditorState] = useState("");
const [lastId ,setLastId]= useState("");
+ const dispstch = useDispatch();
function onChange(editorState) {
// Call toJSON on the EditorState object, which produces a serialization safe string
const editorStateJSON = editorState.toJSON();
@@ -111,9 +114,9 @@ export default function Hlexical(props) {
if (!result.canceled){
const editorStateSave = {"editorState": JSON.parse(props.editorState)};
let resultSave = JSON.stringify(editorStateSave);
- overWriteFile(result.filePath, resultSave)
+ overWriteFile(result.filePath, resultSave)
// 修改当前文件名
-
+ dispstch(updatedSavedFile({filePath:result.filePath}))
}
})
return
@@ -137,7 +140,7 @@ export default function Hlexical(props) {
});
console.log("return unsubscribe();")
return ()=>unsubscribe();
- },[props])
+ },[])
}
diff --git a/src/pages/Note/index.jsx b/src/pages/Note/index.jsx
index abf27c7..3ab2b4c 100644
--- a/src/pages/Note/index.jsx
+++ b/src/pages/Note/index.jsx
@@ -9,7 +9,7 @@ import './index.less'
import {store} from "../../redux/store";
import {isEmpty} from "../../utils/ObjectUtils";
import {useSelector, useDispatch} from "react-redux";
-import {addTableBarItem, removeTableBarItem, setActiveKey} from "../../redux/tableBarItem_reducer"
+import {addTableBarItem, removeTableBarItem, setActiveKey,updatedSavedFile} from "../../redux/tableBarItem_reducer"
const {Header, Sider, Content} = Layout;
const Note = () => {
@@ -40,11 +40,11 @@ const Note = () => {
dispatch(addTableBarItem(
{
label: 'New Tab',
- children: "",
+ // children: "",
key: newActiveKey,
+ activeKey:newActiveKey
}
));
- dispatch(setActiveKey({"activeKey":newActiveKey}));
};
const remove = (targetKey) => {
console.log("remove = (targetKey):",targetKey)
diff --git a/src/redux/store.js b/src/redux/store.js
index 21b0b0d..40b1720 100644
--- a/src/redux/store.js
+++ b/src/redux/store.js
@@ -1,21 +1,15 @@
import {configureStore} from '@reduxjs/toolkit'
import historyReducer from './historyRecord_reducer'
-import redirectReducer from './redirectUrl_reducer'
import dirMessageReducer from './dirMessage_reducer'
import pushHotkeysReducer from "./pushHotkeys_reducer";
import tableBarItemReducer from "./tableBarItem_reducer";
import {electronStorage} from "../utils/LocalStorage";
import { persistStore, persistReducer } from 'redux-persist'
-import {FLUSH, PAUSE, PERSIST, PURGE, REGISTER, REHYDRATE} from "redux-persist/es/constants";
// 持久化配置
const historyRecordPersistConfig = {
key: 'historyRecord',
storage: electronStorage()
}
-const redirectUrlPersistConfig = {
- key: 'redirectUrl',
- storage: electronStorage()
-}
const dirMessagePersistConfig = {
key: 'dirMessage',
storage: electronStorage()
@@ -31,7 +25,6 @@ const tableBarItemPersistConfig = {
const historyRecordPersistedReducer = persistReducer(historyRecordPersistConfig, historyReducer)
-const redirectUrlPersistedReducer = persistReducer(redirectUrlPersistConfig, redirectReducer)
const dirMessagePersistedReducer = persistReducer(dirMessagePersistConfig, dirMessageReducer)
const pushHotkeysPersistedReducer = persistReducer(pushHotkeysPersistConfig, pushHotkeysReducer)
const tableBarItemPersistedReducer = persistReducer(tableBarItemPersistConfig, tableBarItemReducer)
@@ -39,7 +32,6 @@ const tableBarItemPersistedReducer = persistReducer(tableBarItemPersistConfig, t
export const store = configureStore({
reducer: {
historyRecord:historyRecordPersistedReducer,
- redirectUrl:redirectUrlPersistedReducer,
dirMessage:dirMessagePersistedReducer,
pushHotkeys:pushHotkeysPersistedReducer,
tableBarItem:tableBarItemPersistedReducer,
diff --git a/src/redux/tableBarItem_reducer.js b/src/redux/tableBarItem_reducer.js
index 74de520..99b55be 100644
--- a/src/redux/tableBarItem_reducer.js
+++ b/src/redux/tableBarItem_reducer.js
@@ -1,6 +1,14 @@
import { createSlice } from '@reduxjs/toolkit'
import {isEmpty} from "../utils/ObjectUtils";
+/**
+ * {
+ * label: e.node.title,
+ * children: e.node.key,
+ * key: e.node.key,
+ * activeKey:e.node.key
+ * }
+ */
export const tableBarItemSlice = createSlice({
name: 'tableBarItem',
initialState: {
@@ -24,17 +32,34 @@ export const tableBarItemSlice = createSlice({
if (action.payload.activeKey){
state.activeKey=action.payload.activeKey
}
- }
- ,
+ },
setActiveKey: (state, action) => {
console.log("tableBarItemSlice:setActiveKey",action.payload)
if (action.payload.activeKey){
state.activeKey=action.payload.activeKey
}
+ },
+ updatedSavedFile:(state, action)=>{
+ console.log("tableBarItemSlice:updatedSavedFile",action.payload)
+ // 如果其中包含了相同的key,则是文件覆盖。
+ if (state.data.filter(file=>file.key===action.payload.filePath).length>0){
+ state.data= state.data.filter(file=>file.key!==action.payload.filePath)
+ }
+ state.data.forEach(file=>{
+ if (file.key===state.activeKey){
+ file.children=action.payload.filePath;
+ file.key = action.payload.filePath;
+ let split = action.payload.filePath.split("/");
+ console.log("action.payload.filePath.split()",split)
+ file.label =split[split.length-1]
+ }
+ })
+ state.activeKey = action.payload.filePath
}
}
})
export const { addTableBarItem,
removeTableBarItem,
- setActiveKey } = tableBarItemSlice.actions
+ setActiveKey,
+ updatedSavedFile} = tableBarItemSlice.actions
export default tableBarItemSlice.reducer