Commit Graph

236 Commits

Author SHA1 Message Date
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
Noelia db3be56d42 feat(MintTokens): Create new collectible screen
Created new form screen for minting collectibles.

Closes #8733
2023-02-28 14:17:47 +01:00
Michal Iskierko 147288b47b feat(@desktop/community): Saving community tokens in database
Model with community tokens was moved to section_item - every section has its own model.
Every deployed smart contract is saved to database with "In Progress" state.
The app listenes to deployed transaction and updates contract state in database to "Failed" or "Deployed".
Corresponding model is updated.

Issue #9233
2023-02-27 11:01:35 +01:00
Michał Cieślak 9693e19ba5 fix(CommunityPermissions): Adjust store API to not take models as parameters, move conversion to the caller
Closes: #9611
2023-02-22 18:27:19 +01:00
Michał Cieślak e2811fa290 feat(CommunityPermissions): Handle update/remove by permission's key instead of index 2023-02-20 22:54:43 +01:00
Michał Cieślak a97c8a720e feat(CommunityPermissions): Implement duplication checking
Moreover:
- adapt flow to the design
- introduce ModelChangeTracker utility component

Closes: #9048
2023-02-20 18:40:59 +01:00
Michał Cieślak c78eaef2b6 chore(CommunityPermissions): Permissions model and backend API simplified, separation of concerns improved 2023-02-20 18:40:59 +01:00
Michał Cieślak 9757002c7d chore(CommunityPermissions): Permissions model & backend API simplified, dirty state handling simplified
Additionally, permission types metadata excluded to PermissionTypes
singleton component, PermissionsDropdown simplified by using inline
components.
2023-02-20 18:40:59 +01:00
Michał Cieślak fb19385438 chore(CommunityNewPermissionView): refactor to improve separation of concerns, create/save actions moved up 2023-02-20 18:40:59 +01:00
Noelia 8e9ae308d5 fix(qmlWarnings): Fixed minting module related warnings
Fixed minting module related warnings
2023-02-20 12:06:22 +01:00
Sale Djenic 8cc80694e2 fix(@desktop/general): qml warnings caused by undefined context props handled 2023-02-17 12:25:44 +01:00
Noelia fe5abb60da feat(TokensPermissionsPoupup): Created new popup
- Created new dialog.
- Created storybook page for that.
- Model properties renames.

Closes #9433
2023-02-17 11:13:51 +02:00
Michał Cieślak c05334c327 chore(CommunityPermissions): Use enum for token category, keep string labels in UI only
Closes: #9556
2023-02-16 13:39:55 +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
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
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
Michał Cieślak dc3bcd7da1 feat(Community Permissions): Integrate In section with permission creation/editing
Closes: #8855
2023-02-02 16:36:46 +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
Jonathan Rainville baea10cacf refactor(chat-model): flatten chat model to only have chat items
Fixes #5286
2023-01-30 15:36:48 -05:00
Michał Cieślak e2dadeb15e chore(CommunityPermissions): Disable granting admin permission for non-owners 2023-01-26 13:03:26 +01:00
Noelia a3313b563f feat(Community Permission): Add conflicts warning panel
It adds conflicts warning in `New permission` page. Mocked data.

Closes #8738
2023-01-25 17:05:27 +01:00
Noelia 3136ffb54d feat(Community Permissions): Update `Who holds` tokens dropdown design and flow according to the new design
- Updated initial dropdown view for assets and collectibles to directly show the list of corresponding elements.
- Updated assets and collectibles panel when an item is selected, according to new design.
- Updated collectibles logic when amount is 1.
- Added collectibles group item as part of the selectable's options.
- Updated `storybook` according to new changes.
- Created reusable `TokenItem` component.
- Updated `CommunityPermissionsHelpers`.

