add minimal scroll to message, only when on current timeline

This commit is contained in:
Henry Hiles 2026-03-12 21:09:11 -04:00
commit 9a3f7e9bdc
No known key found for this signature in database
4 changed files with 22 additions and 9 deletions

View file

@ -18,12 +18,12 @@ import "package:nexus/models/relation_type.dart";
import "package:nexus/models/requests/send_message_request.dart";
import "package:nexus/models/room.dart";
class RoomChatController extends AsyncNotifier<ChatController> {
class RoomChatController extends AsyncNotifier<InMemoryChatController> {
final String roomId;
RoomChatController(this.roomId);
@override
Future<ChatController> build() async {
Future<InMemoryChatController> build() async {
final client = ref.watch(ClientController.provider.notifier);
var room = ref.read(RoomsController.provider)[roomId];
if (room == null) return InMemoryChatController();
@ -283,8 +283,13 @@ class RoomChatController extends AsyncNotifier<ChatController> {
);
}
Future<void> scrollToMessage(Message message) async {
final controller = await future;
return await controller.scrollToMessage(message.id);
}
static final provider = AsyncNotifierProvider.family
.autoDispose<RoomChatController, ChatController, String>(
.autoDispose<RoomChatController, InMemoryChatController, String>(
RoomChatController.new,
);
}