big performance improvements!!
This commit is contained in:
parent
4acf624bff
commit
2d90a2adfe
8 changed files with 86 additions and 45 deletions
|
|
@ -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,
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue