fix: Review changes
This commit is contained in:
@@ -985,7 +985,7 @@ class Channel {
|
||||
if (preferOffline && cid != null) {
|
||||
final updatedState =
|
||||
(await _client.chatPersistenceClient?.getChannelStateByCid(
|
||||
cid,
|
||||
cid!,
|
||||
messagePagination: messagesPagination,
|
||||
))!;
|
||||
if (updatedState.messages.isNotEmpty) {
|
||||
@@ -1014,7 +1014,7 @@ class Channel {
|
||||
rethrow;
|
||||
}
|
||||
return _client.chatPersistenceClient!.getChannelStateByCid(
|
||||
cid,
|
||||
cid!,
|
||||
messagePagination: messagesPagination,
|
||||
);
|
||||
}
|
||||
@@ -1122,7 +1122,10 @@ class Channel {
|
||||
|
||||
if (clearHistory == true) {
|
||||
state!.truncate();
|
||||
await _client.chatPersistenceClient?.deleteMessageByCid(_cid);
|
||||
final cid = _cid;
|
||||
if (cid != null) {
|
||||
await _client.chatPersistenceClient?.deleteMessageByCid(cid);
|
||||
}
|
||||
}
|
||||
|
||||
return _client.decode(response.data, EmptyResponse.fromJson);
|
||||
@@ -1252,12 +1255,12 @@ class ChannelClientState {
|
||||
_startCleaningPinnedMessages();
|
||||
|
||||
_channel._client.chatPersistenceClient
|
||||
?.getChannelThreads(_channel.cid)
|
||||
?.getChannelThreads(_channel.cid!)
|
||||
.then((threads) {
|
||||
_threads = threads;
|
||||
}).then((_) {
|
||||
_channel._client.chatPersistenceClient
|
||||
?.getChannelStateByCid(_channel.cid)
|
||||
?.getChannelStateByCid(_channel.cid!)
|
||||
.then((state) {
|
||||
// Replacing the persistence state members with the latest
|
||||
// `channelState.members` as they may have changes over the time.
|
||||
@@ -1734,7 +1737,7 @@ class ChannelClientState {
|
||||
|
||||
set _threads(Map<String?, List<Message>?> v) {
|
||||
_channel._client.chatPersistenceClient?.updateMessages(
|
||||
_channel.cid,
|
||||
_channel.cid!,
|
||||
v.values.expand((v) => v!).toList(),
|
||||
);
|
||||
_threadsController.add(v);
|
||||
|
||||
@@ -764,7 +764,7 @@ class StreamChatClient {
|
||||
final updateData = _mapChannelStateToChannel(channels);
|
||||
|
||||
await _chatPersistenceClient?.updateChannelQueries(
|
||||
filter,
|
||||
filter ?? {},
|
||||
channels.map((c) => c.channel!.cid).toList(),
|
||||
clearQueryCache: paginationParams.offset == 0,
|
||||
);
|
||||
@@ -1434,7 +1434,11 @@ class ClientState {
|
||||
|
||||
void _listenChannelHidden() {
|
||||
_subscriptions.add(_client.on(EventType.channelHidden).listen((event) {
|
||||
_client.chatPersistenceClient?.deleteChannels([event.cid]);
|
||||
final cid = event.cid;
|
||||
|
||||
if (cid != null) {
|
||||
_client.chatPersistenceClient?.deleteChannels([cid]);
|
||||
}
|
||||
if (channels != null) {
|
||||
channels = channels?..removeWhere((cid, ch) => cid == event.cid);
|
||||
}
|
||||
|
||||
@@ -39,32 +39,32 @@ abstract class ChatPersistenceClient {
|
||||
Future<List<String>> getChannelCids();
|
||||
|
||||
/// Get stored [ChannelModel]s by providing channel [cid]
|
||||
Future<ChannelModel> getChannelByCid(String? cid);
|
||||
Future<ChannelModel> getChannelByCid(String cid);
|
||||
|
||||
/// Get stored channel [Member]s by providing channel [cid]
|
||||
Future<List<Member>> getMembersByCid(String? cid);
|
||||
Future<List<Member>> getMembersByCid(String cid);
|
||||
|
||||
/// Get stored channel [Read]s by providing channel [cid]
|
||||
Future<List<Read>> getReadsByCid(String? cid);
|
||||
Future<List<Read>> getReadsByCid(String cid);
|
||||
|
||||
/// Get stored [Message]s by providing channel [cid]
|
||||
///
|
||||
/// Optionally, you can [messagePagination]
|
||||
/// for filtering out messages
|
||||
Future<List<Message>> getMessagesByCid(
|
||||
String? cid, {
|
||||
String cid, {
|
||||
PaginationParams? messagePagination,
|
||||
});
|
||||
|
||||
/// Get stored pinned [Message]s by providing channel [cid]
|
||||
Future<List<Message>> getPinnedMessagesByCid(
|
||||
String? cid, {
|
||||
String cid, {
|
||||
PaginationParams? messagePagination,
|
||||
});
|
||||
|
||||
/// Get [ChannelState] data by providing channel [cid]
|
||||
Future<ChannelState> getChannelStateByCid(
|
||||
String? cid, {
|
||||
String cid, {
|
||||
PaginationParams? messagePagination,
|
||||
PaginationParams? pinnedMessagePagination,
|
||||
}) async {
|
||||
@@ -99,8 +99,8 @@ abstract class ChatPersistenceClient {
|
||||
/// If [clearQueryCache] is true before the insert
|
||||
/// the list of matching rows will be deleted
|
||||
Future<void> updateChannelQueries(
|
||||
Map<String, dynamic>? filter,
|
||||
List<String?> cids, {
|
||||
Map<String, dynamic> filter,
|
||||
List<String> cids, {
|
||||
bool clearQueryCache = false,
|
||||
});
|
||||
|
||||
@@ -119,46 +119,46 @@ abstract class ChatPersistenceClient {
|
||||
Future<void> deletePinnedMessageByIds(List<String> messageIds);
|
||||
|
||||
/// Remove a message by channel [cid]
|
||||
Future<void> deleteMessageByCid(String? cid) => deleteMessageByCids([cid]);
|
||||
Future<void> deleteMessageByCid(String cid) => deleteMessageByCids([cid]);
|
||||
|
||||
/// Remove a pinned message by channel [cid]
|
||||
Future<void> deletePinnedMessageByCid(String cid) async =>
|
||||
deletePinnedMessageByCids([cid]);
|
||||
|
||||
/// Remove a message by message [cids]
|
||||
Future<void> deleteMessageByCids(List<String?> cids);
|
||||
Future<void> deleteMessageByCids(List<String> cids);
|
||||
|
||||
/// Remove a pinned message by message [cids]
|
||||
Future<void> deletePinnedMessageByCids(List<String> cids);
|
||||
|
||||
/// Remove a channel by [cid]
|
||||
Future<void> deleteChannels(List<String?> cids);
|
||||
Future<void> deleteChannels(List<String> cids);
|
||||
|
||||
/// Updates the message data of a particular channel [cid] with
|
||||
/// the new [messages] data
|
||||
Future<void> updateMessages(String? cid, List<Message> messages);
|
||||
Future<void> updateMessages(String cid, List<Message> messages);
|
||||
|
||||
/// Updates the pinned message data of a particular channel [cid] with
|
||||
/// the new [messages] data
|
||||
Future<void> updatePinnedMessages(String? cid, List<Message> messages);
|
||||
Future<void> updatePinnedMessages(String cid, List<Message> messages);
|
||||
|
||||
/// Returns all the threads by parent message of a particular channel by
|
||||
/// providing channel [cid]
|
||||
Future<Map<String, List<Message>>> getChannelThreads(String? cid);
|
||||
Future<Map<String, List<Message>>> getChannelThreads(String cid);
|
||||
|
||||
/// Updates all the channels using the new [channels] data.
|
||||
Future<void> updateChannels(List<ChannelModel?> channels);
|
||||
Future<void> updateChannels(List<ChannelModel> channels);
|
||||
|
||||
/// Updates all the members of a particular channle [cid]
|
||||
/// with the new [members] data
|
||||
Future<void> updateMembers(String? cid, List<Member?> members);
|
||||
Future<void> updateMembers(String cid, List<Member> members);
|
||||
|
||||
/// Updates the read data of a particular channel [cid] with
|
||||
/// the new [reads] data
|
||||
Future<void> updateReads(String? cid, List<Read> reads);
|
||||
Future<void> updateReads(String cid, List<Read> reads);
|
||||
|
||||
/// Updates the users data with the new [users] data
|
||||
Future<void> updateUsers(List<User?> users);
|
||||
Future<void> updateUsers(List<User> users);
|
||||
|
||||
/// Updates the reactions data with the new [reactions] data
|
||||
Future<void> updateReactions(List<Reaction> reactions);
|
||||
@@ -167,7 +167,7 @@ abstract class ChatPersistenceClient {
|
||||
Future<void> deleteReactionsByMessageId(List<String> messageIds);
|
||||
|
||||
/// Deletes all the members by channel [cids]
|
||||
Future<void> deleteMembersByCids(List<String?> cids);
|
||||
Future<void> deleteMembersByCids(List<String> cids);
|
||||
|
||||
/// Update the channel state data using [channelState]
|
||||
Future<void> updateChannelState(ChannelState channelState) =>
|
||||
@@ -189,8 +189,9 @@ abstract class ChatPersistenceClient {
|
||||
deleteMembers,
|
||||
]);
|
||||
|
||||
final channels =
|
||||
channelStates.map((it) => it.channel).where((it) => it != null);
|
||||
final channels = channelStates
|
||||
.map((it) => it.channel)
|
||||
.where((it) => it != null) as Iterable<ChannelModel>;
|
||||
|
||||
final reactions = channelStates.expand((it) => it.messages).expand((it) => [
|
||||
if (it.ownReactions != null)
|
||||
@@ -199,7 +200,7 @@ abstract class ChatPersistenceClient {
|
||||
...it.latestReactions!.where((r) => r.userId != null)
|
||||
]);
|
||||
|
||||
final users = channelStates
|
||||
var users = channelStates
|
||||
.map((cs) => [
|
||||
cs.channel?.createdBy,
|
||||
...cs.messages
|
||||
@@ -215,7 +216,7 @@ abstract class ChatPersistenceClient {
|
||||
...cs.members.map((m) => m.user),
|
||||
])
|
||||
.expand((it) => it)
|
||||
.where((it) => it != null);
|
||||
.where((it) => it != null) as Iterable<User>;
|
||||
|
||||
final updateMessagesFuture = channelStates.map((it) {
|
||||
final cid = it.channel!.cid;
|
||||
|
||||
Reference in New Issue
Block a user