feat:新建文件保存
This commit is contained in:
parent
399fabd282
commit
15408649d0
|
@ -23,6 +23,8 @@ import {store} from "../../../redux/store";
|
||||||
import {SAVE} from "../../../utils/HotkeyConst";
|
import {SAVE} from "../../../utils/HotkeyConst";
|
||||||
import md5 from "md5"
|
import md5 from "md5"
|
||||||
import {isEmpty} from "../../../utils/ObjectUtils";
|
import {isEmpty} from "../../../utils/ObjectUtils";
|
||||||
|
import {useDispatch} from "react-redux";
|
||||||
|
import {updatedSavedFile} from "../../../redux/tableBarItem_reducer";
|
||||||
|
|
||||||
function Placeholder() {
|
function Placeholder() {
|
||||||
return <div className="editor-placeholder">Enter some rich text...</div>;
|
return <div className="editor-placeholder">Enter some rich text...</div>;
|
||||||
|
@ -87,6 +89,7 @@ export default function Hlexical(props) {
|
||||||
console.log("this.props.filePath:", props.filePath)
|
console.log("this.props.filePath:", props.filePath)
|
||||||
const [editorState, setEditorState] = useState("");
|
const [editorState, setEditorState] = useState("");
|
||||||
const [lastId ,setLastId]= useState("");
|
const [lastId ,setLastId]= useState("");
|
||||||
|
const dispstch = useDispatch();
|
||||||
function onChange(editorState) {
|
function onChange(editorState) {
|
||||||
// Call toJSON on the EditorState object, which produces a serialization safe string
|
// Call toJSON on the EditorState object, which produces a serialization safe string
|
||||||
const editorStateJSON = editorState.toJSON();
|
const editorStateJSON = editorState.toJSON();
|
||||||
|
@ -113,7 +116,7 @@ export default function Hlexical(props) {
|
||||||
let resultSave = JSON.stringify(editorStateSave);
|
let resultSave = JSON.stringify(editorStateSave);
|
||||||
overWriteFile(result.filePath, resultSave)
|
overWriteFile(result.filePath, resultSave)
|
||||||
// 修改当前文件名
|
// 修改当前文件名
|
||||||
|
dispstch(updatedSavedFile({filePath:result.filePath}))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
|
@ -137,7 +140,7 @@ export default function Hlexical(props) {
|
||||||
});
|
});
|
||||||
console.log("return unsubscribe();")
|
console.log("return unsubscribe();")
|
||||||
return ()=>unsubscribe();
|
return ()=>unsubscribe();
|
||||||
},[props])
|
},[])
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ import './index.less'
|
||||||
import {store} from "../../redux/store";
|
import {store} from "../../redux/store";
|
||||||
import {isEmpty} from "../../utils/ObjectUtils";
|
import {isEmpty} from "../../utils/ObjectUtils";
|
||||||
import {useSelector, useDispatch} from "react-redux";
|
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 {Header, Sider, Content} = Layout;
|
||||||
const Note = () => {
|
const Note = () => {
|
||||||
|
@ -40,11 +40,11 @@ const Note = () => {
|
||||||
dispatch(addTableBarItem(
|
dispatch(addTableBarItem(
|
||||||
{
|
{
|
||||||
label: 'New Tab',
|
label: 'New Tab',
|
||||||
children: "",
|
// children: "",
|
||||||
key: newActiveKey,
|
key: newActiveKey,
|
||||||
|
activeKey:newActiveKey
|
||||||
}
|
}
|
||||||
));
|
));
|
||||||
dispatch(setActiveKey({"activeKey":newActiveKey}));
|
|
||||||
};
|
};
|
||||||
const remove = (targetKey) => {
|
const remove = (targetKey) => {
|
||||||
console.log("remove = (targetKey):",targetKey)
|
console.log("remove = (targetKey):",targetKey)
|
||||||
|
|
|
@ -1,21 +1,15 @@
|
||||||
import {configureStore} from '@reduxjs/toolkit'
|
import {configureStore} from '@reduxjs/toolkit'
|
||||||
import historyReducer from './historyRecord_reducer'
|
import historyReducer from './historyRecord_reducer'
|
||||||
import redirectReducer from './redirectUrl_reducer'
|
|
||||||
import dirMessageReducer from './dirMessage_reducer'
|
import dirMessageReducer from './dirMessage_reducer'
|
||||||
import pushHotkeysReducer from "./pushHotkeys_reducer";
|
import pushHotkeysReducer from "./pushHotkeys_reducer";
|
||||||
import tableBarItemReducer from "./tableBarItem_reducer";
|
import tableBarItemReducer from "./tableBarItem_reducer";
|
||||||
import {electronStorage} from "../utils/LocalStorage";
|
import {electronStorage} from "../utils/LocalStorage";
|
||||||
import { persistStore, persistReducer } from 'redux-persist'
|
import { persistStore, persistReducer } from 'redux-persist'
|
||||||
import {FLUSH, PAUSE, PERSIST, PURGE, REGISTER, REHYDRATE} from "redux-persist/es/constants";
|
|
||||||
// 持久化配置
|
// 持久化配置
|
||||||
const historyRecordPersistConfig = {
|
const historyRecordPersistConfig = {
|
||||||
key: 'historyRecord',
|
key: 'historyRecord',
|
||||||
storage: electronStorage()
|
storage: electronStorage()
|
||||||
}
|
}
|
||||||
const redirectUrlPersistConfig = {
|
|
||||||
key: 'redirectUrl',
|
|
||||||
storage: electronStorage()
|
|
||||||
}
|
|
||||||
const dirMessagePersistConfig = {
|
const dirMessagePersistConfig = {
|
||||||
key: 'dirMessage',
|
key: 'dirMessage',
|
||||||
storage: electronStorage()
|
storage: electronStorage()
|
||||||
|
@ -31,7 +25,6 @@ const tableBarItemPersistConfig = {
|
||||||
|
|
||||||
|
|
||||||
const historyRecordPersistedReducer = persistReducer(historyRecordPersistConfig, historyReducer)
|
const historyRecordPersistedReducer = persistReducer(historyRecordPersistConfig, historyReducer)
|
||||||
const redirectUrlPersistedReducer = persistReducer(redirectUrlPersistConfig, redirectReducer)
|
|
||||||
const dirMessagePersistedReducer = persistReducer(dirMessagePersistConfig, dirMessageReducer)
|
const dirMessagePersistedReducer = persistReducer(dirMessagePersistConfig, dirMessageReducer)
|
||||||
const pushHotkeysPersistedReducer = persistReducer(pushHotkeysPersistConfig, pushHotkeysReducer)
|
const pushHotkeysPersistedReducer = persistReducer(pushHotkeysPersistConfig, pushHotkeysReducer)
|
||||||
const tableBarItemPersistedReducer = persistReducer(tableBarItemPersistConfig, tableBarItemReducer)
|
const tableBarItemPersistedReducer = persistReducer(tableBarItemPersistConfig, tableBarItemReducer)
|
||||||
|
@ -39,7 +32,6 @@ const tableBarItemPersistedReducer = persistReducer(tableBarItemPersistConfig, t
|
||||||
export const store = configureStore({
|
export const store = configureStore({
|
||||||
reducer: {
|
reducer: {
|
||||||
historyRecord:historyRecordPersistedReducer,
|
historyRecord:historyRecordPersistedReducer,
|
||||||
redirectUrl:redirectUrlPersistedReducer,
|
|
||||||
dirMessage:dirMessagePersistedReducer,
|
dirMessage:dirMessagePersistedReducer,
|
||||||
pushHotkeys:pushHotkeysPersistedReducer,
|
pushHotkeys:pushHotkeysPersistedReducer,
|
||||||
tableBarItem:tableBarItemPersistedReducer,
|
tableBarItem:tableBarItemPersistedReducer,
|
||||||
|
|
|
@ -1,6 +1,14 @@
|
||||||
import { createSlice } from '@reduxjs/toolkit'
|
import { createSlice } from '@reduxjs/toolkit'
|
||||||
import {isEmpty} from "../utils/ObjectUtils";
|
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({
|
export const tableBarItemSlice = createSlice({
|
||||||
name: 'tableBarItem',
|
name: 'tableBarItem',
|
||||||
initialState: {
|
initialState: {
|
||||||
|
@ -24,17 +32,34 @@ export const tableBarItemSlice = createSlice({
|
||||||
if (action.payload.activeKey){
|
if (action.payload.activeKey){
|
||||||
state.activeKey=action.payload.activeKey
|
state.activeKey=action.payload.activeKey
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
,
|
|
||||||
setActiveKey: (state, action) => {
|
setActiveKey: (state, action) => {
|
||||||
console.log("tableBarItemSlice:setActiveKey",action.payload)
|
console.log("tableBarItemSlice:setActiveKey",action.payload)
|
||||||
if (action.payload.activeKey){
|
if (action.payload.activeKey){
|
||||||
state.activeKey=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,
|
export const { addTableBarItem,
|
||||||
removeTableBarItem,
|
removeTableBarItem,
|
||||||
setActiveKey } = tableBarItemSlice.actions
|
setActiveKey,
|
||||||
|
updatedSavedFile} = tableBarItemSlice.actions
|
||||||
export default tableBarItemSlice.reducer
|
export default tableBarItemSlice.reducer
|
||||||
|
|
Loading…
Reference in New Issue