switch to smpl key

This commit is contained in:
Christien Rioux 2023-08-07 11:02:29 -04:00
parent e68cbb26eb
commit ee80dbf3a5
13 changed files with 192 additions and 136 deletions

View file

@ -1,6 +1,5 @@
import 'dart:async';
import 'package:fast_immutable_collections/fast_immutable_collections.dart';
import 'package:flutter/material.dart';
import 'package:flutter_chat_types/flutter_chat_types.dart' as types;
import 'package:flutter_chat_ui/flutter_chat_ui.dart';
@ -61,13 +60,13 @@ class ChatComponentState extends ConsumerState<ChatComponent> {
}
Future<void> _loadMessages() async {
final localConversationOwned = proto.OwnedDHTRecordPointerProto.fromProto(
widget.activeChatContact.localConversation);
final localConversationRecordKey = proto.TypedKeyProto.fromProto(
widget.activeChatContact.localConversationRecordKey);
final remoteIdentityPublicKey = proto.TypedKeyProto.fromProto(
widget.activeChatContact.identityPublicKey);
final protoMessages = await getLocalConversationMessages(
activeAccountInfo: widget.activeAccountInfo,
localConversationOwned: localConversationOwned,
localConversationRecordKey: localConversationRecordKey,
remoteIdentityPublicKey: remoteIdentityPublicKey);
if (protoMessages == null) {
return;
@ -108,14 +107,14 @@ class ChatComponentState extends ConsumerState<ChatComponent> {
});
// Now add the message to the conversation messages
final localConversationOwned = proto.OwnedDHTRecordPointerProto.fromProto(
widget.activeChatContact.localConversation);
final localConversationRecordKey = proto.TypedKeyProto.fromProto(
widget.activeChatContact.localConversationRecordKey);
final remoteIdentityPublicKey = proto.TypedKeyProto.fromProto(
widget.activeChatContact.identityPublicKey);
await addLocalConversationMessage(
activeAccountInfo: widget.activeAccountInfo,
localConversationOwned: localConversationOwned,
localConversationRecordKey: localConversationRecordKey,
remoteIdentityPublicKey: remoteIdentityPublicKey,
message: protoMessage);
}

View file

@ -23,8 +23,9 @@ class ChatSingleContactItemWidget extends ConsumerWidget {
final scale = theme.extension<ScaleScheme>()!;
final activeChat = ref.watch(activeChatStateProvider).asData?.value;
final selected = activeChat ==
proto.TypedKeyProto.fromProto(contact.remoteConversationKey);
final remoteConversationRecordKey =
proto.TypedKeyProto.fromProto(contact.remoteConversationRecordKey);
final selected = activeChat == remoteConversationRecordKey;
return Container(
margin: const EdgeInsets.fromLTRB(4, 4, 4, 0),
@ -47,8 +48,7 @@ class ChatSingleContactItemWidget extends ConsumerWidget {
await deleteChat(
activeAccountInfo: activeAccountInfo,
remoteConversationRecordKey:
proto.TypedKeyProto.fromProto(
contact.remoteConversationKey));
remoteConversationRecordKey);
ref.invalidate(fetchChatListProvider);
}
},
@ -71,8 +71,7 @@ class ChatSingleContactItemWidget extends ConsumerWidget {
// component is not dragged.
child: ListTile(
onTap: () async {
activeChatState.add(proto.TypedKeyProto.fromProto(
contact.remoteConversationKey));
activeChatState.add(remoteConversationRecordKey);
ref.invalidate(fetchChatListProvider);
},
title: Text(contact.editedProfile.name),

View file

@ -19,7 +19,8 @@ class ChatSingleContactListWidget extends ConsumerWidget {
required this.chatList,
super.key})
: contactMap = IMap.fromIterable(contactList,
keyMapper: (c) => c.remoteConversationKey, valueMapper: (c) => c);
keyMapper: (c) => c.remoteConversationRecordKey,
valueMapper: (c) => c);
final IMap<proto.TypedKey, proto.Contact> contactMap;
final IList<proto.Chat> chatList;

View file

@ -24,7 +24,7 @@ class ContactItemWidget extends ConsumerWidget {
final scale = theme.extension<ScaleScheme>()!;
final remoteConversationKey =
proto.TypedKeyProto.fromProto(contact.remoteConversationKey);
proto.TypedKeyProto.fromProto(contact.remoteConversationRecordKey);
return Container(
margin: const EdgeInsets.fromLTRB(4, 4, 4, 0),
@ -80,8 +80,12 @@ class ContactItemWidget extends ConsumerWidget {
remoteConversationRecordKey: remoteConversationKey);
// Click over to chats
await MainPager.of(context)?.pageController.animateToPage(1,
duration: 250.ms, curve: Curves.easeInOut);
if (context.mounted) {
await MainPager.of(context)?.pageController.animateToPage(
1,
duration: 250.ms,
curve: Curves.easeInOut);
}
}
// // ignore: use_build_context_synchronously

View file

@ -116,8 +116,10 @@ class PasteInviteDialogState extends ConsumerState<PasteInviteDialog> {
activeAccountInfo: activeAccountInfo,
profile: acceptedContact.profile,
remoteIdentity: acceptedContact.remoteIdentity,
remoteConversationKey: acceptedContact.remoteConversationKey,
localConversation: acceptedContact.localConversation,
remoteConversationRecordKey:
acceptedContact.remoteConversationRecordKey,
localConversationRecordKey:
acceptedContact.localConversationRecordKey,
);
ref
..invalidate(fetchContactInvitationRecordsProvider)