Because the context menu relied on `unparsedTex` it was unable to preserve the pubkey<->displayName conversion when
copying messages to the clipboard.
This commit fixes it by introducing a new `replacePubKeysWithMentions` utility
which is used when message items are initialized, resulting in `unparsedText`
to keep th`@`mentions around.
Closes#9168
Provide the needed data from the nim model directly to the delegate. This way whenever a delegate needs to display the data it doesn't need to reach the backend.
perf(chatScroll): Fix comments on Avoid calling the backend on delegate creation/binding
perf(chatScroll): Avoid calling the backend on delegate creation/binding - add TODO comment on senderColorHash default
perf(chatScroll): merge quotedMessageAuthor details
perf(chatScroll): Fix nim tests
perf(chatScroll): Fix merge error - messages_model.nim
Because we've switched to `QuotedMessage` as an attached payload to
messages to make message replies data more reliable, we lost some of
the author information in imported messages, that was available prior
to that move.
This commit introduces `quotedMessageAuthorDisplayName` and
`quotedMessageAuthorAvatar` to our model so it can be set in case
we can't retrieve contact details for a given message (which is always
the case for imported messages)
This commit should fix the crash we were facing with a successive import
of multiple wallet accounts. Usually happens if you migrate an account from
a Keycard into the app. But also a crash may randomly happen without any
activity.
Fixes: #9065
Adds the action to copy the right-clicked message's text.
It copies the unparsed text (no html).
For that, I had to add it in the MessageItem and expose it in the model.
I also fixed the copy MessageId action that didn't show + didn't work even if it would have shown.
Plus some small cleanups.
Adds `deleted` to the QuotedMessage object so that on the frontend, we can show "Delete message" only when we know the message was deleted.
Otherwise, when we don't know the quoted message, we show "Unknown message [...]"
New messages marker had a clock value of "0" before. Since all
messages are inserted based on the clock value, new messages marker
would cause other "0"-valued clock items to be inserted after it,
effectively making chat header being displayed in the middle of the
chat.
Setting new messages marker clock value to the clock of the message it
points to solves the issue.
fixes: #8955
We always take the plain text from the clipboard but even the plaintext
can contain HTML tags, so escape those and wrap the result in a `<div
style='white-space: pre-wrap'>foo</div>` container. That way we preserve
not only the linebreaks but also any whitespace or tags.
Fixes#8919
Generating addresses was done on the status-go side, but now since `ExportPublic`
flow from the keycard library supports deriving addresses for list of derivation paths
we're using it in the desktop app for `SetupNewKeycardNewSeedPhrase` flow.