♻️ Refactored the chat loading to use more local data
This commit is contained in:
@@ -17,6 +17,7 @@ import "package:island/models/wallet.dart";
|
||||
import "package:island/models/realm.dart";
|
||||
import "package:island/models/sticker.dart";
|
||||
import "package:island/pods/config.dart";
|
||||
import "package:island/pods/userinfo.dart";
|
||||
import "package:island/services/autocomplete_service.dart";
|
||||
import "package:island/services/responsive.dart";
|
||||
import "package:island/widgets/content/attachment_preview.dart";
|
||||
@@ -344,6 +345,14 @@ class ChatInput extends HookConsumerWidget {
|
||||
final double rightMargin = isWideScreen(context) ? leftMargin + 8 : 16;
|
||||
const double bottomMargin = 16;
|
||||
|
||||
final userInfo = ref.watch(userInfoProvider);
|
||||
|
||||
List<SnChatMember> getValidMembers(List<SnChatMember> members) {
|
||||
return members
|
||||
.where((member) => member.accountId != userInfo.value?.id)
|
||||
.toList();
|
||||
}
|
||||
|
||||
return Container(
|
||||
margin: EdgeInsets.only(
|
||||
left: leftMargin,
|
||||
@@ -878,9 +887,9 @@ class ChatInput extends HookConsumerWidget {
|
||||
(chatRoom.type == 1 && chatRoom.name == null)
|
||||
? 'chatDirectMessageHint'.tr(
|
||||
args: [
|
||||
chatRoom.members!
|
||||
.map((e) => e.account.nick)
|
||||
.join(', '),
|
||||
getValidMembers(
|
||||
chatRoom.members!,
|
||||
).map((e) => e.account.nick).join(', '),
|
||||
],
|
||||
)
|
||||
: 'chatMessageHint'.tr(
|
||||
|
||||
@@ -205,7 +205,7 @@ class PublicRoomPreview extends HookConsumerWidget {
|
||||
showLoadingModal(context);
|
||||
final apiClient = ref.read(apiClientProvider);
|
||||
await apiClient.post('/sphere/chat/${room.id}/members/me');
|
||||
ref.invalidate(chatroomIdentityProvider(id));
|
||||
ref.invalidate(ChatRoomIdentityNotifierProvider(id));
|
||||
} catch (err) {
|
||||
showErrorAlert(err);
|
||||
} finally {
|
||||
|
||||
@@ -664,7 +664,7 @@ class _ChatRoomsList extends ConsumerWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context, WidgetRef ref) {
|
||||
final chatRooms = ref.watch(chatroomsJoinedProvider);
|
||||
final chatRooms = ref.watch(chatRoomJoinedNotifierProvider);
|
||||
|
||||
return chatRooms.when(
|
||||
data: (rooms) {
|
||||
|
||||
Reference in New Issue
Block a user