Closes #9043
2023-01-24 14:16:38 +01:00
Michał Cieślak d980c177a4 chore(CommunityPermissions): ENS tab simplified according to updated design
Closes: #8818
2023-01-20 14:00:02 +01:00
Igor Sirotin 8736dd8a94 fix: Community importing notification fixes and improvements 2023-01-20 13:15:50 +03:00
Dario Gabriel Lipicar a6afdb5266 fix(@desktop): use system locale across the application 2023-01-17 16:39:56 -03: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
Alex Jbanca d07136481c perf(chatScroll): Adding signals for chat settings in MessageStore
perf(chatScroll): Fix comment
2023-01-16 10:26:53 -05:00
Noelia ea0db55361 fix(Community Permissions): Update `tokens` names to `assets`
- Updated enumerators that were defining `tokens` instead of `assets`.
- Updated property names and labels.
- Updated signals and components names.
- Updated storybook.

Fixes #8816
2023-01-13 14:51:31 +01:00
Noelia 5676fb96ef fix(Community Permissions): Update `Who holds` add new item with always AND action
- Logic related to operators removed.
- Dropdown `and/or` removed.
- Updated `PermissionItem` to display only the tag and not the operator.
- Updated `storybook` according to new changes.

Fixes #8500
2023-01-13 10:51:10 +01: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 91c2e6d257 feat: use QuotedMessage object for replies to better show the replies
Fixes #7754
ok
2023-01-12 15:18:03 -05:00
Dario Gabriel Lipicar 7c4022e4ac feat(@desktop/wallet): implement unified currency formatting
Fixes #8640
2023-01-12 15:21:27 -03:00
mprakhov 52d336b5a6 fix(@desktop/chat): allow to send attached image without text input 2023-01-11 18:27:31 +02:00
mprakhov 3994f8b2fb fix(@desktop/chat): show message which was sent during group chat creation 2023-01-10 23:53:46 +02: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
Patryk Osmaczko fe87cbaada fix(chat/messages): load messages even if fetch is ongoing
fixes: #8831
2023-01-04 11:05:11 -05:00
Pascal Precht f3eb29bfea feat(chat): allow for editing last user message using arrow-up key 2022-12-22 17:31:32 +01:00
Khushboo Mehta f84404c956 feat(@desktop/wallet): Custom routing
fixes #8237
2022-12-21 19:25:11 +01:00
Noelia a9d25697dd feat(CommunitySettings): Implement UI for`edit`, `duplicate` and `remove` actions in community permissions page
feat(CommunitySettings): Implement UI for`edit`, `duplicate` and `remove` actions in community permissions page

- Enabled `duplicate` action (mocked).
- Enabled `delete` action (mocked) and added / updated navigations in case all permissions are removed.
- Added delete confirmation popup.
- Enabled `edit` action (mocked) where changes are detected and the `dirty changes toast` appears properly.

Closes #8581
2022-12-19 15:25:16 +01:00
Patryk Osmaczko 87674064d0 feat(chat/messages): implement new messages marker
closes: #8572
iterates: #7488
2022-12-16 19:12:12 +01:00
Michał Cieślak 7234e49fee chore(Storybook): Add HoldingsDropdown page 2022-12-16 00:52:09 +01:00
Igor Sirotin 50427390dd ens: Fix ens name inconsistency across app 2022-12-14 23:46:50 +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
Noelia 2087a5322b feat(storybook): Added `CommunityPermissionsViewPage` to storybook
- Created page and added editor for specific page.
- Created needed mocked models.
- Added background in permission related pages to ensure correct dark mode visualization.
2022-12-10 14:02:02 +01:00
Noelia 1db0a0077d feat(storybook): Added `CommunityPermissionsSettingsPanel`
- Added `CommunityPermissionsSettingsPanel`.

- Created panel item editor and basic panel editor layout for `CommunityPermissionsSettingsPanelPage`. Still not linked to a model.

- Added mocked data for collectibles and tokens.

- Created `ChannelsModel` mocked data.

