diff --git a/src/components/ItemTree/CloseDir/index.jsx b/src/components/ItemTree/CloseDir/index.jsx index 7d3c09e..d2e85b1 100644 --- a/src/components/ItemTree/CloseDir/index.jsx +++ b/src/components/ItemTree/CloseDir/index.jsx @@ -8,8 +8,7 @@ function CloseDir (prop) { const dispatch = useDispatch() const closeDir = ()=>{ dispatch(dirRemove({selectDirKey: prop.filePath})) - prop.closeMenu() } - return 关闭目录 + return 关闭目录 } export default CloseDir; \ No newline at end of file diff --git a/src/components/ItemTree/DirAddDir/index.jsx b/src/components/ItemTree/DirAddDir/index.jsx index c4f412d..f5f6c69 100644 --- a/src/components/ItemTree/DirAddDir/index.jsx +++ b/src/components/ItemTree/DirAddDir/index.jsx @@ -34,15 +34,13 @@ const DirAddDir = (prop) => { // 更新树 dispatch(dirDirAdd({"filePath":filePath,"fileDir":prop.fileDir,fileName})) setIsModalOpen(false); - prop.closeMenu() }; const handleCancel = () => { setIsModalOpen(false); - prop.closeMenu() }; return <> {contextHolder} - 添加文件夹 + 添加文件夹 diff --git a/src/components/ItemTree/DirAddFile/index.jsx b/src/components/ItemTree/DirAddFile/index.jsx index 7d8e7b8..96e6d5a 100644 --- a/src/components/ItemTree/DirAddFile/index.jsx +++ b/src/components/ItemTree/DirAddFile/index.jsx @@ -28,7 +28,7 @@ const DirAddFile = (prop) => { return } // 新建文件 - let fileName = inputValue.current.input.value+".lexical"; + let fileName = inputValue.current.input.value+prop.fileExt; let filePath = fullFileNameFormat(prop.fileDir,fileName) newFile(filePath) // 更新树 @@ -41,15 +41,13 @@ const DirAddFile = (prop) => { activeKey: filePath })) setIsModalOpen(false); - prop.closeMenu() }; const handleCancel = () => { setIsModalOpen(false); - prop.closeMenu() }; return <> {contextHolder} - 添加文件 + {prop.fileExt} diff --git a/src/components/ItemTree/DirDeleteFile/index.jsx b/src/components/ItemTree/DirDeleteFile/index.jsx index c5152e6..2de6ee2 100644 --- a/src/components/ItemTree/DirDeleteFile/index.jsx +++ b/src/components/ItemTree/DirDeleteFile/index.jsx @@ -34,11 +34,9 @@ const DirDeleteFile = (prop) => { } } dispatch(setActiveKey({"activeKey":newActiveKey})); - prop.closeMenu() }; const cancelDeleteFile = () => { - prop.closeMenu() }; return { okText="确认" cancelText="取消" > - 删除文件 + 删除文件 ; }; export default DirDeleteFile; \ No newline at end of file diff --git a/src/components/ItemTree/RefreshDir/index.jsx b/src/components/ItemTree/RefreshDir/index.jsx index 23b62c3..3f05338 100644 --- a/src/components/ItemTree/RefreshDir/index.jsx +++ b/src/components/ItemTree/RefreshDir/index.jsx @@ -2,11 +2,11 @@ import React from 'react'; const RefreshDir = (prop) => { console.log("RefreshDir:prop", prop) const refreshDir = () => { + console.log("RefreshDir:refreshDir", prop) prop.refreshDir(prop.filePath) - prop.closeMenu() }; return ( - 更新目录 + 更新目录 ); }; export default RefreshDir; \ No newline at end of file diff --git a/src/components/ItemTree/UpdateFileName/index.jsx b/src/components/ItemTree/UpdateFileName/index.jsx index 703e109..b2fdeed 100644 --- a/src/components/ItemTree/UpdateFileName/index.jsx +++ b/src/components/ItemTree/UpdateFileName/index.jsx @@ -30,15 +30,13 @@ const UpdateFileName = (prop) => { dispatch(updateFileNameBar({"oldFilePath":prop.filePath,"newFilePath":newFilePath})) } - prop.closeMenu() }; const handleCancel = () => { setIsModalOpen(false); - prop.closeMenu() }; return ( <> - 修改文件名 + 修改文件名 diff --git a/src/components/ItemTree/index.jsx b/src/components/ItemTree/index.jsx index ffa2a02..7e783ac 100644 --- a/src/components/ItemTree/index.jsx +++ b/src/components/ItemTree/index.jsx @@ -2,7 +2,7 @@ import React, {Fragment, useEffect, useMemo, useState} from 'react'; import {Input, Menu, Tree} from 'antd'; import {FolderOutlined, FileMarkdownOutlined, FileOutlined} from '@ant-design/icons'; import "./index.less" -import {getFileNameByPath} from "../../utils/PathOperate"; +import {getFileDirByPath, getFileFullNameByPath, getFileNameByPath} from "../../utils/PathOperate"; const {Search} = Input; import {useSelector, useDispatch} from "react-redux"; import {addExpandedKeys, addTableBarItem, setExpandedKeys} from "../../redux/tableBarItem_reducer"; @@ -49,6 +49,12 @@ const getParentKey = (key, tree) => { return parentKey; }; +const menuItemClickMap = new Map(); +menuItemClickMap.set('1', ); +menuItemClickMap.set('b', 2); +menuItemClickMap.set('c', 3); + + function generateChildList(fileList) { const result = [] for (let i = 0; i < fileList.length; i++) { @@ -100,6 +106,17 @@ const flushTree = (fileDirDate) => { } return defaultValueStateSet; } + +function getMenuItem(key, label, children, icon, type) { + return { + key, + icon, + children, + label, + type, + }; +} + const ItemTree = (prop) => { console.log("prop.filePath:", prop.filePath) const dispatch = useDispatch() @@ -280,37 +297,29 @@ const ItemTree = (prop) => { popupBg: "#ec0f0f", zIndex: "9999" }; - const menuItem = [ - !dirFlag && - - setState("")}/> - , - dirFlag && - - setState("")}/> - , - dirFlag && - - setState("")}/> - , - dirFlag && - - itemTreeAddFile(dirMessage)} closeMenu={() => setState("")}/> - , - !dirFlag && - - setState("")}> - , - dirFlag && - - setState("")}/> - , - {setState("")}}>关闭菜单 - ] + const menuItem = [] + if (dirFlag){ + menuItem.push(getMenuItem('1',)) + menuItem.push(getMenuItem('2',"添加文件",[ + getMenuItem("2-1",), + getMenuItem("2-2",)] + ),null, 'group' + ) + menuItem.push(getMenuItem('3',)) + menuItem.push(getMenuItem('4',)) + }else { + menuItem.push(getMenuItem('5',)) + menuItem.push(getMenuItem('6',)) + } return {createPortal( - - {menuItem} + + { + console.log('onClick',e) + } + } + // onMouseLeave={e => {setState("");}} + items={menuItem}> , document.body )} diff --git a/src/components/ItemTree/index.less b/src/components/ItemTree/index.less index 2e6382e..b409f7a 100644 --- a/src/components/ItemTree/index.less +++ b/src/components/ItemTree/index.less @@ -34,3 +34,16 @@ .HlexicalName { height: 94.5%; } +.ant-menu-item { + margin: 0px !important; +} +.ant-menu-submenu{ + margin: 0px !important; +} +.ant-menu-submenu-title{ + margin: 0px !important; +} +.menuItemClick{ + height: 100%; + display:inline-block; +} \ No newline at end of file diff --git a/src/pages/Note/Hlexical/index.jsx b/src/pages/Note/Hlexical/index.jsx index 4e59245..2e7332b 100644 --- a/src/pages/Note/Hlexical/index.jsx +++ b/src/pages/Note/Hlexical/index.jsx @@ -31,6 +31,7 @@ import {LinkPlugin} from "@lexical/react/LexicalLinkPlugin"; import AutoLinkPlugin from "./plugins/AutoLinkPlugin"; import ListMaxIndentLevelPlugin from "./plugins/ListMaxIndentLevelPlugin"; import CodeHighlightPlugin from "./plugins/CodeHighlightPlugin"; +import {getFileNameByPath} from "../../../utils/PathOperate"; const {ipcRenderer} = window.require('electron') @@ -154,10 +155,15 @@ export default function Hlexical(props) { console.log("saveDialogReturnValuePromise", saveDialogReturnValuePromise) saveDialogReturnValuePromise.then(result => { if (!result.canceled) { - - overWriteFile(result.filePath, resultSave) + let fileKey = getFileNameByPath(result.filePath) + if (isEmpty(fileKey)){ + fileKey = fileKey+".lexical" + } + overWriteFile(fileKey, resultSave) // 修改当前文件名 dispatch(updatedSavedFile({filePath: result.filePath})) + // 文件目录更新 + dispatch() } }) return diff --git a/src/pages/Note/Hlexical/index.less b/src/pages/Note/Hlexical/index.less index 40b0c6f..25103b1 100644 --- a/src/pages/Note/Hlexical/index.less +++ b/src/pages/Note/Hlexical/index.less @@ -59,7 +59,8 @@ body { .editor-inner { background: #fff; position: relative; - height:95% + height:95%; + overflow: hidden auto; } .editor-input { @@ -427,7 +428,6 @@ body { .toolbar .toolbar-item .text { display: flex; line-height: 20px; - width: 200px; vertical-align: middle; font-size: 14px; color: #777; diff --git a/src/pages/Note/index.jsx b/src/pages/Note/index.jsx index 6b79ac1..263ae61 100644 --- a/src/pages/Note/index.jsx +++ b/src/pages/Note/index.jsx @@ -87,7 +87,7 @@ const Note = () => {

上善若水

- { + }, dirRemove:(state,action)=>{ console.log("dirMessage:dirRemove", state, action) @@ -139,7 +142,7 @@ export const dirMessageSlice = createSlice({ let fileName = action.payload.fileName let fileMessage = { "fileName": fileName, - "filePath": fileName, + "filePath": filePath, "dirFlag": true, "children": [] } @@ -251,6 +254,7 @@ function updateFileNameChild(fileList, oldFilePath, newFilePath) { export const { dirAdd, + newFileAdd, nextDirAdd, dirRemove, updateFileName, diff --git a/src/utils/PathOperate/index.jsx b/src/utils/PathOperate/index.jsx index 91b47ee..9394102 100644 --- a/src/utils/PathOperate/index.jsx +++ b/src/utils/PathOperate/index.jsx @@ -3,6 +3,10 @@ const pathOperate = window.require("path") export function getFileNameByPath(fileName){ return pathOperate.parse(fileName).name } + +export function getFileExtByPath(fileName){ + return pathOperate.parse(fileName).ext +} export function getFileFullNameByPath(fileName){ return pathOperate.parse(fileName).base }