1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-05-11 01:17:02 +00:00

optimize view tree render ()

Co-authored-by: zhouwenxuan <aries@Mac.local>
This commit is contained in:
Aries 2025-04-08 11:21:36 +08:00 committed by GitHub
parent 641eb1fca5
commit b28e97970f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 6 additions and 13 deletions
frontend/src/metadata

View File

@ -129,7 +129,7 @@ export const MetadataProvider = ({ repoID, currentPath, repoInfo, selectMetadata
setCollapsedFolders(updatedCollapsedFoldersIds);
}, [getCollapsedFolders, setCollapsedFolders]);
const addFolder = useCallback((name, successCallback, failCallback) => {
const addFolder = useCallback(({ name, successCallback, failCallback }) => {
metadataAPI.addFolder(repoID, name).then(res => {
let newNavigation = [...navigation];
const folder = new Folder(res.data.folder);

View File

@ -69,10 +69,6 @@ const MetadataTreeView = ({ userPerm, currentPath }) => {
setShowInput(true);
}, [generateNewViewDefaultName]);
const closeNewView = useCallback(() => {
setShowInput(false);
}, []);
const closeNewFolder = useCallback(() => {
setShowInput(false);
}, []);
@ -89,7 +85,7 @@ const MetadataTreeView = ({ userPerm, currentPath }) => {
}, [getFolders]);
const handleAddView = useCallback((name, type) => {
addView({ name, type });
addView({ name, type, successCallback: () => setShowInput(false) });
}, [addView]);
const handleDuplicateView = useCallback((viewId) => {
@ -163,7 +159,7 @@ const MetadataTreeView = ({ userPerm, currentPath }) => {
return renderView(view, index);
})}
{showInput && (newView ?
<NewView newView={newView} leftIndent={TREE_NODE_LEFT_INDENT * 2} closeNewView={closeNewView} addView={handleAddView} /> :
<NewView newView={newView} leftIndent={TREE_NODE_LEFT_INDENT * 2} addView={handleAddView} /> :
<NewFolder closeNewFolder={closeNewFolder} />
)}
</div>

View File

@ -25,8 +25,7 @@ const NewFolder = ({ closeNewFolder }) => {
inputRef.current && inputRef.current.focus();
return;
}
addFolder(message);
closeNewFolder();
addFolder({ name: message, successCallback: closeNewFolder });
}, [addFolder, getFoldersNames, closeNewFolder]);
return (

View File

@ -7,7 +7,7 @@ import { useMetadata } from '../hooks';
import { validateName } from '../utils/validate';
import { VIEW_TYPE, VIEW_TYPE_ICON } from '../constants';
const NewView = ({ newView, leftIndent, closeNewView, addView }) => {
const NewView = ({ newView, leftIndent, addView }) => {
const { type: newViewType } = newView;
const { idViewMap } = useMetadata();
const editorRef = useRef(null);
@ -22,8 +22,7 @@ const NewView = ({ newView, leftIndent, closeNewView, addView }) => {
return;
}
addView(message, newViewType);
closeNewView();
}, [newViewType, idViewMap, addView, closeNewView]);
}, [newViewType, idViewMap, addView]);
return (
<div className="tree-node">
@ -48,7 +47,6 @@ const NewView = ({ newView, leftIndent, closeNewView, addView }) => {
NewView.propTypes = {
newView: PropTypes.object,
leftIndent: PropTypes.number,
closeNewView: PropTypes.func,
};
export default NewView;