Commit Graph

1172 Commits

Author SHA1 Message Date
Pascal Precht 8a504ce190 fix(Communities): enable letter identicon support in community profile popup 2021-07-21 12:18:02 -04:00
Pascal Precht aa3c68ec3d fix(Communities): use `StatusModal` in `InviteFriendsToCommunityPopup`
This refactors the popup to use StatusQ APIs and also fixes a bug where the
inner view isn't properly hydrated with community data.

Fixes #2998
2021-07-21 12:18:02 -04:00
Jonathan Rainville aa87a3f7fe feat(activity): add 1-1 messages to activity center
Fixes #2830
2021-07-20 10:55:42 -04:00
Jonathan Rainville 2cc819af46 fix(contact): unblock input when possible request pending 2021-07-20 10:55:42 -04:00
Pascal Precht 4213f953e0 refactor(Communities): use `StatusModal` in `MembershipRequestsPopup`
Closes #2894
2021-07-20 09:58:37 -04:00
Pascal Precht 2807628c4d refactor(Communities): use `StatusModal` in `MembershipRequirementsModal`
Closes #2894
2021-07-20 08:40:29 -04:00
Pascal Precht 92d042184a refactor(Communities): use `StatusModal` in `CommunityDetailPopup`
Closes #2892
2021-07-20 08:40:29 -04:00
Pascal Precht 4b059f6190 refactor(Communities): use `StatusModal` in `CommunitiesPopup`
Closes #2891
2021-07-20 08:40:29 -04:00
Pascal Precht d4e56ab6ef refactor(Communities): use `StatusModal` in `TransferOwnershipPopup`
Closes #2889
2021-07-20 08:40:29 -04:00
Pascal Precht 4dab6f9239 refactor(Communities): replace `CommunityMembersPopup` with `CommunityProfilePopup`
When right-clicking a community from the navbar and selecting "View community", Status Desktop
opens `CommunityMembersPopup` which looks like it was either never really finished or more of an
intermediate solution until a proper community profile popup was created.

That's why this commit replaces it with a `CommunityProfilePopup` instead.
In fact, this lead to changes in `CommunityProfilePopup` where the `activeCommunity` dependency
is entirely removed, which allows us to use this popup in various places given that it's hydrated
with proper data.

Because we're no longer relying on `activeCommunity` inside that popup, all of its children and
connected popups needed that same refactor as well, hence this PR introduces a few more changes.

Closes #2890
2021-07-20 08:40:29 -04:00
Pascal Precht 9eb752885d refactor(Communities): use `StatusModal` in `CreateCommunityPopup`
This replaces the modal popup with `StatusModal` in the `CreateCommunityPopup`
and also ensures that it adheres to the design.

There are still things to be refactored in here, primarily form control components.
Those will be tackled in future commits once they have been built in StatusQ

Closes #2882
2021-07-20 08:40:29 -04:00
Pascal Precht 9795890544 ui(Communities): remove unnecessary dividers in modals
There was a change in StatusQ that introduced dividers for modal footers
and headers, so we don't need to put them in the content manually anymore.