- Added edit / duplicate / remove signals logs.
2022-12-10 14:02:02 +01:00
Noelia 1cbb3e2ad3 feat(CommunityPermissions): Created `CommunityPermissionsView` layout
- Created `CommunityPermissionsView` and integrated into the flow.
- Created `PermissionItem` component.
- Added `holdingsListModel`, `permissionsObjectModel` and `channelsListModel` flows with mocked data.
- Added `isPrivate` permission property.
- Added button header in `SettingsPageLayout`
- Added signals/methods for edit/duplicate/remove permissions
- Created new file `OperatorsUtils.qml` specific for `Operators`
2022-12-10 14:02:02 +01:00
Pascal Precht b510b33730 feat(communities): allow community import via public key
Status allows for importing communities via their private keys.

There's a requested feature that users should be able to import a community via
its public key as well.

This will behave differently as private keys won't give users ownership
of the communities. When importing via a (compressed) public key, Status
will try to fetch information about the community from the network. If it
finds such information, it'll load it into the app and create
a communitiy view from which users can then request access.

If it can't find a community or community information in the network,
the user will get a dedicated error message.

This commit also refactors the `ImportCommunityPopup` such that it uses
`StatusDialog` and updates the copy accordingly since importing via
public key is now possible as well.

Closes #8339
2022-12-07 14:18:08 +01:00
Khushboo Mehta 779df7628b fix(@desktop/wallet): Remove gas selector for slow, optimal and fast
fixes #8516
2022-12-05 14:51:39 +01:00
Jonathan Rainville b65211ac94 feat(Settings): Enable Community Archive by default and remove toggle
Closes: #6098
Original commit by @borismelnik
2022-11-30 14:41:48 -05:00
Boris Melnik bff6b22fc4 fix(replies): Get original message from status-go for replies
Fixes: #7248
2022-11-30 14:07:49 +01:00
Pascal Precht 213924f6e9 feat(chat): support copy & pasting images into chat input
This adds support for receiving copied images from the clipboard
and pasting it into the chat input.

After pasting, chat input will recognize the image and render a preview
similar to how it would do it when selecting images via the file dialog.

**Also important to note**:

At the time of this PR, it seems that desktop only supports sending
jpegs to status-go. I'm not sure if this was deliberately done this way
because the protocol says it supports jpg, png, webp and gif.

