Commit Graph

130 Commits

Author SHA1 Message Date
mprakhov 8d955265dc fix(@desktop/sections): do not unload chat and communities sections during the switching between the sections 2023-03-21 16:44:40 +01:00
Pascal Precht cc1a89efef fix(JoinCommunityView): update amIMember state when kicked and joined
Also add handlers to JoinCommunityView for requesting and cancelling
requests. These will be extended in follow up commits to included
authentication modals
2023-03-21 12:16:53 +01:00
Noelia c7f18978de chore(MintingToken): Refactor access to stores in minting components
- Refactored minting components store access, since some panels were accessing stores directly. Now `CommunitySettingsView` is the single place where stores are accessed.
- Renamed store `CommunitesStore` to `CommunityTokensStore` for handling minting / airdrop actions / request models.
- `NetworkFilter` refactored to prevent direct access to store inside the component.

Closes #9663
2023-03-14 16:06:27 +01:00
Pascal Precht 25b0641cc2 feat: introduce first JoinCommunityView for token-gated communities
This does a few things:

- It integrates with the latest `CommunityTokensMetadata` to access
  community specific ERC721 token
- It changes `ChatLayout` such that it conditionally loads either
  `ChatView` or `JoinCommunityView`. `JoinCommunityView` has been
  specifically designed for token-gated communities

Here's what works (in terms of token permissions):

1. If a community has token permissions and the the current users is not
   a member of that community, we show `JoinCommunityView` instead of
   `ChatView`
2. Any community token permissions of type "Become member" are listed in
   the `JoinCommunityView`
3. There are different types of token critera a permission can have:
   ERC20 token, ERC721 token, or ENS (which is also ERC721 but we have
   a type for that nonetheless)

   Only ERC20 token balances are checked for the known wallet accounts.
   This happens every time the known token list has been updated (every
   10 min atm).

   We still need to add balance checks for any ERC721 tokens and ENS.
4. If token permissions are created, updated or deleted by the community
   owner, the `JoinCommunityView` will update in real-time.

You'll also notice that the `Reveal my address and request access`
button will be enabled if any of the token permissions are fulfilled
(only ERC20 at the time being). Clicking that button will not yet send
a request.

This will be done in the next step as part of https://github.com/status-im/status-desktop/issues/9761
2023-03-09 16:35:06 +01:00
Pascal Precht 48c322cbe4 refactor(ChatLayout): expose emoji and sticker popup properties and signals
Prior to this change `ChatLayout` exposed `chatView` which let other
components access it, its properties and signals.

This is problematic as we need to be able to swap out the `ChatView`
with the `JoinCommunityView` for token gated communities, in which case
there won't be an instance of `chatView`.

This commit ensures that we rely purely on inputs and outputs of the
component, without exposing the component instance itself.
2023-03-07 18:16:42 +01:00
Michał Cieślak e352dcfc11 chore(CommunityPermission): Use typed properties for CommunitiesStore
Additionally, pass assets/collectibles models to HoldingsDropdown
directly instead of store to reduce dependency.
2023-02-23 11:51:30 +01:00
Lukáš Tinkl eafee302d8 fix: pasting a user's profile link in the ad-hoc chat search
... doesn't work in the community section

Extract the `Chat.RootStore` as a toplevel/shared property and pass it
down to ChatLayouts, instead of cross referencing it between different
components. This was also problematic since the ChatLayouts now live
inside a Loader, so it's more appropriate to refer to the
`Chat.RootStore` directly, instead of
`personalChatLayoutLoader.item.rootStore`, since the
`personalChatLayoutLoader.item` might not be visible (due to it being
inside a Loader and a StackLayout) or it might even be a different
component (`loadingStateComponent` or `errorStateComponent`).

This also caused similar problems for other components, such as
ActivityCenterPopup or StatusStickersPopup.

