nexus/lib/controllers/events_controller.dart
2025-12-24 16:31:30 -05:00

30 lines
879 B
Dart

import "package:flutter_riverpod/flutter_riverpod.dart";
import "package:matrix/matrix.dart";
import "package:nexus/controllers/from_controller.dart";
class EventsController extends AsyncNotifier<GetRoomEventsResponse> {
EventsController(this.room);
final Room room;
@override
Future<GetRoomEventsResponse> build({String? from}) async {
final response = await room.client.getRoomEvents(
room.id,
Direction.b,
from: from,
limit: 32,
);
if (ref.mounted) {
ref.watch(FromController.provider(room).notifier).set(response.end);
}
return response;
}
Future<GetRoomEventsResponse> prev() async =>
build(from: ref.read(FromController.provider(room)));
static final provider = AsyncNotifierProvider.autoDispose
.family<EventsController, GetRoomEventsResponse, Room>(
EventsController.new,
);
}