Because of this, pasting for example pngs will work, however
transparency will be lost (which is also most likely the cause of #8820)

This PR operates on that assumption. So while it adds support for
copy/pasting images, it does not address the lack of file type support.

Closes #3395
2022-11-29 12:31:18 +01:00
Patryk Osmaczko bd7f890cce feat(storybook): add MembersSelector to storybook
closes: #8178
fixes: #8210
2022-11-18 13:13:38 +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
Boris Melnik 42234c7d49 feat(communities): User is able to cancel membership request
Part of: #7072
2022-11-10 23:07:22 +03:00
Michal Iskierko 1f2a050695 feat(@desktop/general): Use compressed community key in deep links
Issue #8001
2022-11-08 15:18:39 +01:00
Igor Sirotin 82bc21b4ff fix: Fixed group and channel mention notifications 2022-10-28 21:21:49 +03:00
Michal Iskierko 234a164597 fix(@desktop/chat): Accept profile deep link in "Send Contact Request to chat key"
Fix #8070
2022-10-28 16:15:40 +02:00
MishkaRogachev 6a72773ab6 feat(ActivityCenter): Refactor AC Store and fix notifications counting
Close #7654
2022-10-28 12:29:40 +03:00
MishkaRogachev 5d8e3ac252 feat(ActivityCenter): Fix handling membership requests from AC 2022-10-28 00:25:10 +03:00
Khushboo Mehta aec7a30d03 feat(@desktop/wallet): Updated UI for bridge and multi routing support
fixes #7334
2022-10-26 18:48:30 +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
Richard Ramos 3b3b737956 feat: encrypt communities 2022-10-25 08:26:10 -04:00
Lukáš Tinkl 7a407662e2 feat: New Profile Modal
Fixes: #7360
2022-10-17 12:05:54 +02:00
Patryk Osmaczko acbf6fce51 feat(@desktop/communities): add new join community workflow
- user is able to see community without being a member
- invitation bubble always display "Go to Community"
- join community buttons are displayed in community view

main part of: #7072
2022-10-07 09:10:21 +02:00
Igor Sirotin b65023bf45 fix(PinnedMessagesPopup): Fixed reply messages displaying 2022-10-04 14:09:19 +03:00
Sale Djenic a1027ff087 feat(@desktop/keycard): sign transaction using `Authenticate` flow
Actually this is not a signing transaction, but rather authenticating logged in
user when he wants to send a transaction. An authentication is done by entering
password(regular user) or pin(keycard user).

A real signing transaction feature will be (hopefully) added in a near future where
we're going to sign a transaction on a keycard which corresponds to a certain
account, a user wants to send a transaction from.

To sum up... this change just removes password from the send modal and introduces
`Authenticate` flow instead.

Fixes: #7510
2022-09-29 17:28:18 +02:00
MishkaRogachev ac9d68b6f5 feat(ActivityCenter): Add ReplyBadge & review fixes
Close 7276
2022-09-26 15:49:46 +03:00
MishkaRogachev d4d22f4094 feat(ActivityCenter): Notification badge with community info 2022-09-26 15:49:46 +03:00
MishkaRogachev edbd9adbb6 fix(ActivityCenter): Getting any of AC notifications visible
Close #7016
2022-09-20 16:43:21 +03:00
Patryk Osmaczko 655af35958 chore(@desktop/chat): remove legacy GroupInfoPopup 2022-09-13 12:33:34 +02:00
Michał Cieślak 0be30b5e54 feat(@desktop/communities) Permissions - holdings edit and remove
Closes #6339
2022-09-08 11:11:28 +02: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
Jonathan Rainville 7544bd6fb5
fix: change gateway and remove old code to decode the hash
Fixes:
- https://github.com/status-im/status-desktop/issues/6964
Depends on:
- https://github.com/status-im/status-go/pull/2795
- https://github.com/status-im/status-jenkins-lib/pull/44

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-08-26 19:47:02 +02:00
Noelia 3d6e40fd79 feat(CommunityPermission): Added `How holds` collectibles dropdown
- Added collectibles tab component.
- Added extended dropdown base content component
- Added filter popup option.
- Added collectibles model
- Added subitems in model
- Added thumbnails mode view
- Created `CommunitiesStore` and moved mock data to there.
- Added forward subitems navigation and selection.
- Updated `statusq`.

Closes #6337
2022-08-26 18:06:58 +02:00
Igor Sirotin 42a1cf995c fix(ChatMessagesView): Usage of `StatusMessage` WIP 2022-08-20 03:02:41 +03:00
Lukáš Tinkl 395d5548b4 feat(CreateCommunityPopup): Add Community Banner to Create Community Modal
as status-go already supports parsing the banner JSON string, just pass
it along the NIM backend

Closes #6726
2022-08-18 10:15:04 +02:00
Noelia 7b54bf31b4 feat(CommunitySettings / Permissions): Added `welcome` page and `How holds` tokens dropdown
- Added functionality as experimental advanced view button

feat(CommunitySettings / Permissions): Added welcome page
- Enabled new permissions tab.
- Created welcome page layout.
- Added permissions welcome image.
- Fixed top margin content in `SettingsPanelLayout` to fit designs.

Closes #6036

feat(CommunitySettings/Permissions): Created `new permission` page

- Added `new permission` page.
- Created first card layout.
- Added navigation between `welcome` and `newPermission` views.
- Improvements in base community settings layout pages.

Closes #6037

feat(CommunitySettings/Permissions): `Who holds` tokens dropdown component creation and integration

- Tokens dropdown component creation: main view, operators view and extended view.
- Logic to add new token and change operator.

Part of #6038
2022-08-16 13:42:11 +02:00
Boris Melnik fbc10e7665 fix(CreateChatView): Move `ActivityCenterPopup` to appmain
Closes: #6345
2022-08-15 14:10:27 +03:00
Michal Iskierko 92c1e9ce18 feat(@desktop/chat): Add sections to members tab of the community management
Add tabs: "All members" and "Banned"
Add unban functionality

Issue #5979
2022-08-03 09:48:09 +02:00
Patryk Osmaczko 5b51a7ce81 chore(settings): fix naming: locale->language 2022-07-27 14:22:50 +02:00
Anthony Laibe 6b9b5f20a8 fix(@community): Fix community join bubble
fixes #6133

When restarting the app, the community is not in the list
and data needs to be requested
2022-07-24 12:31:53 -04:00
Alexandra Betouni 2bd685943f feat(chat): Removing dynamic scoping from chat section
Closes #4244
2022-07-15 17:00:36 +03:00
Khushboo Mehta 35a5ab57f0 feat(@desktop/wallet): Implement the advanced/custom view with simple same network transfers
fixes #6268
2022-07-14 16:28:38 +02:00
Jonathan Rainville 95407cc1e0 fix(contacts): remove isMutualContact, use isContact or isAdded indead
Fixes #6220

Fixes the issue with the mutual contact icon showing when just added.
It also does a huge cleanup of the codebase to remove isContact and replace it with either isAdded, when we care only about if we added, or isMutualContact if we want the contact to be mutual
Also fixes an issue with the MessageContextMenu not reflecting the added state correctly.
2022-07-11 09:34:29 -04:00
Pascal Precht 51b661386a refactor: always request access to join community
We no longer send community invites to users, instead we just share the
community and let users request access.

That request will either be automatically or manually accepted by the owner/admin.

Depends on https://github.com/status-im/status-go/pull/2682

Closes #5115
2022-07-08 13:18:37 +02:00
Patryk Osmaczko e0a5afebee chore(translations): transform `qsTrId` to `qsTr`
issue: #4544
2022-07-06 19:09:50 +02:00
MishkaRogachev e30ba7e760 feat(@community): Add tags to communities
Close #5680
2022-06-24 19:44:35 +03:00
mishkarogachev 7a14cf5640 fix(@desktop/profile): Contact requests should support a message
Close #5846
2022-06-15 11:56:05 -04:00
Patryk Osmaczko cdd06b05eb feat(@desktop/group-chat): remove explicit join for groups
closes: #5717
2022-06-14 15:21:56 -04:00
Anthony Laibe 00ed4f9c44 feat(@wallet): multi transaction simple view 2022-06-09 15:22:24 +02:00
Patryk Osmaczko c07a2feca7 chore(@community/settings): address PR suggestions 2022-06-04 12:00:11 +02:00
Patryk Osmaczko 51eefad5e5 feat(@community): add frontend for intro message
issue: #5746
2022-06-04 12:00:11 +02:00
Boris Melnik aa1dae9e20 fix(@desktop/warnings): Fix bunc of qml/nim warnings
Closes: #5162
2022-05-25 14:27:25 -04:00
Pascal Precht 8c496e0505 feat(CommunitySettings): add checkbox to allow members to pin messages
This adds a checkbox to configure whether or not community members are
allowed to pin any message of a community channel, based on the newly
introduced `CommunityAdminSettings` that are introduced in https://github.com/status-im/status-go/pull/2668

Closes #5662
2022-05-19 14:53:40 +02:00
Jonathan Rainville 0358b6bf80 feat(community): make on request comm a check box and remove ensOnly
Fixes #5660
2022-05-12 13:31:48 -04:00
Boris Melnik 8f4e50d6a7 fix(SendModal): Send 0.0 amount if amount input is empty
Closes: #5474
2022-05-12 11:14:29 +03:00
Anthony Laibe 5e05a7613c fix(@settings): fix Gas selector for snt
fixes #5572
2022-04-21 14:05:31 +02:00
Sale Djenic 9c9d633065 fix(@desktop/activity-center): mentions and replies in the activity centre does not display community icon
Fixes #5302
2022-04-12 20:08:33 +02:00