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,
|
(event) => event.eventId == request.eventId,
|
||||||
);
|
);
|
||||||
|
|
||||||
return event ??
|
if (event != null) return event;
|
||||||
await ref
|
|
||||||
.watch(ClientController.provider.notifier)
|
final fetchedEvent = await ref
|
||||||
.getEvent(request)
|
.watch(ClientController.provider.notifier)
|
||||||
.onError((_, _) => null);
|
.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
|
static final provider = AsyncNotifierProvider.family
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,6 @@ class GomuksListenerController extends AsyncNotifier<void> {
|
||||||
.new({
|
.new({
|
||||||
event.roomId: .new(events: .new({event.rowId: event})),
|
event.roomId: .new(events: .new({event.rowId: event})),
|
||||||
}),
|
}),
|
||||||
.new(),
|
|
||||||
);
|
);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,6 @@ class NotificationsController([final NotificationsRequest? request])
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
}),
|
}),
|
||||||
.new(),
|
|
||||||
);
|
);
|
||||||
|
|
||||||
return .new(mentions.map((event) => (event.rowId, event.roomId)));
|
return .new(mentions.map((event) => (event.rowId, event.roomId)));
|
||||||
|
|
@ -79,7 +78,6 @@ class NotificationsController([final NotificationsRequest? request])
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
}),
|
}),
|
||||||
.new(),
|
|
||||||
);
|
);
|
||||||
|
|
||||||
return currentNotifications.addAll(
|
return currentNotifications.addAll(
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,6 @@ class RoomChatController(final ChatParams info)
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
}),
|
}),
|
||||||
.new(),
|
|
||||||
);
|
);
|
||||||
return .new(
|
return .new(
|
||||||
timeline: .new(events.map((element) => element.rowId)),
|
timeline: .new(events.map((element) => element.rowId)),
|
||||||
|
|
@ -149,7 +148,6 @@ class RoomChatController(final ChatParams info)
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
}),
|
}),
|
||||||
.new(),
|
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
final paginationResponse = await client.paginateManual(
|
final paginationResponse = await client.paginateManual(
|
||||||
|
|
@ -173,7 +171,6 @@ class RoomChatController(final ChatParams info)
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
}),
|
}),
|
||||||
.new(),
|
|
||||||
);
|
);
|
||||||
|
|
||||||
final eventRowIds = paginationResponse.events
|
final eventRowIds = paginationResponse.events
|
||||||
|
|
@ -274,7 +271,6 @@ class RoomChatController(final ChatParams info)
|
||||||
clientSticky: .new({event.rowId}),
|
clientSticky: .new({event.rowId}),
|
||||||
),
|
),
|
||||||
}),
|
}),
|
||||||
.new(),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,10 @@ class RoomsController extends Notifier<IMap<String, Room>> {
|
||||||
.new(),
|
.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 merged = rooms.entries.fold(state, (acc, entry) {
|
||||||
final roomId = entry.key;
|
final roomId = entry.key;
|
||||||
final incoming = entry.value;
|
final incoming = entry.value;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue