Skip to content

Commit cd94b0d

Browse files
committed
Improve folder display
1 parent 17f0dc5 commit cd94b0d

File tree

1 file changed

+32
-6
lines changed

1 file changed

+32
-6
lines changed

lib/screens/messages.dart

+32-6
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,9 @@ class MessagesPageState extends State<MessagesPage> with TickerProviderStateMixi
121121
.first
122122
.then((response) {
123123
_settings = response.data;
124+
_settings!.folders.sort(
125+
(a, b) => a.position.compareTo(b.position),
126+
);
124127
_folder = _settings!.folders.firstWhere((element) => element.folderType == FolderType.INBOX);
125128
setState(() {});
126129
load();
@@ -230,7 +233,7 @@ class MessagesPageState extends State<MessagesPage> with TickerProviderStateMixi
230233
innerBoxIsScrolled ? 12 : 2,
231234
),
232235
),
233-
child: DropdownButton<Folder>(
236+
child: DropdownButton<String>(
234237
borderRadius: BorderRadius.circular(16),
235238
dropdownColor: ElevationOverlay.applySurfaceTint(
236239
Theme.of(context).colorScheme.surface,
@@ -239,7 +242,11 @@ class MessagesPageState extends State<MessagesPage> with TickerProviderStateMixi
239242
),
240243
isExpanded: true,
241244
underline: Container(),
242-
items: _settings?.folders.map<DropdownMenuItem<Folder>>(
245+
items: _settings?.folders
246+
.where((folder) =>
247+
folder.folderType != FolderType.DRAFTS &&
248+
folder.folderType != FolderType.MODERATION)
249+
.map<DropdownMenuItem<String>>(
243250
(folder) {
244251
final IconData icon;
245252
if (folder.folderType == FolderType.INBOX) {
@@ -257,7 +264,7 @@ class MessagesPageState extends State<MessagesPage> with TickerProviderStateMixi
257264
icon = Icons.folder;
258265
}
259266
return DropdownMenuItem(
260-
value: folder,
267+
value: folder.id,
261268
child: Row(
262269
children: [
263270
Padding(
@@ -276,15 +283,34 @@ class MessagesPageState extends State<MessagesPage> with TickerProviderStateMixi
276283
);
277284
},
278285
).toList() ??
279-
[],
286+
[
287+
const DropdownMenuItem(
288+
child: Row(
289+
children: [
290+
Padding(
291+
padding: EdgeInsets.all(8.0),
292+
child: Icon(Icons.inbox),
293+
),
294+
Flexible(
295+
child: Text(
296+
'Chargement...',
297+
overflow: TextOverflow.fade,
298+
softWrap: false,
299+
),
300+
),
301+
],
302+
),
303+
)
304+
],
280305
onChanged: (folder) {
281-
_folder = folder;
306+
_folder = _settings?.folders
307+
.firstWhere((element) => element.id == folder);
282308
_loaded = false;
283309
_communications = [];
284310
setState(() {});
285311
load();
286312
},
287-
value: _folder,
313+
value: _folder?.id,
288314
),
289315
),
290316
floating: false,

0 commit comments

Comments
 (0)