diff --git a/lib/chat/cubits/single_contact_messages_cubit.dart b/lib/chat/cubits/single_contact_messages_cubit.dart index 397ac39..515ed03 100644 --- a/lib/chat/cubits/single_contact_messages_cubit.dart +++ b/lib/chat/cubits/single_contact_messages_cubit.dart @@ -4,6 +4,7 @@ import 'package:async_tools/async_tools.dart'; import 'package:fast_immutable_collections/fast_immutable_collections.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:protobuf/protobuf.dart'; import 'package:veilid_support/veilid_support.dart'; import '../../account_manager/account_manager.dart'; @@ -302,8 +303,8 @@ class SingleContactMessagesCubit extends Cubit { _reconciledMessagesCubit?.state.state.asData?.value; // Get all sent messages final sentMessages = _sentMessagesCubit?.state.state.asData?.value; - // Get all items in the unsent queue - // final unsentMessages = _unsentMessagesQueue.queue; + //Get all items in the unsent queue + final unsentMessages = _unsentMessagesQueue.queue; // If we aren't ready to render a state, say we're loading if (reconciledMessages == null || sentMessages == null) { @@ -315,7 +316,7 @@ class SingleContactMessagesCubit extends Cubit { // final reconciledMessagesMap = // IMap.fromValues( // keyMapper: (x) => x.content.authorUniqueIdString, - // values: reconciledMessages.elements, + // values: reconciledMessages.windowElements, // ); final sentMessagesMap = IMap>.fromValues( @@ -346,6 +347,12 @@ class SingleContactMessagesCubit extends Cubit { sentOffline: sentOffline, )); } + for (final m in unsentMessages) { + renderedElements.add(RenderStateElement( + message: (m.deepCopy())..id = m.timestamp.toBytes(), + isLocal: true, + )); + } // Render the state final messages = renderedElements diff --git a/lib/contact_invitation/cubits/contact_invitation_list_cubit.dart b/lib/contact_invitation/cubits/contact_invitation_list_cubit.dart index 6a850e4..cac3d6c 100644 --- a/lib/contact_invitation/cubits/contact_invitation_list_cubit.dart +++ b/lib/contact_invitation/cubits/contact_invitation_list_cubit.dart @@ -232,7 +232,12 @@ class ContactInvitationListCubit // inbox with our list of extant invitations // If we're chatting to ourselves, // we are validating an invitation we have created - final isSelf = state.state.asData!.value.indexWhere((cir) => + final contactInvitationList = state.state.asData?.value; + if (contactInvitationList == null) { + return null; + } + + final isSelf = contactInvitationList.indexWhere((cir) => cir.value.contactRequestInbox.recordKey.toVeilid() == contactRequestInboxKey) != -1;