Commit Graph

200 Commits

Author SHA1 Message Date
Igor Sirotin bc4492b53a
fix: Create only one instance of `StatusChatInput` (#10928)
* Chat input area preserved properties
* Fix emoji/gif/stickers popups open/close logic
2023-06-07 16:18:29 +03:00
Patryk Osmaczko 35a2dd5244 [Popups]: added destroy() function in all popups by default
Also switched StatusModal to derive from StatusDialog instead
of Popup type

Closes #10149
2023-06-02 14:28:39 +03:00
Igor Sirotin 5ff4b5a435
fix(MessageContextMenu): Cleanup. Separate menu for profile. (#10729) 2023-05-19 19:07:50 +03:00
Boris Melnik ae2e495a50 fix(replies): Blocks `jumpToMessage` for deleted and unknown messages
Fixes: #10614
2023-05-16 10:39:12 +03:00
Igor Sirotin 68065f1c6c fix(MessageView): Show header when prev message is system PinnedMessage 2023-05-15 09:49:38 -04:00
Igor Sirotin ad8f749289 fix(MessageView): Show correct name of who pinned the message 2023-05-15 09:49:29 -04:00
Mikhail Rogachev 3a030102fe
Fix(Contacts): fix weird behaviour in some contacts flows edge cases (#10613)
* fix(Chat): Fix displaying CR messages in the chat

* fix(Contacts): Relay on actual status-go state during contact state manipulation

Close #10500
2023-05-15 15:22:04 +04:00
Mikhail Rogachev 890e0aa2bd
fix(Chat): Reuse chat root store connections and fix chat quick actions when blocked (#10577)
Close #10570
2023-05-09 14:31:50 +04:00
Alex Jbanca a674ec57a8 fix(blockChat): Disable chat input when minimal conditions are not met 2023-05-05 19:44:39 +03:00
Igor Sirotin c6f378b968 fix(MessageView): Explicit type check for `messageComponent` 2023-05-02 17:00:54 -04:00
Igor Sirotin 13bd813d52 Added PinnedMessage simple implementation 2023-05-02 17:00:54 -04:00
Igor Sirotin 98d8a70572 fix: Added `SystemMessagePinnedMessage` contentType 2023-05-02 17:00:54 -04:00
Boris Melnik df88984b45 feat(image-album): Display album of images in replies
Fixes: #9957
2023-05-02 11:24:48 +03:00
Lukáš Tinkl 038ab08765 fix: do not display ENS name when not ENS verified
- expose "isEnsVerified" as model role
- fix returning "ensName" when the user is not ensVerified
- react to nickname updates correctly
- fix sorting in the user/member list view
2023-04-21 00:24:32 +02:00
Boris Melnik cbdc3e61b5 fix(images): Display image placeholder when image from album not loaded
Fixes: #9990
2023-04-07 15:42:12 +03:00
Jonathan Rainville 0424715810 fix(edit): fix edit message not sending mentions correctly
Fixes #10074
2023-03-30 15:51:23 -04:00
MishkaRogachev 8eba843a5e fix(Chat): Fix pin popup and actions for communities and group chats 2023-03-28 11:05:07 -04:00
MishkaRogachev 4d4ec22ba6 feat(Chat): Disable unpin action for PinnedMessagesPopup 2023-03-28 11:05:07 -04:00
MishkaRogachev 1f54d96f5f feat(Chat): Disable chat actions for non-contacts 2023-03-28 11:05:07 -04:00
Boris Melnik 30b4d9eb5c fix(chat): Sent images with text correctly
Fixes: #9564 #6374
2023-03-24 14:33:17 +03:00
mprakhov 494ab84fe1 fix(@desktop/chats): Always show message header in the private group chats after sestem message 2023-03-16 14:46:18 +01:00
Boris Melnik 3a737f97a7 fix(messaging): Sync with status-go content type enum
Fixes: #9655
2023-03-16 16:42:02 +03:00
Lukáš Tinkl 31be818e0e fix: Pinning messages - tweaks to UI and interactions
... to help align with original design intent

- dropped date breaks before msg groups
- show full date/timestamp in the msg header
- floating "Unpin" button on mouse hover
- no padding/spacing between messages
- some smaller code cleanups and dead code removals

Fixes #9396
2023-02-17 11:22:21 +01:00
Alex Jbanca ed9e782262 fix(MessageView): Show message when there is one img preview and extra text 2023-02-16 09:14:34 +02:00
Alex Jbanca f9f860a215 fix(LinksMessageView): Refactor LinksMessageView to remove business logic from qml
LinksMessageView component will receive the urls from nim as string and it will only forward the string to getLinkPreviewData slot implemented in nim together with some settings (supported img extensions and unfurling preferences)
On nim side the urls will be parsed and validated using the settings received from qml.
Images are now validated before sending them to the UI using the HEAD request.
2023-02-14 08:55:24 +02:00
Lukáš Tinkl f5d6c538c2 chore: consolidate & refactor popup handling
- all remaining global popup components moved into a separate Popups
entity
- removed some static objects from the Global singleton (appMain,
pinnedMessagesPopup, communityProfilePopup, sounds); rationale:
singletons should not contain any state
- fixed support for popups in storybook
- fixed some warnings (most of them broke the popups in one way or the other)
2023-02-09 15:01:57 +01:00
Alexandra Betouni 1793844cdb fix(StatusMessage): stickers were not aligned correctly 2023-02-02 19:29:59 +02:00
Alexandra Betouni 8bb9da6fcc Revert "fix(StatusMessage): stickers were not aligned correctly"
This reverts commit 0fb954b640.
2023-01-27 09:50:16 -05:00
Lukáš Tinkl 8569ea5b41 chore: Optimize StatusMessageReply using more Loaders
also fix the sender display name to respect ensName/nickname

Fixes: #9016
2023-01-25 19:58:19 +01:00
Lukáš Tinkl a55a207bb2 fix: user display name discrepancies
restore taking local nickname into account in various places
2023-01-25 19:58:19 +01:00
Alexandra Betouni 0fb954b640 fix(StatusMessage): stickers were not aligned correctly
Closes #8944
2023-01-25 11:42:19 -05:00
Alex Jbanca 27bb6bf665 perf(chatScroll): Optimize StatusTextMessage size and hover binding for the delegate 2023-01-19 19:24:18 +02:00
Alex Jbanca bf1d59c0ad perf(chatScroll): Avoid calling the backend on delegate creation/binding
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
2023-01-19 19:24:18 +02:00
Lukáš Tinkl b2328d6643 chore: Consolidate date/time formatting
- simplify locale settings
- extract/fix datetime related functions into LocaleUtils
- port code to the new LocaleUtils

Closes #7230
2023-01-17 16:42:34 +01:00
Pascal Precht bf7148efd6 fix: make avatar info in replies of imported messages work again
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)
2023-01-17 12:48:56 +01:00
Alex Jbanca b591254782 fix(MessageView): Fixing Add reaction popup regressions
The popup parent was being destroyed after popup creation.
2023-01-17 09:13:41 +02:00
Alex Jbanca d07136481c perf(chatScroll): Adding signals for chat settings in MessageStore
perf(chatScroll): Fix comment
2023-01-16 10:26:53 -05:00
Igor Sirotin 93c90b8436 Terminal fix(MessageView): Fix calculating `isExpired` value 2023-01-13 19:57:26 +03:00
Alex Jbanca 8cb4420d49 perf(chatScroll): Create message quick context items only when message row is hovered 2023-01-13 11:13:42 +02:00
Jonathan Rainville af0c9767d1 feat(context-menu): add Copy message action in message context menu
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.
2023-01-12 16:15:17 -05:00
Jonathan Rainville c3945f33c0 feat(replies): add deleted to QuotedMessage to change msg displayed
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 [...]"
2023-01-12 15:18:03 -05:00
Jonathan Rainville 91c2e6d257 feat: use QuotedMessage object for replies to better show the replies
Fixes #7754
ok
2023-01-12 15:18:03 -05:00
Lukáš Tinkl 9e396f7344 chore: refactor/improve/optimize StatusMessage & friends
- drop dead code
- reduce number of direct bindings
- use Loaders whenever possible

Fixes #8744
2023-01-10 10:55:53 +01:00
Jonathan Rainville 29450d34a7 feat(admin): enable admins to delete messages from other users
Fixes #8869
2023-01-04 11:12:47 -05:00
Alex Jbanca 94b911a986 fix(messagesView): Increase spacing between chat messages
Added padding between messages as specified in Figma:
topPadding - 8 if the current message has header, 2 otherwise
bottomPadding - 8 if both current and next message have header, 2 otherwise
2022-12-23 16:46:33 +02:00
Igor Sirotin 784b9acd4f fix(MessageView): Ignore message editing with no actual changes 2022-12-22 15:00:48 +03:00
Patryk Osmaczko 87674064d0 feat(chat/messages): implement new messages marker
closes: #8572
iterates: #7488
2022-12-16 19:12:12 +01:00
Igor Sirotin 50427390dd ens: Fix ens name inconsistency across app 2022-12-14 23:46:50 +03:00
Boris Melnik 5d19667f2d fix(warnings): Fix warnings raised from settings
Fixes: #8293
2022-12-14 14:33:13 +03:00
Jonathan Rainville 194e3048bc fix(messages): fix Resend btn not working and add Sending visual state
Fixes #7643

This adds the backend to resend. It then hooks the button to it.
This also adds a visual state for when we are sending. This gives a good indication that a message was sent.
2022-12-12 11:56:21 -05:00
Lukáš Tinkl 9559789030 chore: reduce the number of (verification) RPC calls
- when calling `Utils.getColorHashAsJson()` we don't actually need to
issue ID verification requests at all and there might be situations when
we know beforehand that we don't need the ENS verification either
- change these helper functions' syntax and do early returns in that case
- in MessageContextMenuView, the "contact details" were duplicated, so
remove one
- remove dead code, fix some warnings
2022-12-01 16:50:23 +01:00
Boris Melnik bff6b22fc4 fix(replies): Get original message from status-go for replies
Fixes: #7248
2022-11-30 14:07:49 +01:00
Lukáš Tinkl 3d4cb12d0c fix: some notification UI fixes
This aims at bringing the notifcation display closer to what regular
messages look like, namely:

- show compressed chat keys
- don't show identicon rings for ENS names
- fix timestamps and their tooltips (`notification` isn't part of StatusMessage!)
- unbreak clicking outside of the whole popup overlay (`activityCenter`
is undefined)
- fix blurry checkmark icon for marking notification as read
2022-11-30 11:05:58 +01:00
mprakhov e8e2c022ca fix(@desktop/chat): Hide quick actions panel in non-joined chats 2022-11-29 19:56:04 +02:00
MishkaRogachev 726ae26128 hotfix(ActivityCenter): Fix AC timestamps and binding loop for previousMessageIndex
Close #8434
2022-11-29 16:49:36 +04:00
Lukáš Tinkl 8e4d9be779 fix: disable quick actions when editting a message
also move the top/bottom margins one level up so that the message editor
gets the same margins as well

Fixes: #8185
2022-11-21 20:55:08 +01:00
Jonathan Rainville 312dd72955 fix(windows): fix windows chat list empty because of popup overflow
Fixes #7906
2022-11-16 15:41:32 -05:00
Alexandra Betouni 7c88f462ec fix(StatusMessage): Updated component to QQC2 Control and as per desing
Fixes #7318
2022-11-14 18:13:40 +02:00
Igor Sirotin a69b3b5928 fix(StatusMessageReply): Fixed reply text styling and behavior 2022-11-11 13:31:06 +01:00
Boris Melnik b10b6617cf fix(edit-message): Add content-type to edit message request
Closes: #7879
2022-11-11 14:01:16 +03:00
Richard Ramos ae7a16f27e fix: display "Resend" for expired messages 2022-11-10 11:49:42 -04:00
Lukáš Tinkl 80d211f521 fix(MessageView): fix opening URL links
Fixes: #8123
2022-11-07 11:03:39 +01:00
Lukáš Tinkl f122607ada fix: consecutive discord messages should be grouped like status messages
- fill the senderId just like other messages
- add some checks in Utils since the "publicKey" (ID) coming Discord
isn't in the format we'd normally expect

Closes #6678
2022-10-27 22:44:00 +02:00
Lukáš Tinkl 16a51f2f72 fix(MessageView): unbreak showing identity ring in replies
use the correct way to get the original message's content type and
compare it with the correct Constant type
2022-10-27 10:01:59 +02:00
Lukáš Tinkl 2c2337a45d fix(MessageView): unbreak message reply update and found animation
due to the refactor, StatusMessage is no longer the toplevel item inside
the delegate, so adjust the functions

some minor cleanups and dead code removals; striving for keeping the
number of properties and bindings inside a ListView delegate at a minimum
2022-10-26 12:50:39 +02:00
Michal Iskierko 6d2a2e6e03 fix(@desktop/general): Fix clicking deep links in chat
Clicking any deep-link in chat: /u, /c, /cc does not open browser but executes instantly

Fix: #6302
2022-10-25 08:26:16 -04:00
Igor Sirotin 5ff2976e80 fix(MessageView): Changed visual borders of message 2022-10-21 00:44:19 +02:00
Lukáš Tinkl 38b6bdbfd3 chore: split English TS files
- qml_base.ts is created as a reference point for translators
- qml_en.ts is a minimal overlay translation, providing just the needed
  plural forms
- adjust the script to generate the above TS files
- fixup some leftover qsTrId() calls and the qmake file
2022-10-19 10:48:08 +02:00
Michał Cieślak f0e238dce6 chore(general): Remove profile pictures visibility options
From now on, if the image is available it should be displayed
uncoditionally.

Closes: #7609
2022-10-13 07:51:55 -04:00
Boris Melnik 4cfa4e5451 fix(replies): Fire dataChanged when contact changed in reply
Closes: #7687
2022-10-12 10:54:24 -04:00
Boris Melnik 6a11a89ff3 fix(Reply): Add check if responsed message was deleted and add `<deleted>` to reply message
Closes: #7372
2022-10-12 15:43:48 +03:00
Michal Iskierko 95c0721578 fix(@desktop/chat): Fix channel link in chat
Clicking on a #link will open link channel in community

Fix #7636
2022-10-10 11:27:16 +02:00
Pascal Precht 5c3517ee6f fix(Chat): ensure profile image with base64 sources are working
This broke with the introduction of discord messages because we were
setting the `assetSettings.isImage = true` when `isDiscordMessage`.

This has overriden the default config for all non discord messages which
check for whether the asset source includes `("data")`.
2022-10-06 22:18:36 +02:00
Pascal Precht d9acab566f perf(chat): only perform verification requests on scroll if necessary
There was an issue where imported messages from third-party services
would cause super laggy scroll behaviour in the chat view.

The reason for that is that on scroll, the app keeps calling
`getVerificationRequestFrom()` on the chatkey of the community.
Typically the results of these requests are cached so that it should
perform the call only once, but because there's no actual verification
request/contact for the community chat key (all third-party messages are
signed by the community), the call keeps on happening over and over.

This commit adds a flag to `getContactDetailsAsJson` and `isEnsVerified`
to control whether or not the call to `getVerificationRequestFrom`
should in fact be made (which should not be the case for imported
messages).

The result of this is a smoother scrolling experience.

Fixes #7767
2022-10-06 11:39:24 +02:00
Pascal Precht bf14b06d55 feat(CreateCommunityPopup): add discord import progress panel and discord message handling
This adds the UI plus all necessary models and signal handling to render
discord import progress in the desktop application.

It also introduces message handling for discord chat message types.

Requires status-im/status-go#2826 to function

Co-authored with @caybro
2022-10-06 09:13:57 +02:00
Igor Sirotin b65023bf45 fix(PinnedMessagesPopup): Fixed reply messages displaying 2022-10-04 14:09:19 +03:00
Lukáš Tinkl a209d39881 fix: ENS name issues
- don't display identicon rings for contacts with an ENS name
- prefer the at-form (@foo-user) whenever possible, and don't display their
  username or pubkey unless they are locally given a nickname
- show compressed keys everywhere instead of the regular ones

Fixes: #7319
Fixes: #7515
2022-09-26 22:38:02 +02:00
Lukáš Tinkl 54c73b0be7 chore: cleanup, fix warning, remove dead code 2022-09-26 22:38:02 +02:00
MishkaRogachev b9ca8654a8 feat(ActivityCenter): Fix messages and AC notifications height
Close #7497
2022-09-26 15:49:46 +03:00
Michał Cieślak be5de27513 feat(MessageView): hide image url in the message when image is unfurled
The url is hidden when there is only one url in the message with no
additional text and the image is shown (unfurled).

Closes: #7321
2022-09-21 10:33:15 +02:00
Lukáš Tinkl 9addf1221b fix(PinnedMessagesPopup): “Jump to” button doesn’t work pinned messages popup
This was never implemented, eventhough a similar approach is used with
the global AppSearch. Expose the method `scrollToMessage(messageId)` so
that it can be called from QML directly.

Fixes #7375
2022-09-19 16:34:07 +02:00
Michal Iskierko 62c2b56fc8 fix(@desktop/chat): Improving displaying user names in chat
1. Rename contactDetails.displayName -> defaultDisplayName
2. Add contactDetails.optionalName (filled in contact service)
3. Set in message_model defaultDisplayName and optionalName values
4. Adjust UI

Issue #7241
2022-09-19 11:24:35 +02:00
Lukáš Tinkl 2dca7904b8 fix(PinnedMessagesPopup): pinned messages modal design issues
- align the dialog to design
- fix radio button logic (it was possible to uncheck a mutually exclusive
checked button eventhough it's inside the button group, leaving the Unpin
button in an undefined state)
- port to StatusDialog and layouts, dropping a lot of needless code
- remove dead code for passing around the `property Component
pinnedMessagesListPopupComponent`; the popup is being invoked via
`Global.openPopup()`

Fixes #7316
Fixes #7315
2022-09-15 10:55:56 +02:00
Lukáš Tinkl d0b8af9e86 fix(MessageView): missing popup from when pin limit is reached
Can not use `root.messageStore.getNumberOfPinnedMessages()` directly in a
binding, as it's not a property and won't reevaluate on change

Closes #7314
2022-09-13 09:05:15 +02:00
Stefan d81b6ca518 fix(Chat): improve gif confirmation popup and fix preview whitelisting
Enable preview for gifs after enabling the gif functionality
Disable gif functionality if the preview was disabled

Addition fixes
- The gifs weren't checked if all images weren't enabled
- The subdomain wasn't checked for whitelisting if the main domain wasn't enabled
- Image clicking
- Dismiss asking for unfurling was not updating the state

Considerations
- Looked into having the "gif enabled" - "tenor unfurling" relation
embedded in the controller but it would require extensive refactoring
by implementing a data-model for unfurling whitelisted domains

Closes: #6829
2022-09-05 12:41:48 +02:00
Alexandra Betouni e1c548696f feat(Desktop)!: Updating desktop app due to IconSettings refactor
As part of https://github.com/status-im/StatusQ/issues/781
2022-09-02 18:41:21 +03:00
Michal Iskierko d6a061a517 feat(@desktop/chat): Add setting image in group chat
Image and cropping information are sent to status-go.

Issue #6466
2022-09-01 12:25:53 +02:00
Igor Sirotin 41910c9a8a fix(tests): Fixed message reply test 2022-08-30 17:03:36 +03:00
Jonathan Rainville 109b9ac290 test(community): add a test that pins and unpins messages
Fixes #6894
2022-08-26 10:29:28 -04:00
Boris Melnik c7efbe6629 test(chat): Can edit a message and save
Closes: #6877
2022-08-26 11:57:59 +03:00
Igor Sirotin 42a1cf995c fix(ChatMessagesView): Usage of `StatusMessage` WIP 2022-08-20 03:02:41 +03:00
MishkaRogachev 3afa49a873 fix(@dektop/chat): Fix messages timestump update
Close #6543
2022-08-05 17:15:38 +03:00
Lukáš Tinkl 120f6517c9 fix(CompactMessageView): disable hovering while scrolling
Fixes #6576
2022-07-25 18:21:14 +02:00
Lukáš Tinkl 9ad23c24d7 fix(MessageView): unbreak clicking on a reply's profile image
the role name exported by the model has (likely) changed :/

`qrc:/imports/shared/views/chat/MessageView.qml:212: Error: Cannot assign [undefined] to QString`
2022-07-21 15:55:55 -04:00
Noelia 47897f431f fix(Chat/ReactionDialog): The reaction dialog is shown in different places
Changed x and y assignment trigger to get the correct value once the position depends on the own popup height.

Fixes #6264
2022-07-13 10:55:12 +02:00
Jonathan Rainville f5d2d9d0ac fix(MessageView): slow chat switching because of height recalculation 2022-07-06 14:05:06 -04:00
Jonathan Rainville 1e7c648300 feat: contact verification request and trust status
feat: contact verification

fix: add remove identity verified btn

fix: add toast message

feat: received verification request model


feat: finish identity verification flow

Fixes #4784
2022-07-06 10:43:33 -04:00
Igor Sirotin eb7fa5be8b fix(ChatButtonsPanel): Added pin/unpin and delete buttons 2022-07-01 12:59:03 +04:00
Jonathan Rainville 9d2862a602 fix(chat): fix gifs staying active in the background when switching chat 2022-06-29 16:48:01 -04:00
Jonathan Rainville 9ebe9ec2c5 fix: fix blurry chat identifier and expose large image in contact proc
Fixes #6190
2022-06-22 15:33:11 -04:00