Fixes #9513
2023-02-10 11:23:26 +01: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
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
Michal Iskierko a46206e4fd fix(@desktop/chat): Hide create chat panel when some other menu items are selected
Fix #7675
2022-11-25 14:17:23 +01:00
Michał Cieślak b34b9fb347 fix(Popups): clipping area fixed in various popups
Closes: #7601
2022-09-29 10:39:07 -04:00
Alexandra Betouni 2bd685943f feat(chat): Removing dynamic scoping from chat section
Closes #4244
2022-07-15 17:00:36 +03:00
Sale Djenic 22d5f2d126 fix(@desktop/chat): intermittent with community invites
Fixes: #6170
2022-06-21 10:56:46 -04:00
Boris Melnik 260f10a83e feat(CommunityOverview): Add Community Overview banners
Closes: #5978
2022-06-14 14:31:39 -04:00
Patryk Osmaczko 2850ee75ee desktop(community-settings): add overview and members settings
this is first iteration for: #4938
2022-03-29 15:02:26 -04:00
Sale Djenic 94e1511644 fix(@desktop/chat): cannot create a group chat by hitting `Confirm`
Fixes #5094
2022-03-23 10:14:56 -04:00
Stefan Dunca 5a4dde1d5c feat(chat): members availability and settings change
Don't show members in public chat
Show members in communities by default
Enable Gif Widget by default and remove settings entry
Enable Online users by default and remove settings entry

fixes #4906
2022-03-17 15:48:42 -04:00
Patryk Osmaczko e130953634 feat(@desktop): use emoji hash and identicon ring
Closes: #4782
2022-03-16 18:34:57 +01:00
Alexandra Betouni 8cab96fd24 feat(desktop/chat): Updated create new chat/group flow
As per new designs

Closes #4781
2022-03-11 14:31:51 -05:00
Richard Ramos 3c7779305b feat: move stickers business logic to status-go 2022-03-09 12:16:42 -04:00
Jonathan Rainville be9d2f94e2 feat: enable emojis as channel icons
Fixes #4809
2022-03-08 15:15:25 -05:00
Stefan D 3549273307 Keep secondary sidebar at a fixed width. 2022-03-02 22:58:47 +01:00
Jonathan Rainville 18374a16d4 fix(user-list): use the same userlist for community and chats 2022-02-23 16:15:41 -05:00
Sale Djenic c855de98b6 fix(@dekstop/chat): higher cpu usage after opening gif selector
Fixes #4829
2022-02-23 15:43:21 -05:00
Boris Melnik ea5b5716e5 refactoring(groups): Refactor groups popups
Closes: #4719 #4615
2022-02-17 21:04:29 +03:00
Boris Melnik 1cd83b4d17 refactor(groups): Move groups to new architecture
Closes: #4223
2022-02-01 11:49:52 +01:00
Alexandra Betouni a0b40590ab fix:activity center view is empty
Updated all available message properties
from the new backend

Closes #4408
2022-02-01 11:49:47 +01:00
Jonathan Rainville 6f8f9b6f76 fix(community): fix qml errors when creating a community
Fixes #4440
2022-02-01 11:49:47 +01:00
Jonathan Rainville d073dd215a fix(chat): fix copy and download image
Fixes #4494
2022-02-01 11:49:47 +01:00
Jonathan Rainville 9fc9f698d9 refactor(community): hook invite user and fix community context menu 2022-02-01 11:48:43 +01:00
Sale Djenic e220599612 refactor(@desktop/general): necessary changes applied due to refactored `Contacts` sub-section of the `Settings` section 2022-02-01 11:47:46 +01:00
Sale Djenic da6fe00528 refactor(@desktop/settings-contacts): contacts section updated 2022-02-01 11:47:46 +01:00
Alexandra Betouni 0eb40287fa refactor: removed dynamic scoping from shared module
Properties and functions moved to Global:
- toastMessage
- openProfilePopup()
- getProfileImage()
- popupOpened

