add fetched individual events to RoomsController
This commit is contained in:
parent
e96d40ce4e
commit
b4d5aaadaf
5 changed files with 26 additions and 13 deletions
|
|
@ -16,11 +16,28 @@ class EventController(final GetEventRequest request)
|
|||
(event) => event.eventId == request.eventId,
|
||||
);
|
||||
|
||||
return event ??
|
||||
await ref
|
||||
if (event != null) return event;
|
||||
|
||||
final fetchedEvent = await ref
|
||||
.watch(ClientController.provider.notifier)
|
||||
.getEvent(request)
|
||||
.onError((_, _) => null);
|
||||
|
||||
if (fetchedEvent != null) {
|
||||
ref
|
||||
.watch(RoomsController.provider.notifier)
|
||||
.update(
|
||||
.new({
|
||||
request.roomId: .new(
|
||||
events: .new({fetchedEvent.rowId: fetchedEvent}),
|
||||
),
|
||||
}),
|
||||
);
|
||||
|
||||
return fetchedEvent;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
static final provider = AsyncNotifierProvider.family
|
||||
|
|
|
|||
|
|
@ -59,7 +59,6 @@ class GomuksListenerController extends AsyncNotifier<void> {
|
|||
.new({
|
||||
event.roomId: .new(events: .new({event.rowId: event})),
|
||||
}),
|
||||
.new(),
|
||||
);
|
||||
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -35,7 +35,6 @@ class NotificationsController([final NotificationsRequest? request])
|
|||
),
|
||||
),
|
||||
}),
|
||||
.new(),
|
||||
);
|
||||
|
||||
return .new(mentions.map((event) => (event.rowId, event.roomId)));
|
||||
|
|
@ -79,7 +78,6 @@ class NotificationsController([final NotificationsRequest? request])
|
|||
),
|
||||
),
|
||||
}),
|
||||
.new(),
|
||||
);
|
||||
|
||||
return currentNotifications.addAll(
|
||||
|
|
|
|||
|
|
@ -77,7 +77,6 @@ class RoomChatController(final ChatParams info)
|
|||
),
|
||||
),
|
||||
}),
|
||||
.new(),
|
||||
);
|
||||
return .new(
|
||||
timeline: .new(events.map((element) => element.rowId)),
|
||||
|
|
@ -149,7 +148,6 @@ class RoomChatController(final ChatParams info)
|
|||
),
|
||||
),
|
||||
}),
|
||||
.new(),
|
||||
);
|
||||
} else {
|
||||
final paginationResponse = await client.paginateManual(
|
||||
|
|
@ -173,7 +171,6 @@ class RoomChatController(final ChatParams info)
|
|||
),
|
||||
),
|
||||
}),
|
||||
.new(),
|
||||
);
|
||||
|
||||
final eventRowIds = paginationResponse.events
|
||||
|
|
@ -274,7 +271,6 @@ class RoomChatController(final ChatParams info)
|
|||
clientSticky: .new({event.rowId}),
|
||||
),
|
||||
}),
|
||||
.new(),
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -33,7 +33,10 @@ class RoomsController extends Notifier<IMap<String, Room>> {
|
|||
.new(),
|
||||
);
|
||||
|
||||
void update(IMap<String, Room> rooms, ISet<String> leftRooms) {
|
||||
void update(
|
||||
IMap<String, Room> rooms, [
|
||||
ISet<String> leftRooms = const ISet.empty(),
|
||||
]) {
|
||||
final merged = rooms.entries.fold(state, (acc, entry) {
|
||||
final roomId = entry.key;
|
||||
final incoming = entry.value;
|
||||
|
|
|
|||
Loading…
Reference in a new issue