This commit removes the no longer needed ones.
2021-07-20 08:40:29 -04:00
Anthony Laibe 5e52095b1f fix(@desktop/communities): remove context menu leftover
fixes #2839
2021-07-19 14:33:30 -04:00
Alexandra Betouni 0f0b239f2a [#2386] Fixed inline emoji reaction menu not showing on top of message
* Also replaced usage of synamic scoping with properties,
  signals and functions where possible

Closes #2386
2021-07-19 14:06:36 -04:00
Alexandra Betouni 9ee7079744 [#2550] Fixed wrong color in key icon
Key icon color was wrong at the community
welcome message

Closes #2550
2021-07-19 13:38:32 -04:00
Alexandra Betouni 68c9b533d4 [#2598] Fixed New messages have their buttons getting overlapped by messages above
Closes #2598
2021-07-19 13:12:56 -04:00
Sale Djenic 1acbc76cc9 chore(@desktop/general): run translation script
All untranslated properties are translated now using translation scripts.
2021-07-19 12:27:45 -04:00
Sale Djenic e9585e6209 feature(@desktop/communities): add loading state when import community
Toast message is added when user access an existing community using community's private key. Toast
message with message that importing community is in progress is displayed while community is being
imported and once it is imported toast is closed and new one, which will be closed in 4 seconds,
with message that community is imported is displayed.

Fixes: #2467
2021-07-19 12:27:45 -04:00
Andrei Smirnov 9a348e1836 fix(@desktop/chat): invitation bubble long text support 2021-07-16 18:26:27 -04:00
Alexandra Betouni 80943b3342 [#2263] Change Focused state back to default in search box
In chat search box the focus state was remaining true
even though the user was clicking outside of it

Closes #2263
2021-07-16 18:21:44 -04:00
Andrei Smirnov f66e64cc9c fix(@desktop/timeline): auto-update messages age 2021-07-16 18:14:01 -04:00
Andrei Smirnov 1cc8d768b8 fix(@desktop/timeline): render message age instead of message time 2021-07-16 18:14:01 -04:00
Sale Djenic ecb2bac6e5 fix(@desktop/chat): sign and send appears for both recipient and sender when sharing the address
The reason for this issue is a message where recipient accepted to share his address with sender.
In that message recipient's public key is set as a "from" property of a "Message" object and we
cannot determine which of two users has initiated transaction actually.

This is fixed checking if the "from" address from the "commandParameters" object of the "Message"
is contained as an address in the wallet of logged in user. If yes, means that currently logged in
user has initiated a transaction (he is a sender), otherwise currently logged in user is a
recipient.

We were just sending a transaction, without notifying message about that. Now we call
callPrivateRPC("acceptRequestTransaction".prefix, %* [transactionHash, messageId, signature])
and that notifies message about the change, but only on the sender side. Appropriate message
on the recipient side was not notified about the change. That need to be checked.
2021-07-16 17:41:22 -04:00
Pascal Precht 1a9d6d178c refactor(Communities) replace `CommunityProfilePopup` with `StatusModal`
This commit refactors the `CommunityProfilePopup` to use `StatusModal`. Since it's made of
various popup content components, it also updates the memberlist, the overview and the
invite friends view, so it doesn't break the UI along the way.

Closes: #2885, #2887, #2888
2021-07-15 08:38:24 -04:00
Pascal Precht c0da840a87 fix(ContactsListAndSearch): ensure component doesn't depend on `parent`
Also add default `height` as it otherwise breaks UI in other places.
2021-07-15 08:38:24 -04:00
Pascal Precht 959c21990c ui(@desktop/chat): fine-tune chat info button position
This was a little too low.
2021-07-15 08:38:24 -04:00
Pascal Precht bb9beef837 fix(Communities): fix channel popup position and field hydration
There are two regressions introduced in 080767c338 where
the `CreateChannelPopup` isn't properly centered when triggered in edit mode,
and that the channel name field isn't hydrated with channel data.

This commits fixes both bugs.
2021-07-15 08:38:24 -04:00
Sale Djenic e832666123 fix(@desktop/chat): push notification is duplicated when mentioning
This bug is happening if you have more than one private chat in the contacts column. How many chats
you have that many same notifications you will get. That's happening cause connection is made
between chatsModel.messageView and ChatsMessages component for each private chat, and for each of
them ChatsMessages component is maintained in StackLayout component what means all of them are
exist but only selected instance is visible. When new messageNotificationPushed signal is emitted
each qml component triggers its slot (regardless component is not currently visible it exists in
the background, it's not deleted) and that's why we see more than one OS' notification bubble for
the same notification.

That is fixed moving slot from ChatMessage component to ChatColumn component.

Fixes: #2551
2021-07-14 18:46:04 -04:00
Anthony Laibe 511c959121 fix(@desktop/chat): fix sticker/image notification with placeholder
fixes #2450
2021-07-14 18:27:38 -04:00
Jonathan Rainville 3740eda1e6 fix(search): clear search when changing active channel 2021-07-14 17:42:55 -04:00
Jonathan Rainville 3e33db039f fix(search): fix 1-1 name, pic, icon and symbol 2021-07-14 17:42:55 -04:00
Jonathan Rainville 3169fe636b fix(search): fix missing scroll and wrong heights
Also fixes a bug where if the search was cleared, messages would after that appear all on top of each other. 
Also leaves the popup live after closing so the search can be gone back to
2021-07-14 17:42:55 -04:00
Jonathan Rainville 359d0ab252 code review 2021-07-14 17:42:55 -04:00
Jonathan Rainville 6e218ad924 feat: add basic local chat search
Fixes #2771
2021-07-14 17:42:55 -04:00
Sale Djenic 47d1546893 fix(@desktop/chat): app crash when you leave a chat
The issue is happening randomly. I managed to catch it few times and hopefully fix it. Problem was
in leave proc in src/status/chat.nim cause we were sending activeChannelChanged signal from it what
started setting activeChannel to the value of the backToFirstChat variable, and while that process
was in progress setActiveChannelByIndex was called from activeChannel what caused another emit of
activeChannelChanged signal while the previous one was not completed. That caused new setting of
activeChannel with active channel index 0, what caused an app crash.

This is fixed by setting active channel to the first one from the list when we get a signal that
any channel from the list is removed. This way activeChannelChanged is broadcasted to the other
parts correctly.

Fixes: #2825
2021-07-14 16:15:40 -04:00
Pascal Precht 18a042fdf1 refactor(Communities): replace `CreateCategoryPopup` with `StatusModal` 2021-07-13 18:11:55 -04:00
Pascal Precht 080767c338 refactor(Communities): replace `CreateChannelPopoup` with `StatusModal` 2021-07-13 18:11:55 -04:00
Alexandra Betouni 78f7e0f4e0 [#2398] Updating "leave community" button color
It should be red instead of blue

Closes #2398
2021-07-13 17:37:01 -04:00
Anthony Laibe 769ac7ee86 fix(@desktop/chat): nickname disapear when closing the modal
fixes #2674
2021-07-13 17:32:28 -04:00
Anthony Laibe 66a0611d91 fix(@desktop/chat): Hide add contact button on private chat
fixes #2595
2021-07-13 17:20:23 -04:00
Andrei Smirnov f755ba44e2 fix(@desktop/chat): fetch more messages fix 2021-07-13 17:05:58 -04:00
Andrei Smirnov b27a52bfce fix(@desktop/groups): wrong message when all contacts have been added to a group chat 2021-07-13 17:05:58 -04:00
Anthony Laibe aa5f861cb8 fix(@desktop/profile): decline all request when big pending request list 2021-07-13 16:58:06 -04:00
Anthony Laibe 76f1aec0e3 fix(@desktop/communities): disable edit for cleared message 2021-07-13 16:41:27 -04:00
Sale Djenic 102a385943 fix(@desktop/chat): app crash when you accept contact request
This issue is being happened randomly, no general rule, in my case it happens often when you accept
first contact from the list immediately after the app start, but the ticket says that it happens
when you click accept while context menu is opened.

Two places were threat for this crash and both are fixed here:
- getChannel proc, direct access by index to Chat element of the chats sequence,
- setChatItem proc, where we actually were setting chatItem and accessing its property without
  checking if it is an empty object.

Fixes: #2837
2021-07-13 16:33:08 -04:00
Anthony Laibe 0eb2a23600 fix(@desktop/timeline): update color of chat time when image 2021-07-13 11:38:43 -04:00
Anthony Laibe 70e8df5cc2 fix(@desktop/chat): update color of close suggestion to be lighter 2021-07-13 11:38:13 -04:00
Sale Djenic 4207844826 fix(@desktop/chat): app crash when you click macOS' notification
A crash is happening not only when you click on a notification bubble with mentions, but on any
chat notification displayed in macOS' notification center. Discussion and details how we can
overcome this may be seen on zenhub, in issue 2819. So far this commit is just a simple solution
to avoid an app crash.

Fixes: #2819
2021-07-13 10:35:29 -04:00
Jonathan Rainville 621f723ecf fix(mentions): set mention index at the top when changing the filter 2021-07-13 09:41:52 -04:00
Jonathan Rainville 40fd390def fix(mentions): fix to sort alphabetically and with start of words 2021-07-13 09:41:52 -04:00
Jonathan Rainville 4277a6e7f4 feat(mentions): show mentions ordered by how it matches the filter
Fixes #2543
2021-07-13 09:41:52 -04:00
Richard Ramos e3c09a9631 fix: enable community feat. when clicking community invite 2021-07-12 17:33:39 -04:00
Richard Ramos 8d7a78389d fix: crash on chatmessages when using 5.15.2 2021-07-12 17:14:25 -04:00
Andrei Smirnov 1653e3bf20 fix(@desktop/timeline): can't click the links and hashtags in timeline 2021-07-12 17:07:41 -04:00
Andrei Smirnov 3bb5be8685 fix(@desktop/chat): navigating from Chats to Timeline shows wrong messages 2021-07-12 16:51:20 -04:00
Pascal Precht a69c2aea73 refactor(Chat, Communities): replace `TopBar` with `StatusChatToolBar`
This commit replaces the `TopBar` components with StatusQ's `StatusChatToolBar`
and touches a few other things as part of this refactoring, namely:

1. `ChannelContextMenu` has been renamed to `ChatContextMenu` and is now a `StatusPopupMenu`
2. Leftover components have been removed: `StatusChatInfo`, `StatusChatInfoButton` and `TopBar`
3 `ActivityCenter` has been moved into `ChatColumn.qml` because `StatusChatToolBar` doesn't provide it
4. `Share chat` option in `ChatContextMenu` has been removed as it wasn't doing anything.

Closes #2746
2021-07-09 10:39:58 -04:00
Pascal Precht c675aff0f8 refactor(Communities): replace `CategoryList and `ChannelList` with StatusQ components
This commit replaces `CategoryList` and `ChannelList` with `StatusChatListAndCategories`,
`StatusPopupMenu` etc. provided by StatusQ.

It also removes components that lived inside Status Desktop but are no longer used
anywhere after the refactor.

Since StatusQ components are decoupled from UI model logic, we also needed to introduce
a new API retrieve a community category from within QML.

Closes #2805
2021-07-09 10:39:58 -04:00
Pascal Precht 23b103795a refactor(ContactsColumn): replace `ChannelList` with `StatusChatList`
Closes #2745
2021-07-09 10:39:58 -04:00
Sale Djenic eb7809ecdf fix(@desktop/wallet): app crash when click on sign and send message
A reason why the crash is happening is actually previous step, when an user who is about to receive
a transaction clicks "confirm and share address" button. In that moment instead of his address an
empty js object is shared. After that clicking on the "sign and send" button, by sender, causes an
app crash because transaction cannot be made using invalid address of the recipient.

Fixes: #2718
2021-07-08 14:18:58 -04:00
Richard Ramos 9e58563fcf feat: community userlist
Fixes #2810
Probably a big chunk of the code from this PR is going to be replaced by #2811
2021-07-08 14:14:27 -04:00
Andrei Smirnov a5806aaf5a fix(@desktop/chat)
Fixed #2430: Add members window shown when accessing 1x1 chat within group chat
2021-07-08 13:23:00 -04:00
Sale Djenic 7fbccec227 fix(activity_center): Mark as read does not clear @ symbol in chat
Mark all mention notifications as read is fixed. Also mark as read one by one notification removes "@" from the appropriate channel along with the marking as read last mention notification for that channel. hasMention field which was bool is switched with mentionsCount field which is int, so we have evidention how many mentions were for each channel.

Fixes: #2788
2021-07-07 14:25:52 -04:00
RichΛrd 20b3f29422 fix: code review 2
Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>
2021-07-07 06:19:41 -04:00
Richard Ramos c5cc001ee1 fix: code review 2021-07-07 06:19:41 -04:00
Richard Ramos 2fcbe4ac16 feat: user list 2021-07-07 06:19:41 -04:00
Jonathan Rainville cd44b8a606 feat: add group requests to the activity center
Fixes #2679
2021-07-06 12:51:43 -04:00
Richard Ramos 065bd26786 fix: code review 2021-07-06 11:58:47 -04:00
Richard Ramos 5f7f899c3b refactor: separate slots for sending eth and tokens 2021-07-06 11:58:47 -04:00
Richard Ramos 2c553f48f7 fix: issues 2021-07-06 11:30:07 -04:00
Richard Ramos 689b36e6da fix: remove pin indicator when a message is being edited 2021-07-06 11:30:07 -04:00
Richard Ramos c7750da267 feat: edit messages 2021-07-06 11:30:07 -04:00
Alexandra Betouni bcfdf8b557 [#2574] Increased reply TextInput's height to avoid bottom cutting 2021-07-06 11:15:51 -04:00
Andrei Smirnov 6efe90ef77 Addressed PR feedback. 2021-07-06 10:57:37 -04:00
Andrei Smirnov 7255dcd256 Fixed: starting a group chat shouldn't show the section to fetch more messages. 2021-07-06 10:57:37 -04:00
Jonathan Rainville 2e98724641 feat(community): add notification setting to community
Fixes #2421
2021-07-06 10:41:10 -04:00
Jonathan Rainville 1bcfd9df14 fix: fix qml warnings caused by rebases 2021-07-02 08:56:23 -04:00
Sale Djenic 538dcd0b86 fix(communities): Naming validation for communities
Category name validation updated.

Fixes: #2297
2021-07-02 08:53:19 -04:00
Sale Djenic b9ff88f41c fix(communities): Naming validation for communities
Channel, channels category name and community name handled according to the new validation.

Fixes: #2297
2021-07-02 08:53:19 -04:00
Jonathan Rainville 0774c4d5bf fix(community): fix request access label
Fixes #2666
2021-07-02 08:51:48 -04:00
Pascal Precht 8d48ebf864 refactor(ChatLayout): use StatusQ layout component to lay out view
These changes don't cause a visual change, but just make use of the
two panel layout component providedby StatusQ.

Closes #2688
2021-06-30 15:08:26 +02:00
Pascal Precht f581f49dcf refactor: make use of StatusQ `StatusAppLayout`
This first step in leveraging StatusQ components. This sets up the overall
app layout, allowing us to use other sub view layouts provided by StatusQ,
such as `StatusAppTwoPanelLayout`.

This commit primarily touches the application navbar, leaving layout changes
in dedicated views for future commits.

Partially closes #2688
2021-06-30 15:08:26 +02:00
Richard Ramos ec1ba71db1 fix: prevMsgTimestamp and nextMsgTimestamp 2021-06-29 08:01:53 -04:00
Sale Djenic 562373fdfc fix(communities): Right click inside the community pane does not open context menu
Fixes: #2547
2021-06-29 07:56:59 -04:00
Sale Djenic ef7ac11f06 fix(Communities) Long community names should be truncated
UI issue is fixed, additional similar issue is fixed in CommunityProfilePopup.qml.

Closes: #2492
2021-06-29 07:55:34 -04:00
Eric Mastro e281ec3871 fix(communities): re-joining of left communities
Fixes: #2649.

Upon receipt of status-go signals which included communities that have been left (`joined: false`), those communities were being rejoined automatically when they should not have been.

fix(communities): Invitation bubble button state updates
The community state inside of the invitation bubble was not reactive to any community actions (such as joining, leaving, updating). In addition, requesting to join a community changed the button’s text to “Pending”, but upon approval, the button’s state was not updating.

The component was setting an observed community in the Component.onCompleted event, which was occurring for all invitation bubbles, but because the community wasn’t bound correctly to the bubble, once a bubble  with a different community was encountered, the community in context of the bubble wasn’t updated and instead used a local copy. Once the community was bound correctly (to be reactive), the states started working correctly.

The invitation bubble has been simplied so that it has states instead of using lots of if/else statements inside of the property bindings. This simplified the component’s logic for things like onClick action and made it a lot easier to read and modify.
2021-06-29 07:52:47 -04:00
Richard Ramos 1d3e5230b2 revert: SortFilterProxyModel 2021-06-23 08:08:08 -04:00
Iuri Matias f8e5b25a09 refactor: extract messages from chat view
refactor: extract messages from chat view

refactor: extract messages from chat view

refactor: extract messages from chat view

update references to messageView

fix setup

remove duplicated method
2021-06-22 15:12:01 -04:00
Eric Mastro 8252976306 fix: remove “Copy” action from emoji menu
Fixes: #2722.

Remove the “Copy” action from the emoji popup menu.
2021-06-21 16:37:05 -04:00
Jonathan Rainville 3ef403a022 feat(act-center): add community badge links to community and channel 2021-06-21 16:29:42 -04:00
Eric Mastro c495c1037a fix(communities): hide edit category menu for non-admins
Fixes: #2691.

When not an admin, the menu for adding/removing/editing of channels inside of a category should not be visible.
2021-06-21 16:29:35 -04:00
Eric Mastro 395b10c4c0 fix: edit channel modal header
Fixes: #2694.

Display channel name in modal header when editing a channel instead of “New channel”.
2021-06-21 16:29:13 -04:00
Richard Ramos fd4e0de3f3 feat: SortFilterProxyModel 2021-06-21 16:28:46 -04:00
Iuri Matias 599bf731fb refactor: extract 'channels' to its own file 2021-06-18 12:12:01 -04:00
Iuri Matias 9aba9ae3c1 refactor: extract ens code from chat view 2021-06-17 16:29:35 -04:00
Iuri Matias 6bcdb9ca54 refactor wallet views
add getSettings methods to src/status

fix issue with calling getSettings; document issue

remove most direct references to libstatus; document some common issues

remove most references to libstatus wallet

add mailserver layer to status lib; remove references to libstatus mailservers

remove libstatus accounts references

move types out of libstatus; remove libstatus types references

remove libstatus browser references

refactor libstatus utils references

remove more references to libstatus stickers

remove references to libstatus constants from src/app

remove more libstatus references from src/app

refactor token_list usage of libstatus

refactor stickers usage of libstatus

refactor chat usage of libstatus

remove libstatus references from the wallet view

remove logic from ens manager view

fix issue with import & namespace conflict

remove unnecessary imports

refactor provider view to not depend on libstatus

refactor provider view

refactor: move accounts specific code to its own section

fix account selection

move collectibles to their own module

update references to wallet transactions

refactor: move gas methods to their own file

refactor: extract tokens into their own file

refactor: extract ens to its own file

refactor: extract dappbrowser code to its own file

refactor: extract history related code to its own file

refactor: extract balance to its own file

refactor: extract utils to its own file

clean up wallet imports

fix: identicon for transaction commands
Fixes #2533
2021-06-17 16:11:01 -04:00
Jonathan Rainville 933dbe9586 feat: add activity center switch to show and hide the bell icon 2021-06-15 13:14:19 -04:00
Jonathan Rainville 82c585cc50 fix(TopBar): fix not necessary right anchor 2021-06-15 13:14:19 -04:00
Jonathan Rainville 1ecb636f58 fix read background to only cover the message and fix hidden text 2021-06-15 13:14:19 -04:00
Jonathan Rainville 93b4c29060 fix typo 2021-06-15 13:14:19 -04:00
Jonathan Rainville e27c66d8af feat(act-center): hide viewed notifications when clicking the hide btn 2021-06-15 13:14:19 -04:00
Jonathan Rainville d5032430f9 feat(act-center): scroll to the clicked message in the act center
Fixes #2681
2021-06-15 13:14:19 -04:00
Jonathan Rainville 0f5d889a0d fix(act-denter): hide reply badge if replied to message is unavailable 2021-06-15 13:14:19 -04:00
Jonathan Rainville b1bcd539a2 feat: add replies to the activity center 2021-06-15 13:14:19 -04:00
Jonathan Rainville 5f7e277065 feat: make it possible to mark individual as read
Fixes #2663
2021-06-15 13:14:19 -04:00
Jonathan Rainville 80a3c932ce fix: fix TopBar Row layout 2021-06-15 13:14:19 -04:00
Jonathan Rainville 0b00a426ae feat: add show more button to activity center
Fixes #2670
2021-06-15 13:14:19 -04:00
Jonathan Rainville 414b39d7e0 feat: add mentions to activity center and interactions
Fixes #2610
2021-06-15 13:14:19 -04:00
Eric Mastro c0013a0956 fix: remove actions from community member when self
Fixes: #2486.

In the community member managment popup, for the current user, remove the “more actions” menu that allows kicking of the user and viewing of their profile.
2021-06-11 11:03:35 -04:00
Eric Mastro 45286e179c fix: kick and re-invite user to group chat
Fixes: #2601.

Kicking a user and re-inviting them now correctly redisplays the join/decline options. Other combinations of User B leaving or declining an invitation are not handled. Please see the notes below for clarification.

Additionally, the group invite popup (that shows the list of members belonging to the group) correctly shows when a user is kicked or when a user leaves the group in real time. Previously, the popup needed to be reopened to display this.

fix: decline invitation crash
Declining a group invitation was crashing the app. This has been fixed.

### NOTES
1. In the case where User A invites User B to a group, but User B declines (or User B joins, then leaves), then from a status-go standpoint, User B is still part of the group, but the chat is marked as `active: false` for User B. This creates a situation where User B cannot re-join the group once s/he has declined the invitation. @cammellos mentioned there possibly will need to be a refactor of cab6281dc5/protocol/messenger.go (L1710) (which, by retaining User B as a member, effectively prevents the re-invitation) once “swipe to delete” is implemented on mobile. There is an activity center notification received for User B that is meant to allow re-joining of the group when the notification is accepted. The activity center notification received from status-go looks like the following:
```json
"activityCenterNotifications": [
      {
        "id": "0x0e342d33",
        "chatId": "e342d33f-dd05-4d7b-b14e-b5335e1a3ee9-0x043bf46aa874c377a34946eab67a32cf36c15907b328216dfce375d169fed7d81c21cada3229db1fd37c762d2c02702111a646657feca6621e2e948febcf378fb4",
        "name": "test-22",
        "type": 2,
        "lastMessage": null,
        "message": null,
        "timestamp": 1623305612000,
        "read": false,
        "dismissed": false,
        "accepted": false
      }
    ]
```
2021-06-11 11:03:16 -04:00
Richard Ramos 086653ac52 fix: code review 2 2021-06-10 19:33:22 -04:00
Richard Ramos efae828087 fix: code review 2021-06-10 19:33:22 -04:00
Richard Ramos b89f2fddc4 feat: add pin messages button to edit channel popup
Fixes #2597
2021-06-10 19:33:22 -04:00
Richard Ramos 386625209d fix: change invite title 2021-06-10 19:33:03 -04:00
Richard Ramos f3caf589a5 fix: display "View" on already joined community invites
Fixes #2580
2021-06-10 19:33:03 -04:00
Eric Mastro 21e6affa98 feat: edit community channels
Closes #2344.

Add ability to edit name, description, and private fields of a community channel.

feat: Display community channel description
Ensure the width of the description does not surpass the context menu and instead wraps to the next line.

feat: After channel is created, set it as the active channel
2021-06-09 10:19:26 +10:00
Jonathan Rainville 20bbf97787 chore: hide activity center button 2021-06-02 11:55:15 -04:00
Jonathan Rainville c18214aca1 feat(Activity center): add contact requests rudimentary version
Fixes #2609
2021-05-31 15:54:18 -04:00
Jonathan Rainville bee54e628f feat(Activity center): add placeholder activity center
Fixes #2608
2021-05-31 15:54:18 -04:00
RichΛrd 44850c7035 Update ui/app/AppLayouts/Chat/ChatColumn/MessageComponents/ChatText.qml
Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>
2021-05-31 10:29:10 -04:00
Jonathan Rainville 346cbd2433 disable accept and decline all buttons on empty list and join on approve 2021-05-28 13:31:33 -04:00
Jonathan Rainville 7b95031ee6 hide input field until mutual contacts and notify on contact accepted 2021-05-28 13:31:33 -04:00
Jonathan Rainville d827433ad4 fix chat section being squished 2021-05-28 13:31:33 -04:00
Jonathan Rainville a90257e141 feat: add setting for notifications on requests 2021-05-28 13:31:33 -04:00
Jonathan Rainville 1984ee89e0 fix(Channel): fix channel name eliding way too small 2021-05-28 13:31:33 -04:00
Jonathan Rainville 436cb42eae feat: add contact requests and handling of them 2021-05-28 13:31:33 -04:00
Eric Mastro 03addd4ea9 feat: force ‘require approval’ membership requirement
For new and existing communities, force the `require approval` membership requirement in the create/edit community popup.

### NOTE
This will not affect the membership requirement value already-created communities.
2021-05-28 19:08:19 +10:00
Eric Mastro 24d8e429b8 feat: edit communities
Allow editing of Community name, description, image, colour, and access.
2021-05-28 19:08:19 +10:00
Jonathan Rainville c8cc65506b fix(CommunityRequest): fix request list emptying after accepting
Fixes #2474
2021-05-26 15:27:49 -04:00
Jonathan Rainville b213aa230d fix(InviteBubble): adapt invite bubble depending on access level 2021-05-26 15:27:49 -04:00
Jonathan Rainville 0fe7da0480 feat(community): fetch community info from link
Fixes #2290
2021-05-26 15:27:49 -04:00
Jonathan Rainville 358091a8eb fix group info list 2021-05-26 12:12:05 -04:00
Jonathan Rainville c1f6afd799 fixes 2021-05-26 12:12:05 -04:00
Jonathan Rainville 8952d55028 update status-go to develop version 2021-05-26 12:12:05 -04:00
Jonathan Rainville b52dceb984 feat(Chat): add pinned messages feature 2021-05-26 12:12:05 -04:00
Richard Ramos 6abba06c42 fix: always show the v 2021-05-25 15:23:07 -04:00
RichΛrd 764f041158 Update ui/app/AppLayouts/Chat/CommunityComponents/CreateCategoryPopup.qml
Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>
2021-05-25 15:23:07 -04:00
Richard Ramos f7a3be7c04 adding documentation 2021-05-25 15:23:07 -04:00
Richard Ramos 872aa7794c feat: edit categories 2021-05-25 15:23:07 -04:00
Richard Ramos 7128e08408 fix: code review 2021-05-25 15:23:07 -04:00
RichΛrd e64fe104fd Update ui/app/AppLayouts/Chat/ContactsColumn/Channel.qml
Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>
2021-05-25 15:23:07 -04:00
RichΛrd bd6e9e3007 Update ui/app/AppLayouts/Chat/CommunityComponents/CommunityChannel.qml
Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>
2021-05-25 15:23:07 -04:00
RichΛrd 033149c03c Update ui/app/AppLayouts/Chat/CommunityComponents/CreateCategoryPopup.qml
Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>
2021-05-25 15:23:07 -04:00
Richard Ramos 0ded790f0d feat: create community categories 2021-05-25 15:23:07 -04:00
Richard Ramos a79400e023 fix: hide kick and ban options for non-admin users
fixes #2515
2021-05-25 15:18:00 -04:00
Richard Ramos f6302928de fix: hide private channels when creating a community 2021-05-25 15:16:04 -04:00
Richard Ramos 930138ebb1 disabling FetchMoreMessages context menu item 2021-05-25 14:47:13 -04:00
Richard Ramos f86611303f feat: updated mailserver logic 2021-05-25 14:47:13 -04:00
Richard Ramos 62d7fc9853 feat: mailserver gaps 2021-05-25 14:47:13 -04:00
Richard Ramos 22839f177b feat: use new API for joining/leaving chats
Fixes #2526
Fixes #2487
2021-05-25 14:47:13 -04:00
Pascal Precht 2a706d2b09 feat(Communities): allow admins to ban users
Closes #2514
2021-05-18 15:27:29 -04:00
Pascal Precht 18ecb87e9b fix(Communities): don't list members in contacts to invite list
When inviting contacts to a community, Status Desktop suggests a list of
all contacts, even if contacts of that list are already members of the community.

This commit introduces a new flag to `ExistingContacts` component that
allows for configuring whether community members should be hidden or not

Fixes #2502
2021-05-18 15:24:50 -04:00
Eric Mastro 65a0cfbcd3 fix: show emoji in reaction tooltip
Fixes: #2387.

Shows the emoji in the emoji reaction tooltip instead of the shorthand (ie 👎 instead of `👎`).
2021-05-14 12:17:48 -04:00
Richard Ramos 9493839b65 force messages to dissapear if a contact is blocked 2021-05-14 11:56:07 -04:00
Richard Ramos fdf6be5f64 feat: delete messages on block 2021-05-14 11:56:07 -04:00
Eric Mastro 46caa67d49 fix: add mention hover
Fixes: #2388

Adds a specific background color to hovered mentions.
2021-05-14 10:28:05 -04:00
Eric Mastro 590192ad9e fix: show suggestion profile pics for contacts only
Fixes: #2365.

Previously, suggestions for mentions were showing profile pics even for users who were not contacts. Now, profile pics are only shown for those users who are contacts. The user’s identicon is shown otherwise.

fix: user thumbnail not shown when no profile pic
When a user was a contact, but didn’t have a profile pic, an image would not be loaded and a ‘reload’ image would be shown instead. With this PR, if the user is a contact and they do not have a profile pic, their identicon will be shown instead.
2021-05-14 10:27:53 -04:00
Eric Mastro ee1287b71d fix: prevent crash on generate account wrong password
Fixes #2448.

Currently, if a wrong password is entered when generating a wallet account, the app will crash due to attempting to decode a `GeneratedAccount ` from an rpc response containing only an error.

With this PR, we are detecting if an error is returned in the response, and if so, raising a StatusGoException. This exception is caught in the call chain, and translated in to a `StatusGoError` which is serialised and sent to the QML view, where it is parsed and displayed as an invalid password error in the input box.

refactor: remove string return values as error messages in wallet model
In the wallet model, we were passing back empty strings for no error, or an error as a string. This is not only confusing, but does not benefit from leaning on the compiler and strong types. One has to read the entire code to understand if a string result is returned when there is no error instead of implicitly being able to understand there is no return type.

To alleviate this, account creation fundtions that do not need to return a value have been changed to a void return type, and raise `StatusGoException` if there is an error encountered. This can be caught in the call chain and used as necessary (ie to pass to QML).

refactor: move invalid password string detection to Utils
Currently, we are reading returned view model values and checking to see if they include a known string from Status Go that means there was an invalid password used. This string was placed in the codebased in mulitple locations.

This PR moves the string check to a Utils function and updates all the references to use the function in Utils.
2021-05-14 10:27:37 -04:00
Jonathan Rainville 17b3a44458 fix(Community): leave community from Community profile popup 2021-05-07 11:12:02 -04:00
Richard Ramos 521d2372f3 fix: code review 2021-05-05 17:16:12 -04:00
Richard Ramos efd1677b24 show confirmation dialog when leaving chat 2021-05-05 17:16:12 -04:00
Iuri Matias 38be2889cd use StatusIconButton component to avoid pixelized close button 2021-05-05 17:15:40 -04:00
RichΛrd efe550ccd5 Update ui/app/AppLayouts/Chat/ChatColumn.qml
Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>
2021-05-05 17:13:02 -04:00
Richard Ramos fbbfa30b1b Allow image drag/drop in communities 2021-05-05 17:13:02 -04:00
Jonathan Rainville c45fe44ad5 feat(Community): show community description in CommunityColumn
Fixes #2400
2021-05-04 15:52:35 -04:00
Jonathan Rainville 9d625016ff chore: fix spacing and width of chat identifier 2021-05-04 14:52:37 -04:00
Jonathan Rainville 49d130a111 feat(ChatMessages): show chat identifier at the top of the window 2021-05-04 14:52:37 -04:00
Jonathan Rainville 64e965ea07 feat(Chat): add Add To Contact banner in 1 to 1 chats 2021-05-04 14:52:37 -04:00
Iuri Matias 11e6ca7e42 don't allow username change for own user 2021-05-04 14:46:32 -04:00
Richard Ramos f5dacb40b1 fix: group info font
Fixes #2380
2021-05-03 15:03:51 -04:00
Richard Ramos 9ea56a3ae7 force refetching previews when preview whitelist changes 2021-05-03 15:03:03 -04:00
Jonathan Rainville 659eb6c681 fix: fix lists overflowing 2021-05-03 14:46:25 -04:00
Jonathan Rainville eac7009807 feat(community): fetch community info from link
Fixes #2290
2021-05-03 14:36:37 -04:00
Jonathan Rainville 33a77ab761 fix(CommunityTransfer): fix private key display to match design
Fixes #2419

Makes it so the private key is elided by default so you can see it all from the get-go. If you focus the field, the key will "unfurl" and you can copy it manually.
Otherwise. the Copy button will always copy the whole key
2021-04-30 13:09:19 -04:00
Jonathan Rainville 22398284e9 fix(CompactChat): fix margins for images and invites
Fixes #2407
2021-04-30 13:01:52 -04:00
Jonathan Rainville 010b617da6 fix(CommunityList): fix CommunityList binding loop 2021-04-29 13:05:49 -04:00
Jonathan Rainville 1b491df9b4 feat(CommunityBackup): remove backup banner after clicking on it 2021-04-29 13:05:49 -04:00
Jonathan Rainville f353a29c3f feat(Communities): add Back up community rectangle for admins
Fixes #2417
2021-04-29 13:05:49 -04:00
Eric Mastro 0850835b34 fix: Send Message button not working in profile popup
Fixes: #2364

The Send Message button click event was erroring due to a refactor that had been done to allow for changing app sections.

This has been updated to follow the current way to change app sections.

fix: “Send Message” button crash in communities
This required switching from communities to normal view.

fix: crash when clicking channel link in community message
When a message in communities contains a link to another channel (ie #otherchannel), the search for this channel needed to be updated to also search for the channel by name, allowing for switching between channels within a community by message link. Additionally, when in a community, if the channel was located in a normal chat, it will switch the view to the normal chat after being found.
2021-04-29 12:36:58 -04:00
Eric Mastro daabef3a3c fix: do not show watch-only accounts as “from address”
Fixes: #2257.

If a user had selected a watch-only address in the wallet, the backend `walletModel.currentAccount` property would also change. When loading a transaction modal, this property was used to set the `selectedAccount` value for the “from” `AccountSelector`, regardless if the account was a watch-only address.

This PR updates the logic for `selectedAccount` such that it will only allow the account to be selected if it is not a watch-only account.
2021-04-29 12:36:39 -04:00
Jonathan Rainville 3a7c95967a feat: implement redesign of message replies
Fixes #2303
2021-04-29 12:35:59 -04:00
Jonathan Rainville 7def4b8630 fix(TextArea): fix selecting text in a TextArea and placeholder color 2021-04-29 12:31:40 -04:00
Jonathan Rainville 6a9bd579d1 fix(CreateCommunity): fix separator margins 2021-04-29 12:21:12 -04:00
Jonathan Rainville aab008d6ef fix(CreateCommunity): fix membership text color and spacing 2021-04-29 12:21:12 -04:00
Jonathan Rainville e77012919b fix(CompactMessage): fix reactions overlapping with the test 2021-04-29 12:18:31 -04:00
Richard Ramos 4d55e3f583 fix: channel context menu colors
Fixes #2363
2021-04-27 16:19:49 -04:00
Richard Ramos b0a9a9ab06 fix: group members context menu icons
Fixes #2381
2021-04-27 14:11:49 -04:00
Iuri Matias 093f7cff7a re-disable experimental features 2021-04-23 07:44:55 -04:00
Pascal Precht 5d34147956 fix(Communities): don't render invite button for non admins 2021-04-21 18:14:56 -04:00
Richard Ramos a581facd88 fix: code review 2021-04-21 18:09:50 -04:00
Richard Ramos 1914557e6b Comment ENS toggle on communities
Fixes #2269
2021-04-21 18:09:50 -04:00
Jonathan Rainville 2e25bf4f8a fix(CompactMessage): fix message hover getting stuck
Fixes #2226 and #2196
2021-04-21 18:05:42 -04:00
Pascal Precht bda1582ea0 uiux: ajdust app tab icons to have the correct size
Closes #1843
2021-04-20 15:15:17 -04:00
Jonathan Rainville b433b23245 chore(CommunityProfile): comment notifications and remove Delete code
Fixes #2272
2021-04-20 14:47:07 -04:00
Pascal Precht 35c63418e2 fix(Communities): remove context menu option to leave channel
Community channels can't be left, only muted.

Closes #2273
2021-04-20 13:55:07 -04:00
Pascal Precht dcb0f4dce9 fix(Communities): make invite popup push onto modal stackview
The popup to invite friends to communities has so far always been a brand new
popup that's opened on top of possible existing popups.

The design however, expects that the same section should be shown as part
of a wizard-like process inside of the existing community profile overview
popup, when entered from there.

This commit extracts the invite friends popup section into component that
can be reused as stack view, as well as modal content, to implement both
scenarios.
2021-04-20 13:24:08 -04:00
Pascal Precht 66839443c5 uiux(Community): minor fixes in create channel modal to match designs 2021-04-20 13:24:08 -04:00
Pascal Precht fc2e8505f3 uiux(Communities): various community profile popup ui fixes
This commit changes a bunch of things related to ui bugs in the community
profile popup. Fixes include:

- Removing the `Delete Community` option since this functionality isn't implemented yet
- Changing the color of the menu item's icons in dark mode to be blue
- Doing the same in the memberlist popup
2021-04-20 13:24:08 -04:00
Jonathan Rainville 20f9f47028 chore(CreateCommunityPopup): leave create btn enabled to show errors 2021-04-20 13:19:22 -04:00
Jonathan Rainville b4de0da9f7 fix(CreateCommunityPopup): make image optional as before
Fixes #2301
2021-04-20 13:19:22 -04:00
Pascal Precht 1c910deca9 fix(Communities): make kicking members work again
There's a regression in the application where kicking members from communities
doesn't work anymore. This was due to UI logic being moved to a different model
without updating the corresponding view action.

Fixes #2274
2021-04-20 13:16:28 -04:00
Pascal Precht b36652348a uiux(Chat): ensure emojis are centered vertically within messages
Closes #227
2021-04-20 13:06:25 -04:00
Pascal Precht e63db9a21c uiux(Communities): use proper icon for "leave community" menu item 2021-04-20 12:30:10 -04:00
Pascal Precht 5016091df7 fix(Communities): allow everyone to activate community profile popup
Prior to this commit, only admins of a community could open up the community
profile popup from inside the community. However, normal members should be able
to do so too.
2021-04-20 12:29:56 -04:00
Pascal Precht 122b3b8ae9 chore(Communities): remove community context menu for non-admins
Normal members shouldn't be able to create channels, nor should "leave
channel" be an option of the context menu provided inside of a community.

This commit removes these.
2021-04-20 12:19:37 -04:00
Eric Mastro 6de717e0e4 fix: remove emoji html from notifications 2021-04-20 12:12:33 -04:00
Pascal Precht aeedc87368 feat: introduce global settings
This commit introces global settings that apply across accounts used
inside the application. This is useful when settings like the selected
locale should b the same across all accounts.

Closes #2144
2021-04-19 13:53:14 +02:00
Eric Mastro 9e6bd7a2da fix: create community and channel name validation
Fixes #2050.

This PR contains changes to fix the name validation for new communities and new channels in communities. In the process of updating this, better validation was also added to both popups (create community and create channel), including the prevention of the "Create" button from being enabled until all form fields were valid.

During this process, it was noticed that the community image cropper was not actually cropping the image *in the preview*. Once the community was created, status-go was successfully cropping the image as the user intended. However, the preview thumbnail prior to creation was not accurately showing the cropped image preview and showing the entire image centred instead. *This is still yet to be fixed.* One solution is to upgrade Qt to `5.15` to take advantage of Image QML's `sourceClipRect`.
2021-04-19 20:19:43 +10:00
Pascal Precht 6529efda4d uiux: fix sticker message border color 2021-04-15 16:59:55 -04:00
Pascal Precht 63bc6f0e53 chore: remove unnecessary splitview props 2021-04-15 10:12:50 +02:00
Pascal Precht a954639cba fix(ui): use correct light theme color for app bar divider 2021-04-14 17:00:37 +02:00
Pascal Precht 18acef7fd3 fix(ui): visually remove splitview handle 2021-04-14 17:00:37 +02:00
Pascal Precht ce774a4dae fix(contextMenu): make menu item hover work and change color 2021-04-14 10:54:20 +02:00
Pascal Precht 5d59cb3870 fix(ui): use proper color for badge border 2021-04-14 10:54:20 +02:00
Jonathan Rainville 048642b7df fix: order joined communities from newest to oldest
Fixes #2154
2021-04-13 18:02:02 -04:00
Jonathan Rainville 63b5c549b9 fix: fix invite button not setting Joined correctly
Fixes #2209
2021-04-13 17:50:32 -04:00
Jonathan Rainville 8607251a6e fix: fix qml warnings 2021-04-13 17:49:43 -04:00
Pascal Precht 5ca9d66212 fix(Communities): ensure newly created community is opened 2021-04-13 15:21:00 -04:00
Pascal Precht 6e63f65dae fix(Communities): use fallback color for community icon if model doesn't have one 2021-04-13 15:07:14 -04:00
Pascal Precht b76468e675 uiux(Communities): fine-tune header button component to align with designs 2021-04-13 15:07:07 -04:00
Jonathan Rainville 90d7f65369 fix: remove possibility to click through the top bar on messages
Fixes #1942
Also cleans up a little the ChatColumn abuse of rows
2021-04-13 14:56:00 -04:00
Jonathan Rainville 4cb6a5b01d chore: update transparent to use Style
Co-authored-by: RichΛrd <info@richardramos.me>
2021-04-13 14:49:43 -04:00
Jonathan Rainville 8c753d58f0 fix: fix copy link submenu items being unreadable in dark theme
Fixes #2194
2021-04-13 14:49:43 -04:00
Jonathan Rainville b45cbe83b7 fix: fix channel list spacing during a search
Fixes #2191
2021-04-13 14:47:35 -04:00
Jonathan Rainville a9cae5b96e fix: fix compact message hover when a popup is opened
Fixes #2187
2021-04-13 14:43:48 -04:00
Jonathan Rainville b1fbad91fe fix: fix channel-identifier-dark-text 2021-04-13 14:42:45 -04:00
Jonathan Rainville 10fd90a152 fix: date label not showing correctly
Fixes #2184
2021-04-13 14:40:44 -04:00
Jonathan Rainville 2e248d710d fix: fix mention popup not showing after a line break 2021-04-01 17:07:25 -04:00
Jonathan Rainville a01e851070 fix: fix being unable to put multiple spaces in a row 2021-04-01 17:07:25 -04:00
Jonathan Rainville 6c0fce5b0c fix: menu dropdowns not closing on button click and position 2021-04-01 16:59:43 -04:00
Jonathan Rainville 62b0c63965 feat: add invite button to community menu
Fixes #2139
2021-04-01 16:51:37 -04:00
Jonathan Rainville 8b3ce83d00 fix: input box disappearing on communities
Fixes #2155
2021-03-31 16:53:08 -04:00
Jonathan Rainville 303e6e9893 refactor: change PrivateChatPopup to use the new ContactListAndSearch 2021-03-31 16:25:24 -04:00
Jonathan Rainville c42bd1ea78 feat: add input to search and use ENS for community invite
fixes #2138
2021-03-31 16:25:24 -04:00
--replace-all b3791cb39f fix: typo in community popup
fixes #2156
2021-03-31 15:34:44 -04:00
Jonathan Rainville 1bc3fa1c97 fix: fix sticker click modal to only open on sticker click 2021-03-30 16:08:13 -04:00
Jonathan Rainville 996b36714d fix: fix scroll speed on Windows 2021-03-30 16:02:10 -04:00
Jonathan Rainville a337b293da feat: show community context menu on Community button 2021-03-30 15:53:32 -04:00
Jonathan Rainville e33266aa2f fix: fix emoji popup and create community popop text color 2021-03-30 15:38:15 -04:00
Jonathan Rainville 038ea033c9 feat: implement new dark theme colors for menu and more
Fixes #2094
2021-03-26 15:28:06 -04:00
Jonathan Rainville aeded149db fix: show community button tooltip on the right
Fixes #2069
2021-03-25 16:57:47 -04:00
Jonathan Rainville 0478a04db9 fix: fix chat time tooltip being too big
Fixes #1946
2021-03-25 16:57:47 -04:00
Iuri Matias 4e15002beb hide reactions and replies when the message is a transaction 2021-03-24 14:43:04 -04:00
Jonathan Rainville 686cbc7f54 fix: fix communities not showing the letter identicon correctly 2021-03-24 14:20:47 -04:00
Pascal Precht c28d4054ef fix(Chat): ensure chat reply separator doesn't leak into message
Fixes #1988
2021-03-24 14:17:43 -04:00
Jonathan Rainville 7188579e46 fix: fix mention showing as pubkey and show styling 2021-03-24 14:16:55 -04:00
Jonathan Rainville 5d67a3f5f9 fix: fix sending three word names mentions not working 2021-03-24 14:16:55 -04:00
Pascal Precht e1a4a47636 fix(Chat): disable HoverHandler when profile popup or context menu are open
Alright, this is an interesting one:

As described in #1829, when the profile popup is opened within the chat view,
users are still able to click *through* the popup on message, which then puts them in
an active state.

I've done a bunch of debugging as described [here](https://github.com/status-im/status-desktop/issues/1829#issuecomment-804748148) and after doing some
further debugging, I found out that `isMessageActive` isn't really the culprit here.

What causes this effect is the `HoverHandler` that's attached to the `CompactMessage` item.
`HoverHandler` is a standard QML type that emits `hoverChanged` signals so one can do things like
applying hover effects on elements, which is exactly what we do:

```
HoverHandler {
  onHoverChanged: {
    root.isHovered = hovered  // `root` being the message item
  }
}
```

I assume we went with this handler because putting a `MouseArea` in there instead, which fills
the entire message component pretty much eliminates all existing mouse handlers attached to
other child components, such as the profile image or the username of the message, which also
open a message context menu.

It turns out that, having a `HoverHandler` as described above, actually activates it when the
user clicks with the left mouse button as well (not just on hover). That's what causes the "click-through"
effect. This can be verified by setting `acceptedButtons` to `Qt.RightButton`, basically telling
the handler that only right clicks will activate it.

I then tried using `Qt.NoButtons` instead so that no button clicks and only hovers will activate
the handler, but that didn't seem to have any effect at all. It still defaults to `Qt.LeftButton`.

So the last resort was to disable the `HoverHandler` altogether, whenever either the profile popup,
or the message context menu (for emojis etc) is open.

Unfortunately, we don't have access to the profile popup in the compact message component, because it's
detached from the component tree. Therefore, I've introduced a new property `profilePopupOpened` on
the chat layout, which we can read from instead.

Fixes #1829
2021-03-23 10:32:31 -04:00
Pascal Precht e2113553b9 feat(PrivateChatPopupSearchResults): introduce reset() and config API
This commit introduces a `reset()` function so that search results inside
the application can be easily reset. It also introduces a `resultClickable`
flag which allows consumers of this component to decide whether a search result
is clickable and emits a dedicated event.

This is useful when UIs should only allow actions via the result icon button
(as it's the case with the new add-to-contact modal).
2021-03-22 15:49:47 -04:00
Jonathan Rainville 7fb9578285 feat: highlite mentions in the chat input as well 2021-03-22 15:49:21 -04:00
Jonathan Rainville 98ef76d3c8 chore: hide edit community button until the feature is implemented 2021-03-18 14:52:28 -04:00
Pascal Precht 010a7e0d8e feat(Communities): open member profile on memberlist click 2021-03-18 14:47:36 -04:00
Pascal Precht 6b6a318a8c
refactor(Communities): make member list look as intended
This change aligns the member list's look & feel of the community profile popup
with the designs by implementing the proper member list items styles, hover effects
and fine-tuning the context menu.

This commit also comments some of the actions provided by the context menu,
which aren't implemented yet. There's no point in having UI components that don't or
can't function.

Those will be re-introduced once they are actually implemented.

Closes #1959
2021-03-18 10:03:24 +01:00
Pascal Precht b4389402e9
refactor: make use of StatusContextMenuButton 2021-03-18 10:03:08 +01:00
Jonathan Rainville 23a8de0449 fix: fix community not being passed correctly to the invite bubble 2021-03-17 16:09:23 -04:00
Jonathan Rainville f3b452188a chore: extract join.status link prefixes to Constants 2021-03-17 16:09:23 -04:00
Jonathan Rainville 62d10eba49 feat: show community invite component on community link 2021-03-17 16:09:23 -04:00
Jonathan Rainville 5581fca41d feat: show default unfurling for community links 2021-03-17 16:09:23 -04:00
Pascal Precht 907fbc21b8 fix(Chat): don't render "Copy Link" menu item if not desired
This adjust the rules to render the copy link menu item so that it aligns
with what has been mentioned in #1943.

Fixes #1943
2021-03-17 15:28:12 -04:00
Pascal Precht 362ad02ffc
refactor(Communities): make membershipt request button looks as designed
The designs for the membership request button look different now, so this
commit makes use of the `StatusSettingsLineButton` to implement that new
look & feel.
2021-03-17 10:30:19 +01:00
Pascal Precht 38bd5f1422
fix(Communities): remove type error in item width
There's no `parent` in that componen, which results in a QML type error
at runtime.
2021-03-17 10:30:18 +01:00
Pascal Precht 638892f21d
refactor(Communities): use StackView inside profile popup for memberlist
Prior to this commit, the community memberlist was represented in a nested modal
which doesn't adhere to the designs. Rather, the section should render inside the
existing modal, requiring it to be refactored using a `StackView`.

This commit refactors the community profile popup so that the different content
sections ("Overview" and "MemberList") are rendered inside of the popup and can
be pushed onto and popped off a stack view.

The content components (newly introduced in this commit) `CommunityProfilePopupMembersList`
and `CommunityProfilePopupOverview` need to define a `headerTitle`, `headerDescription` and
if needed `imageSource` so they can alter the modal's header.

The same pattern might be used in other places of the modal if required.

Partially fixes #1959
2021-03-17 10:29:31 +01:00
Jonathan Rainville b9594591b0 fix: fix a lot of issues relative to dark theme
Fixes #1997
2021-03-16 17:22:58 -04:00
Richard Ramos 4f4a3f1c30 feat: see stickers details when clicking on a sticker 2021-03-16 15:39:52 -04:00
Pascal Precht 8ad9e52abf fix(Communities): render community image in profile popup 2021-03-16 14:57:45 -04:00
Eric Mastro f1e83f74bc feat: drag and drop images
Allow up to 5 images to be dragged and dropped in to one-on-one chats and in the timeline. Can be combined with the existing upload button. The upload file dialog has been changed to allow multiple selections. Drag and dropped images adhere to the following rules, with corresponding validations messages:
- Max 5 image
- Image size must be 0.5 MB or less
- File extension must be one of [".png", ".jpg", ".jpeg", ".heif", "tif", ".tiff"]

Drag and drop and uploaded images are now also deduplicated.
2021-03-16 13:51:37 -04:00
Pascal Precht e725e7982d fix(Communities): properly pass `admin` state to profile popup
This was hardcoded into `isAdmin` for some reason. It also seems that the
property isn't actually used anywhere in the profile popup, so we might
as well get rid off it.
2021-03-16 12:43:01 -04:00
Pascal Precht eefd56dd28 fix(Communities): ensure app remembers hidden community intro banners
Fixes #1960
2021-03-15 14:35:31 -04:00
Pascal Precht 2e710715bc fix(Communities): ensure profile popup is hydrated with correct data
The `communityProfilePopup` relies on the currently `activeCommunity` to
get its data. Unfortunately, once read, even when `chatsModel.setActiveCommunity()`
is called which triggers `activeCommunityChanged`, the data in the popup
won't be updated. The next time one would open a community profile page,
it'd have the data that was previously received from the model.

This commit ensures that the popup is hydrated with the most recent data
by explicitly updating its properties right before it's opened.
2021-03-11 10:41:19 -05:00
Pascal Precht 51c8d86ccc fix(Communities): don't crash on rejoin attempt
Prior to this commit there was a scenario where the application would
crash due a memory bug when attempting to (re)join a community.

The scenario is as follows:

1. User creates or has been invited to community with `ON_REQUEST` permissions
2. User leaves community
3. User decides to rejoin, so she selects the community she's been part
of and hits the "Join" button

At this point Status Desktop would send a new `RequestToJoin` request, as the
community has a corresponding permissions setting.

This would then result in an `already a member` error in status-go, because
status-go checks whether the requestee is already part of the members list of
the community. The error isn't handled inside Status Desktop which causes
a crash because we're trying to access data in memory that doesn't exist.

Why is this happening?

While this might be unexpected, when leaving a community (as done on step 2 of
the mentioned scenario), users don't actually lose membership but simply
"unsubscribe" from all channels in the community in question and their `joined`
flag is set to `false`.

From that point on, re-joininng a community is done by sending a `JoinCommunity`
request (instead of `RequestToJoin`), which will then set the `joined` flag to
`true` and doesn't actually check the membership in the database.

This commit ensures we're calling the right API by checking whether not only
whether the community is needs `ON _REQUEST` permissions, but also whether the
user isn't already a member of it.

Fixes #2017
2021-03-11 10:41:19 -05:00
Pascal Precht 49b5e6c097 fix(Communities): make validation on community import work again
In https://github.com/status-im/status-desktop/commit/a90a30af1 we've introduced the functionality to import
communities through the UI via a community private key.
That private key is being validated before it gets imported.
For some reason, validation has been removed in another refactor
later on in https://github.com/status-im/status-desktop/commit/534cb23e1, rendering the import
functionality broken.

This commit re-introduces the `validate()` method to make importing
communities work again.
2021-03-11 10:00:05 -05:00
Pascal Precht 01d3369c64 fix(Communities): fallback to letter identicon if no image available
Prior to this commit, communities without an image would render invisible
in the navigation bar of the application. To avoid this, we're now falling
back to our StatusLetterIdenticon component, which renders the first letter
of the community name with the color of the community.
2021-03-11 10:00:05 -05:00
Pascal Precht 0a7d6f6bae fix(Community): ensure community members with write access can post to channel
When a user is part of a community, write access to any channel of
that community is granted. When the permission allows for it, a community's
channel `canPost` property is `true`, which should be relied on to
render the necessary component for writing into a channel.

This commit makes sure community members with proper access get the
chat input rendered so they can write to channels.

Fixes #1985
2021-03-08 11:57:09 -05:00
Jonathan Rainville d361853d0d fix: disable ENS only setting if user has no ENS name
Fixes #1984
2021-03-05 14:01:42 -05:00
Jonathan Rainville 44c9f480c2 feat: set profile and community image cropper to 1:1 ratio 2021-03-05 14:01:30 -05:00
Pascal Precht aa7fb862f2 fix(Communities): make creating channels work again
Very similar to #1986, we're trying to access the `activeCommunity`
property on the `chatsModel` object, which doesn't have such a property
anymore every since we've moved communities into its own view.
This causes errors when trying to create channels.

This commit fixes this bug by ensuring `activeCommunity` is accessed
from `chatsModel.communities` instead.
2021-03-05 13:59:44 -05:00
Pascal Precht 86ea7014f6 fix(Communities): make rejoining communities work
When the communities code was moved into its own view in https://github.com/status-im/status-desktop/commit/b38d1df59
it broke the functionality to join communities again.

Qt complains that the Nim API in use `chatsModel.communities.joinCommunity`
expects two parameters, when it's call with just one.
This is unexpected because the API in question set a default value
for its second parameter.

To make this work again, we have to make sure the `setActive`
parameter is supplied every time we call the API from
within QML.

Also, worth noting that this is not the first time we're running into
a scenario like this.
2021-03-05 13:59:44 -05:00
Pascal Precht 43e4ba771b fix(Communities): make leaving communities work again
Turns out in https://github.com/status-im/status-desktop/commit/81bb7fcc6 we've introduced a regression where
leaving a communities isn't possible anymore because we're trying
to call an API that doesn't exist on the `chatsModel`.

This commit fixes it by ensuring the API is called from `chatsModel.communities`.
2021-03-05 13:59:44 -05:00
Jonathan Rainville 131685ecf5 fix: fix member popup layout and member not showing
Fixes #1949
2021-03-05 13:57:49 -05:00
Richard Ramos 9749fe4938 fix: remove svg hack 2021-03-05 09:36:50 -05:00
ace-smart 6e2062ec6f Fixed not showing issue for the profile thumbnail in the suggestion list. Fixes #1916 2021-03-04 17:34:01 -05:00
Jonathan Rainville 4a1c497a08 fix: fix users being able to see admin popup
Fixes #1976
2021-03-04 17:21:17 -05:00
ace-smart 81bb7fcc65 Updated community popup menu btn style. Fixes #1961# This is a combination of 4 commits.
Updated community popup menu btn style. Fixes #1961

Updated community popup menu btn style. Fixes #1961

Updated community popup menu btn style. Fixes #1961

Updated community popup menu btn style. Fixes #1961
2021-03-04 17:20:39 -05:00
ace-smart f3226852c3 Fixed onboarding view backgroud image issue on dark mode. Fixes #1965 2021-03-04 17:17:29 -05:00
Jonathan Rainville a09dd25506 fix: fix description is required for communities 2021-03-03 16:45:23 -05:00
Jonathan Rainville 7e8dc8c5d1 fix: fix community channels not showing the right type
Fixes #1954
2021-03-03 16:45:23 -05:00
Jonathan Rainville 84034d5dbf fix: fix channel color in communities 2021-03-03 16:45:23 -05:00
Jonathan Rainville e52f6daec9 feat: update to latest status go and add color to the community 2021-03-03 16:45:23 -05:00
Jonathan Rainville e28e98a394 fix: fix community rebase errors 2021-03-03 16:45:23 -05:00
Jonathan Rainville c5241e2bf4 feat: intercept clicks on messages links as well 2021-03-03 16:45:23 -05:00
Jonathan Rainville 35688e9740 feat: show unfurled link for status chats in 1:1 2021-03-03 16:45:23 -05:00
Jonathan Rainville c86f67b9f1 fix: fix community header button in dark mode 2021-03-03 16:45:23 -05:00
Jonathan Rainville f8704d7b64 feat: show unviewed count on the community button 2021-03-03 16:45:23 -05:00
Jonathan Rainville b76cb5682c fix: chats not updating on new messages in communities 2021-03-03 16:45:23 -05:00
Jonathan Rainville da77487746 fix: fix invite to use new API and remove the double msg send 2021-03-03 16:45:23 -05:00
Jonathan Rainville 63e2c21b33 feat: show tooltip on top of community button with name 2021-03-03 16:45:23 -05:00
Jonathan Rainville 75a0818d41 fix: fix community image display in the header 2021-03-03 16:45:23 -05:00
Jonathan Rainville 64d38b6049 feat: implement redesign of communities on the left tab 2021-03-03 16:45:23 -05:00
Jonathan Rainville 534cb23e18 feat: add new import community popup 2021-03-03 16:45:23 -05:00
Jonathan Rainville a47847b40f fix: fix community profile looks and style 2021-03-03 16:45:23 -05:00
Jonathan Rainville 6213e020a0 feat: new design for export popup 2021-03-03 16:45:23 -05:00