Closes #4248
2022-02-01 11:46:39 +01:00
Sale Djenic 807039ad61 refactor(@desktop/chat-community): `ChatContextMenuView` component updated
- admin flag exposed to qml for chat/channel
- `CreateChannelPopup` updated
- `createPopup` function added to the `Global` singleton
- `PinnedMessagesPopup` component moved to `AppMain` and shared
among components beneath
2022-02-01 11:46:24 +01:00
Sale Djenic b6b6d6b6c7 refactor(@desktop/chat-messages): `MessageContextMenuView` component updated 2022-02-01 11:45:50 +01:00
Sale Djenic e5a414a927 refactor(@desktop/chat-communities): qml part handles messages from refactored backend
- `chatType` added to `Constants` to group chat type related values
- `messageContentType` added to `Constants` to group message content type related
values
- `MessageStore` maintained per message list now
- added new `ChatContentView` component used to display chat/channel content
- components updated to display messages from the new backend
- `StatusChatToolBar` appropriately updated
- mute/unmute feature added to chat/channel list as well as to `StatusChatToolBar`
2022-02-01 11:41:22 +01:00
Jonathan Rainville a9c968b984 refactor(chat): refactor 1-1 chat to new architecture
Fixes #4225
2022-02-01 11:39:08 +01:00
Sale Djenic f138fecdd2 refactor(online-users): adding online users for chat/channel 2022-02-01 11:38:07 +01:00
Sale Djenic afe6d34735 refactor: issues after rebase onto `master` fixed 2022-02-01 11:38:04 +01:00
Sale Djenic 80fcb95245 refactor(chat-section): new chat/community model applied on the qml side
Changes done on the backend side related to the new chat/channel/categories model
are applied here. Necessary changes done on the `statusq` may be seen in PR-486.

Parts of the code which are not refactored yet are commented out.

Displayed chats/categories/channels since now are using refactored backend.
2022-02-01 11:37:32 +01:00
Sale Djenic 45d93649b6 refactor(chat-section): new chat/community model applied on the qml side
Changes done on the backend side related to the new chat/channel/categories model
are applied here. Necessary changes done on the `statusq` may be seen in PR-486.

Parts of the code which are not refactored yet are commented out.

Displayed chats/categories/channels since now are using refactored backend.
2022-02-01 11:37:15 +01:00
Jonathan Rainville 22595f5032 refactor(chat): move stickers to the new architecture
Fixes #4060
2022-02-01 11:36:59 +01:00
Jonathan Rainville 3f12796b45 Revert "refactor(chat): move stickers to the new architecture"
This reverts commit 47aa079e0d.
2022-02-01 11:36:59 +01:00
Jonathan Rainville 792397987c refactor(chat): move stickers to the new architecture
Fixes #4060
2022-02-01 11:36:44 +01:00
Jonathan Rainville e8eefd8f87 refactor: move all old usages of contacts to the new code 2022-02-01 11:35:24 +01:00
Jonathan Rainville cb7865bd9e refactor: move contact requests to new architecture
Fixes #4061

Most of the contact request code was already moved, but it wasn't hooked to the QML yet and also there were missing events and some code to improve.
2022-02-01 11:35:24 +01:00
Sale Djenic 3f50ab26b8 refactor(general): qml cleaning
- Selecting `currentIndex` based on the children placed in the `StackLayout`
component with id `appView` is sorted out since we were referring to the wrong
indexes there in case of walletv2, node and community sections.
- Places which call `Utils.getAppSectionIndex` are updated since we don't have
that method any more.
- Some parts which are not refactored yet are commented.
2022-02-01 11:33:06 +01:00
Sale Djenic ed09f82305 refactor(app-search): app search moved to a new component on the qml side 2022-02-01 11:32:46 +01:00
Sale Djenic d67278b23e refactor(app-search): app search module added 2022-02-01 11:32:42 +01:00
Sale Djenic 0fa88be513 refactor(@desktop/general): qml `ChatLayout` component added for the `Chat` section and for each community 2022-02-01 11:32:32 +01:00