179 Commits

Author SHA1 Message Date
Jonathan Rainville
164b84feb8 fix(RootStore): onCallbackFromAuthentication was moved to communities module 2023-08-03 09:16:03 -04:00
Mikhail Rogachev
edba946a71
feat(Community): Community messaging statistics chart (#11696)
* feat(Community): Community messaging statistics chart

Close 11152

- Use se `collectCommunityMessageMetrics` for messaging statistics chart
in community overview

* feat(Community): Transfer community metrics with dto objects

* feat: impl simple string-based model for community metrics

* fix(Community): Review fixes and fix for changing community when chat is open

* Update src/app/modules/main/chat_section/controller.nim

Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>

---------

Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>
2023-08-02 20:03:52 +04:00
Dario Gabriel Lipicar
bf4af3d7d4 chore(wallet) remove transactions module
Bump Status GO to support session based activity requests

Transaction module was replaced by activity module,
this change removes the old code.

Details:

- Remove transaction.Item and use the DTO directly
- Replace the still using missing functionality
- Remove old way of fetching transactions in response to the history event
- Use activity filter to provide history for "recents" in Send.

Closes #11339
2023-07-31 19:01:33 +02:00
Jonathan Rainville
6e346d2c0d feat(Communities): changes in import popup for public keys
Also: refactor(communities), moved request to join funcs to communities module
This is needed because we can now request to join from the Import popup

Closes #11242
2023-07-28 18:53:59 +03:00
Boris Melnik
43a5d7eeeb feat(new-links): Parse url data and display
Fixes: #10852
2023-07-27 15:08:21 +03:00
Alex Jbanca
8d335ab210 feat(ExportControlNode): Connect Export Control Node popup to backend
Connect `onDeletePrivateKey` to backend.
Depends on https://github.com/status-im/status-desktop/pull/11640
2023-07-25 15:44:58 +03:00
Alex Jbanca
4aaae242b5 feat(Import Control Node): Adding ImportControlNode flow
1. Create a new popup as per Design: ImportControlNodePopup
2. Add the popup in storybook
3. Integrate ImportControlNodePopup in the app
2023-07-25 15:02:45 +03:00
Alex Jbanca
27c159d464 feat: Export control node (except backend for primary action)
Adding the export control node popup. The popup is behind an authentication wall.
1. Create ExportControlNodePopup qml
2. Add the popup in storybook
3. Create authentication flow with qml callback to open the popup after authentication
4. Add the popup open action in Global.qml
2023-07-20 12:11:17 +03:00
Lukáš Tinkl
02e40adfca feat: New design flows to integrate Revealing addresses...
... when joining Community functionality

Closes #11138
2023-07-19 12:44:16 +02:00
Boris Melnik
e109865f73 fix(community): Trim emojis in channels
Fixes: #11443
2023-07-12 12:45:10 +03:00
Igor Sirotin
d7aa0582be
Switch to new URL unfurl API [sending messages part] (#11476) 2023-07-11 14:30:55 +03:00
Michał Cieślak
b5d3a0cff9 fix(Community Permissions): handling collectible icons fixed
Closes: #11297
2023-07-05 11:41:45 +02:00
Jonathan Rainville
e35945b76c feat(requestToJoin): add addressesToShare to requestToJoin call
Fixes #11154
2023-06-29 11:19:19 -04:00
Jonathan Rainville
28fa8271a6 feat(communities): update communities token list on token deploy
Fixes #11125

Updates the communities asset and collectibles lists when a new token is deployed.
Also refactors the section module to remove all that code and use the communities token list instead.
Adds community ID to the token list model so that we can show only the global tokens and the tokens from the community are shown in the community
2023-06-27 09:54:23 -04:00
Pascal Precht
b3329d790e feat: channel permissions
Closes: #10996, #10995, #10993, #10997, #9537
2023-06-20 21:57:37 +02:00
Jonathan Rainville
ceb810e63d fix(contacts): fix inconsistency when banning or unbanning contact
Fixes #10501

The problem was that didn't have access to the updated contact from status-go after banning or unbanning, so we just changed the banned property, but there is more that gets changed in the backend, like `removed` being set to `true` as well.
With this fix, when you unban someone, you go back to a fresh start, as **non** contact, so you need to send a request again. That was the state you got if you restarted the app, so "re-sync" the state with status-go.
Another issue was on the frontend (QML). When banned,  and after restarting to get the right state, the unban button would be disabled and the Add contact request button would show, which is not good. We only want to send requests when unbanned.
2023-06-01 14:25:20 -04:00
Jonathan Rainville
7d0a77ef0d chore(links): update to use the new external link format
Fixes #10777
2023-05-31 10:36:08 -04:00
Boris Melnik
92a9c41238 fix(invitation-bubble): Adds loading state for unfurling links
Fixes: #10422
2023-05-25 12:33:54 +03:00
Igor Sirotin
5ff4b5a435
fix(MessageContextMenu): Cleanup. Separate menu for profile. (#10729) 2023-05-19 19:07:50 +03:00
Anthony Laibe
39b9b5ee91 feat(@wallet): add wallet filter 2023-05-06 17:40:28 +02:00
Alex Jbanca
a674ec57a8 fix(blockChat): Disable chat input when minimal conditions are not met 2023-05-05 19:44:39 +03:00
Jonathan Rainville
0e5c566dcd fix(newChat): fix sending messages in new ad hoc chat with new store
Fixes #10523

The problem was that the CreateChatView now uses an isolated Chat RootStore, since we can't be sure if the personal chat section will be loaded yet.

To fix that, I created a new store that is only for storing the properties needed for that new chat. That way we are sure that it is created and shared to necessary components.
2023-05-05 09:36:14 -04:00
Lukáš Tinkl
b07ba7fb2d fix: personal chat item wrong width
- do not hardcode width of child elements (impossible to propagate
setting the width from the toplevel/parent component)
- made both the community and non-community chat item look the same and
according to the Figma designs (including margins, scrollbar positions,
spacing etc)
- cleaned up some hardcoded values and dead code

Fixes #10469
2023-05-03 16:39:33 +02:00
Alexandra Betouni
5615a534ea (settings): removed community permissions,tokens,airdrop and discord options
Also:
test(suite_communities): Fixed community related tests

- A new intermediate popup is now displayed when user clicks on `Create New Community` button from `Community Portal`.
- Reformulated `tst_communityPermissions` since now it is a default option without the need of activating it from experimental feature's section.

Closes #10115
2023-04-28 16:52:41 +03:00
Anthony Laibe
542e5fdb6c feat(@wallet): remove usage of wallet section current 2023-04-27 11:58:27 +02:00
Anthony Laibe
e6f88758dc feat(@wallet): wallet accounts module dedup
Second part of having profile section accounts
2023-04-25 14:56:20 +02:00
MishkaRogachev
2160b53e33 fix(ActivityCenter): Use ContactRequestId for accpeting and declining CRs from AC
Close #10127
2023-04-25 16:16:32 +04:00
Patryk Osmaczko
36063f33f1 fix(chat): use proper section details data
It prevents `StatusChatInput::enabled` property to be changed when
switching sections, as a consequence the text is persisted.

fixes: #10286
2023-04-19 11:13:01 +02:00
Michal Iskierko
7055a77a96 fix(@desktop/communities): Displaying toast messages when minting
Fix #9849
2023-04-17 15:11:35 +02:00
Lukáš Tinkl
a8eed304c0 feat: implement ProfileShowcase settings
Implement the UI part of Profile/Settings/Showcase:

- Communities/Accounts/Collectibles/Assets tabs
- drag and drop of items between "hidden" and "in showcase" sections
- ability to set individual items' visibility
- persistency (showcase saved across restarts), not exposed yet due to
  missing backend API

Closes #9936
2023-04-12 11:39:37 +02:00
Alex Jbanca
23f493f251 fix(MembershipRequests): Remove MembershipRequestsPopup and set-up the navigation to CommunityMembersSettingsPanel
Part of https://github.com/status-im/status-desktop/issues/9912
2023-04-07 11:21:34 +03:00
Alex Jbanca
79ea3e7d66 fix(CommunityMembersSettings): Add member context menu + fix user click action
Part of https://github.com/status-im/status-desktop/issues/9912
2023-04-07 06:21:13 +03:00
Khushboo Mehta
2501520dda fix(@desktop/wallet): Handle errors in ENS and stickers views. Disbale action and show tooltip.
fixes #8597, #10034
2023-04-05 19:05:54 +02:00
Michal Iskierko
4ceeb905dc fix(@desktop/communities): Compute deployment fees in async way.
Improve showing errors when estimating fees.

Fix #10035
2023-04-05 12:42:02 +02:00
Alex Jbanca
5dc60f5782 fix(JoinCommunityView): Change Reveal Address button icon based on auth type 2023-04-01 08:33:06 +03:00
mprakhov
f0d57d19cf fix(@desktop/messages): show reply header if we send image 2023-03-30 16:49:09 +02:00
Pascal Precht
81d4ea05e9 fix(communities): only require auth for token gated communities
There's a bug that all requests to join a community require the user to
authenticate themselves. This should only be needed for community that
are token permissioned.

This commit fixes it by only performing auth when requesting from the
tokengated community view.

Fixes #10010
2023-03-24 15:22:47 -04:00
Lukáš Tinkl
c65de87ad0 fix: unbreak displaying community invitation bubble
it would fail to fetch the community info due to the undefined variable
name
2023-03-24 17:53:06 +01:00
Boris Melnik
30b4d9eb5c fix(chat): Sent images with text correctly
Fixes: #9564 #6374
2023-03-24 14:33:17 +03:00
Pascal Precht
054ad18532 feat: add authentication modal to join commmunity view
Users that request access to community that are token permissioned
need to authenticate and enter their password, so they can reveal
their wallet addresses
2023-03-23 14:28:31 +01:00
Pascal Precht
2ca8fd04e2 fix: apply proxy model to collectiblesModel
This is needed to render commnity NFT artwork
2023-03-17 13:59:13 +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
Michał Cieślak
d813cc12b8 chore(CommunityPermissions): refactor access to stores in CP components
So far CP components (views, panels) were accessing stores directly.
Now `CommunitySettingsView` is a single place where stores are accessed.
Other components no longer depend on stores.

Moreover:
- dedicated store `PermissionsStore` created for handling permissions
  in a single, separated place
- storybook pages fixed

Closes: #9784
2023-03-08 12:02:55 +01:00
Pascal Precht
e4b8814bfa feat(Communities): allow for creating community permissions
This commit is the first of implementing community permissions.
**It is not implementing the complete feature**, rather does it
introduce the first pieces, such that we can get code reviewed and
merged before it grows too big.

To review these features, please make sure to

1. Enable wallet (Settings -> Advanced -> Wallet toggle)
2. Enable community permissions (Settings -> Advanced -> Community
   Permissions toggle)

You'll have to restart the app after doing so.

The commit introduces the following:

**UI, API calls and view models to CRUD community permissions**

After creating a community, the user can go to the community
settings and create new token permissions. The user can also update
and delete existing permissions.

**Asset and collectible view models**

To create community token permissions, users have to select
the token criteria. This commit introduces the `assetsModel` for ERC20
tokens and `collectiblesModel` for `ERC721` tokens.

The latter only supports custom minted community tokens at this point.

**This commit requires:** https://github.com/status-im/status-go/pull/3207
2023-03-03 10:22:32 +01: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
Michal Iskierko
b6f5c558a9 feat(@desktop:communities): Minting functionality with dummy data
Add Community Tokens testing UI with minting button, enabled by a Advanced Settings toggle.
Add minting module,view and needed models.
Add community_tokens service to call collectibles smart contract functions.

Issue #8921
2023-02-13 13:42:29 +01:00
Noelia
842c90a31e feat(Community): Create CommunityColumnHeaderPanel component
- `CommunityColumnHeaderPanel` created.
- Added corresponding `storybook` page.
- Modified `CommunityColumnView` to use new component `CommunityColumnHeaderPanel` instead.
2023-02-10 10:45:38 +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
Richard Ramos
fb526840a4 feat: waku2 store
- add toggle to enable store functionality
- output messages to csv
- add custom waku2 nodes
2023-02-01 15:35:36 -05:00