diff --git a/frontend/src/components/dir-view/dir-view.js b/frontend/src/components/dir-view/dir-view.js index cccb9f5b9e..45f3d6e940 100644 --- a/frontend/src/components/dir-view/dir-view.js +++ b/frontend/src/components/dir-view/dir-view.js @@ -469,9 +469,26 @@ class DirView extends React.Component { if (type === 'dir') { direntList.unshift(dirent); return direntList; + } else { // type === 'file' + // there will be there conditions; + // first: direntList.length === 0; + // second: all the direntList's items are dir; + // third: direntList has dir and file; + let length = direntList.length + if (length === 0 || direntList[length - 1].type === 'dir') { + direntList.push(dirent); + } else { + let index = 0; + for (let i = 0; i <= length; i++) { + if (direntList[i].type === 'file') { + index = i; + break; + } + } + direntList.splice(index, 0, dirent); + } + return direntList; } - direntList.push(dirent); - return direntList; } deleteItem = (dirent) => { diff --git a/frontend/src/repo-wiki-mode.js b/frontend/src/repo-wiki-mode.js index a4ada5ee2f..efaa15febd 100644 --- a/frontend/src/repo-wiki-mode.js +++ b/frontend/src/repo-wiki-mode.js @@ -546,7 +546,23 @@ class Wiki extends Component { if (type === 'dir') { direntList.unshift(item); } else { - direntList.push(item); + // there will be there conditions; + // first: direntList.length === 0; + // second: all the direntList's items are dir; + // third: direntList has dir and file; + let length = direntList.length + if (length === 0 || direntList[length - 1].type === 'dir') { + direntList.push(item); + } else { + let index = 0; + for (let i = 0; i <= length; i++) { + if (direntList[i].type === 'file') { + index = i; + break; + } + } + direntList.splice(index, 0, item); + } } this.setState({direntList: direntList}); }