diff --git a/ui/app/AppLayouts/Chat/views/MembersSelectorView.qml b/ui/app/AppLayouts/Chat/views/MembersSelectorView.qml index 7fa8d9aaa9..a7145fe26e 100644 --- a/ui/app/AppLayouts/Chat/views/MembersSelectorView.qml +++ b/ui/app/AppLayouts/Chat/views/MembersSelectorView.qml @@ -35,6 +35,7 @@ MembersSelectorBase { edit.onTextChanged: { // When edited, give a small delay in case next character is printed soon contactLookupDelayTimer.start() + root.pastedChatKey = "" } onTextPasted: (text) => { @@ -62,7 +63,6 @@ MembersSelectorBase { property ListModel selectedMembers: ListModel {} function lookupContact(value) { - value = Utils.dropUserLinkPrefix(value.trim()) if (Utils.isChatKey(value)) { @@ -94,7 +94,8 @@ MembersSelectorBase { }; if (contactDetails.isContact) { - root.rootStore.mainModuleInst.switchTo(root.rootStore.getMySectionId(), contactDetails.publicKey) + root.pastedChatKey = contactDetails.publicKey + root.suggestionsDialog.forceHide = false return } diff --git a/ui/app/AppLayouts/Chat/views/private/MembersSelectorBase.qml b/ui/app/AppLayouts/Chat/views/private/MembersSelectorBase.qml index e6e075903e..5e41cdcaa6 100644 --- a/ui/app/AppLayouts/Chat/views/private/MembersSelectorBase.qml +++ b/ui/app/AppLayouts/Chat/views/private/MembersSelectorBase.qml @@ -27,6 +27,8 @@ InlineSelectorPanel { return localNickname || displayName || aliasName } + property string pastedChatKey: "" + label.text: qsTr("To:") warningLabel.text: qsTr("%1 USER LIMIT REACHED").arg(membersLimit) warningLabel.visible: limitReached @@ -50,9 +52,13 @@ InlineSelectorPanel { return true } + function isPastedProfileLinkToContact(pubkey) { + return root.pastedChatKey === pubkey + } + filters: [ ExpressionFilter { - enabled: root.edit.text !== "" + enabled: root.edit.text !== "" && root.pastedChatKey == "" expression: { root.edit.text // ensure expression is reevaluated when edit.text changes return _suggestionsModel.searchPredicate(model.displayName, model.localNickname, model.alias) @@ -63,6 +69,13 @@ InlineSelectorPanel { root.model.count // ensure expression is reevaluated when members model changes return _suggestionsModel.notAMemberPredicate(model.pubKey) } + }, + ExpressionFilter { + enabled: root.pastedChatKey != "" + expression: { + root.pastedChatKey // ensure expression is reevaluated when members model changes + return _suggestionsModel.isPastedProfileLinkToContact(model.pubKey) + } } ]