diff --git a/frontend/src/packages/dashboard/components/FileRenderer/FolderContainer.tsx b/frontend/src/packages/dashboard/components/FileRenderer/FolderContainer.tsx index 85f1a79f..7722c44a 100644 --- a/frontend/src/packages/dashboard/components/FileRenderer/FolderContainer.tsx +++ b/frontend/src/packages/dashboard/components/FileRenderer/FolderContainer.tsx @@ -54,7 +54,6 @@ export default function FolderContainer({ console.log(id); dispatch(traverseIntoFolder(id)); }; - return ( (name); const dispatch = useDispatch(); @@ -30,7 +30,12 @@ export default function Renamable({ name, id }: Props) { return ( <> {toggle ? ( -
setToggle(false)}>{name}
+
{ + setToggle(false); + // required as browser doesn't update inputName + // after first refresh of page after renaming + setInputName(name); + }}>{name}
) : ( - folderItems.map((item, index) => { + // folderItems + + const fileComparator = (a : FileEntity, b : FileEntity) => { + if (a.type === b.type) { + return ( + a.name.toLowerCase() < b.name.toLowerCase() + ? -1 + : ( a.name.toLowerCase() > b.name.toLowerCase() + ? 1 + : 0 + ) + ); + } else if (a.type === "File") { + return 1 + } + return -1; + }; + + const renderItems = () => + + [...folderItems] + .sort(fileComparator) + .map((item, index) => { switch (item.type) { case 'Folder': return ( diff --git a/frontend/src/packages/dashboard/state/folders/reducers.ts b/frontend/src/packages/dashboard/state/folders/reducers.ts index ecb8ad6d..0e4459ab 100644 --- a/frontend/src/packages/dashboard/state/folders/reducers.ts +++ b/frontend/src/packages/dashboard/state/folders/reducers.ts @@ -58,6 +58,7 @@ export function renameFileEntity( state: sliceState, action: PayloadAction ) { + const { id, newName } = action.payload; return { ...state,