From 09d16abcd5c82c953916dc40d61521f2fefec785 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leon=20B=C3=B6sche?= Date: Sun, 11 Jan 2026 22:12:04 +0100 Subject: [PATCH] FIX: Sort folders before files in file explorer --- .../lib/blocs/file_browser/file_browser_bloc.dart | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/b0esche_cloud/lib/blocs/file_browser/file_browser_bloc.dart b/b0esche_cloud/lib/blocs/file_browser/file_browser_bloc.dart index e02b65f..0abc438 100644 --- a/b0esche_cloud/lib/blocs/file_browser/file_browser_bloc.dart +++ b/b0esche_cloud/lib/blocs/file_browser/file_browser_bloc.dart @@ -267,6 +267,12 @@ class FileBrowserBloc extends Bloc { ) { final sorted = List.from(files); sorted.sort((a, b) { + // Always put folders first, then files + if (a.type != b.type) { + return a.type == FileType.folder ? -1 : 1; + } + + // Within the same type (both folders or both files), sort by the selected criterion switch (sortBy) { case 'name': return isAscending @@ -281,12 +287,7 @@ class FileBrowserBloc extends Bloc { ? a.size.compareTo(b.size) : b.size.compareTo(a.size); case 'type': - // Folders before files if ascending, else files before folders - int typeCompare = isAscending - ? a.type.index.compareTo(b.type.index) - : b.type.index.compareTo(a.type.index); - if (typeCompare != 0) return typeCompare; - // Within same type, sort by name + // Already handled above (folders vs files) return isAscending ? a.name.compareTo(b.name) : b.name.compareTo(a.name);