sort room list for unread first then recent

This commit is contained in:
Henry Hiles 2026-03-27 21:51:11 -04:00
commit 2c4d5670e5
Signed by: Henry-Hiles
SSH key fingerprint: SHA256:VKQUdS31Q90KvX7EkKMHMBpUspcmItAh86a+v7PGiIs

View file

@ -1,3 +1,4 @@
import "package:collection/collection.dart";
import "package:fast_immutable_collections/fast_immutable_collections.dart"; import "package:fast_immutable_collections/fast_immutable_collections.dart";
import "package:flutter/material.dart"; import "package:flutter/material.dart";
import "package:flutter_riverpod/flutter_riverpod.dart"; import "package:flutter_riverpod/flutter_riverpod.dart";
@ -99,7 +100,12 @@ class SpacesController extends Notifier<IList<Space>> {
.toIList(); .toIList();
return <Space>[ return <Space>[
Space(id: "home", title: "Home", icon: Icons.home, children: homeRooms), Space(
id: "home",
title: "Home",
icon: Icons.home,
children: homeRooms,
),
Space( Space(
id: "dms", id: "dms",
title: "Direct Messages", title: "Direct Messages",
@ -107,7 +113,24 @@ class SpacesController extends Notifier<IList<Space>> {
children: dmRooms, children: dmRooms,
), ),
...topLevelSpacesList, ...topLevelSpacesList,
].toIList(); ]
.map(
(space) => space.copyWith(
children: space.children
.sortedBy(
(element) =>
element
.metadata
?.sortingTimestamp
.millisecondsSinceEpoch ??
0,
)
.sortedBy((room) => room.metadata?.unreadMessages ?? 0)
.reversed
.toIList(),
),
)
.toIList();
} }
static final provider = NotifierProvider<SpacesController, IList<Space>>( static final provider = NotifierProvider<SpacesController, IList<Space>>(