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,15 +100,37 @@ class SpacesController extends Notifier<IList<Space>> {
.toIList(); .toIList();
return <Space>[ return <Space>[
Space(id: "home", title: "Home", icon: Icons.home, children: homeRooms), Space(
Space( id: "home",
id: "dms", title: "Home",
title: "Direct Messages", icon: Icons.home,
icon: Icons.people, children: homeRooms,
children: dmRooms, ),
), Space(
...topLevelSpacesList, id: "dms",
].toIList(); title: "Direct Messages",
icon: Icons.people,
children: dmRooms,
),
...topLevelSpacesList,
]
.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>>(