big performance improvements!!

This commit is contained in:
Henry Hiles 2026-02-13 16:56:39 -05:00
commit 2d90a2adfe
No known key found for this signature in database
8 changed files with 86 additions and 45 deletions

View file

@ -2,24 +2,26 @@ import "package:fast_immutable_collections/fast_immutable_collections.dart";
import "package:flutter_chat_core/flutter_chat_core.dart";
import "package:flutter_riverpod/flutter_riverpod.dart";
import "package:nexus/controllers/message_controller.dart";
import "package:nexus/models/event.dart";
import "package:nexus/models/message_config.dart";
import "package:nexus/models/messages_config.dart";
class MessagesController extends AsyncNotifier<IList<Message>> {
final IList<Event> events;
MessagesController(this.events);
final MessagesConfig config;
MessagesController(this.config);
@override
Future<IList<Message>> build() async => (await Future.wait(
events.map(
config.events.map(
(event) => ref.watch(
MessageController.provider(MessageConfig(event: event)).future,
MessageController.provider(
MessageConfig(event: event, room: config.room),
).future,
),
),
)).nonNulls.toIList();
static final provider = AsyncNotifierProvider.family
.autoDispose<MessagesController, IList<Message>, IList<Event>>(
.autoDispose<MessagesController, IList<Message>, MessagesConfig>(
MessagesController.new,
);
}