feat:搜索后展开所在目录
This commit is contained in:
parent
1247134435
commit
ebbb784f21
|
@ -17,7 +17,6 @@ import DirDeleteFile from "./DirDeleteFile";
|
||||||
import DirAddDir from "./DirAddDir";
|
import DirAddDir from "./DirAddDir";
|
||||||
import {createPortal} from "react-dom";
|
import {createPortal} from "react-dom";
|
||||||
import {isArray} from "@craco/craco/lib/utils";
|
import {isArray} from "@craco/craco/lib/utils";
|
||||||
// const defaultData = [];
|
|
||||||
// 将树平铺用于查找
|
// 将树平铺用于查找
|
||||||
const dataList = [];
|
const dataList = [];
|
||||||
const generateList = (data) => {
|
const generateList = (data) => {
|
||||||
|
@ -26,7 +25,7 @@ const generateList = (data) => {
|
||||||
const {key, title, icon} = node;
|
const {key, title, icon} = node;
|
||||||
dataList.push({
|
dataList.push({
|
||||||
key,
|
key,
|
||||||
title,
|
"title":title.props.children,
|
||||||
icon
|
icon
|
||||||
});
|
});
|
||||||
if (node.children) {
|
if (node.children) {
|
||||||
|
@ -34,7 +33,7 @@ const generateList = (data) => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
// generateList(defaultData);
|
|
||||||
const getParentKey = (key, tree) => {
|
const getParentKey = (key, tree) => {
|
||||||
let parentKey;
|
let parentKey;
|
||||||
for (let i = 0; i < tree.length; i++) {
|
for (let i = 0; i < tree.length; i++) {
|
||||||
|
@ -50,12 +49,6 @@ const getParentKey = (key, tree) => {
|
||||||
return parentKey;
|
return parentKey;
|
||||||
};
|
};
|
||||||
|
|
||||||
const menuItemClickMap = new Map();
|
|
||||||
menuItemClickMap.set('1', <DirAddDir/>);
|
|
||||||
menuItemClickMap.set('b', 2);
|
|
||||||
menuItemClickMap.set('c', 3);
|
|
||||||
|
|
||||||
|
|
||||||
function generateChildList(fileList) {
|
function generateChildList(fileList) {
|
||||||
const result = []
|
const result = []
|
||||||
for (let i = 0; i < fileList.length; i++) {
|
for (let i = 0; i < fileList.length; i++) {
|
||||||
|
@ -170,6 +163,7 @@ const ItemTree = (prop) => {
|
||||||
const [autoExpandParent, setAutoExpandParent] = useState(false);
|
const [autoExpandParent, setAutoExpandParent] = useState(false);
|
||||||
// let filePath = useSelector(state => state.dirMessage.data);
|
// let filePath = useSelector(state => state.dirMessage.data);
|
||||||
const [defaultValueState, setDefaultValueState] = useState(flushTree(prop.filePath));
|
const [defaultValueState, setDefaultValueState] = useState(flushTree(prop.filePath));
|
||||||
|
generateList(defaultValueState);
|
||||||
const [state, setState] = useState();
|
const [state, setState] = useState();
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setDefaultValueState(flushTree(prop.filePath))
|
setDefaultValueState(flushTree(prop.filePath))
|
||||||
|
@ -190,36 +184,6 @@ const ItemTree = (prop) => {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const itemTreeAddFile = (dirMessage)=>{
|
|
||||||
setDefaultValueState(flushTree(dirMessage))
|
|
||||||
// return
|
|
||||||
// let newFile = {
|
|
||||||
// "fileName": getFileFullNameByPath(filePath),
|
|
||||||
// "filePath": filePath,
|
|
||||||
// "dirFlag": false,
|
|
||||||
// "children": []
|
|
||||||
// }
|
|
||||||
// // 查找对应的目录并添加信息
|
|
||||||
// let fileDir = getFileDirByPath(filePath)
|
|
||||||
// let updateValueState = [...prop.filePath]
|
|
||||||
// updateValueState.forEach(file=>{
|
|
||||||
// if (fileDir===file.filePath && file.dirFlag){
|
|
||||||
// file.children=[...file.children,newFile]
|
|
||||||
// } else if (fileDir.startsWith(file.filePath) && file.dirFlag ){
|
|
||||||
// treeItemChildAddFile(file.children,newFile,fileDir)
|
|
||||||
// }
|
|
||||||
// })
|
|
||||||
// setDefaultValueState(flushTree(updateValueState))
|
|
||||||
}
|
|
||||||
function treeItemChildAddFile(treeItemList,newFile,fileDir){
|
|
||||||
treeItemList.forEach(file=>{
|
|
||||||
if (fileDir===file.filePath && file.dirFlag){
|
|
||||||
file.children=[...file.children,newFile]
|
|
||||||
} else if (fileDir.startsWith(file.filePath) && file.dirFlag){
|
|
||||||
treeItemChildAddFile(file.children,newFile,fileDir)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
const onChange = (e) => {
|
const onChange = (e) => {
|
||||||
const {value} = e.target;
|
const {value} = e.target;
|
||||||
|
|
|
@ -100,7 +100,7 @@ export default function ContextMenuPlugin(){
|
||||||
|
|
||||||
const items = await navigator.clipboard.read();
|
const items = await navigator.clipboard.read();
|
||||||
const item = items[0];
|
const item = items[0];
|
||||||
|
console.log("navigator.clipboard.read:item",item)
|
||||||
const permission = await navigator.permissions.query({
|
const permission = await navigator.permissions.query({
|
||||||
// @ts-expect-error These types are incorrect.
|
// @ts-expect-error These types are incorrect.
|
||||||
name: 'clipboard-read',
|
name: 'clipboard-read',
|
||||||
|
@ -109,7 +109,7 @@ export default function ContextMenuPlugin(){
|
||||||
alert('Not allowed to paste from clipboard.');
|
alert('Not allowed to paste from clipboard.');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// 图片 image/png
|
||||||
for (const type of item.types) {
|
for (const type of item.types) {
|
||||||
const dataString = await (await item.getType(type)).text();
|
const dataString = await (await item.getType(type)).text();
|
||||||
data.setData(type, dataString);
|
data.setData(type, dataString);
|
||||||
|
|
|
@ -86,16 +86,18 @@ const SaveFilePlugin=(props)=> {
|
||||||
|
|
||||||
// 后期不再读取文件,直接读取文件MD5
|
// 后期不再读取文件,直接读取文件MD5
|
||||||
importFile(filePath).then(value => {
|
importFile(filePath).then(value => {
|
||||||
let save
|
let save =true;
|
||||||
let oldFileMd5
|
let oldFileMd5
|
||||||
let newFileMd5 =md5(resultSave)
|
let newFileMd5 =md5(resultSave)
|
||||||
if (props.filePath.endsWith(".md")){
|
if (!value){
|
||||||
// editorState
|
if (props.filePath.endsWith(".md")){
|
||||||
oldFileMd5 = md5(value.toString());
|
// editorState
|
||||||
save = (isEmpty(value)) || newFileMd5 !== oldFileMd5;
|
oldFileMd5 = md5(value.toString());
|
||||||
}else {
|
save = (isEmpty(value)) || newFileMd5 !== oldFileMd5;
|
||||||
oldFileMd5 = md5(JSON.stringify(JSON.parse(value.toString())));
|
}else {
|
||||||
save = (isEmpty(value)) || newFileMd5 !== oldFileMd5;
|
oldFileMd5 = md5(JSON.stringify(JSON.parse(value.toString())));
|
||||||
|
save = (isEmpty(value)) || newFileMd5 !== oldFileMd5;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (save) {
|
if (save) {
|
||||||
overWriteFile(filePath, resultSave).then(()=>{
|
overWriteFile(filePath, resultSave).then(()=>{
|
||||||
|
|
|
@ -375,6 +375,7 @@ function BlockOptionsDropdownList({
|
||||||
};
|
};
|
||||||
|
|
||||||
const formatCode = () => {
|
const formatCode = () => {
|
||||||
|
console.log('blockType !== "code"',blockType)
|
||||||
if (blockType !== "code") {
|
if (blockType !== "code") {
|
||||||
editor.update(() => {
|
editor.update(() => {
|
||||||
const selection = $getSelection();
|
const selection = $getSelection();
|
||||||
|
@ -528,7 +529,7 @@ export default function ToolbarPlugin() {
|
||||||
);
|
);
|
||||||
}, [editor, updateToolbar]);
|
}, [editor, updateToolbar]);
|
||||||
|
|
||||||
const codeLanguges = useMemo(() => getCodeLanguages(), []);
|
const codeLanguages = useMemo(() => getCodeLanguages(), []);
|
||||||
const onCodeLanguageSelect = useCallback(
|
const onCodeLanguageSelect = useCallback(
|
||||||
(e) => {
|
(e) => {
|
||||||
editor.update(() => {
|
editor.update(() => {
|
||||||
|
@ -605,7 +606,7 @@ export default function ToolbarPlugin() {
|
||||||
<Select
|
<Select
|
||||||
className="toolbar-item code-language"
|
className="toolbar-item code-language"
|
||||||
onChange={onCodeLanguageSelect}
|
onChange={onCodeLanguageSelect}
|
||||||
options={codeLanguges}
|
options={codeLanguages}
|
||||||
value={codeLanguage}
|
value={codeLanguage}
|
||||||
/>
|
/>
|
||||||
<i className="chevron-down inside"/>
|
<i className="chevron-down inside"/>
|
||||||
|
|
Loading…
Reference in New Issue