Commit Graph

229 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
Alexandra Betouni 7c87bc8987 fix(scrollview instances): fixed dropdown&popup height
Fixes InDropdown & OutgoingContactVerificationRequestPopup
2023-02-23 20:52:29 +02: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
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
Noelia 852a826126 fix(CommunityPermissions): Update initial page dark mode image
Closes #8497
2023-02-21 08:46:52 +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 03e1636cff feat(StatusQ): Add cpp model utils to allow handling ListModel and generic QAbstractItemModel uniformly
Closes: #9562
2023-02-20 22:25:56 +01:00
Michał Cieślak c23f4e173e fix(CommunityPermissions): Typos corrected 2023-02-20 18:40:59 +01:00
Michał Cieślak d025f17e2a feat(CommunityPermissions): Check if form filled completely when
updating

Closes: #9388
2023-02-20 18:40:59 +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 7388bbfef3 chore(CommunityPermissionsView): component api unified and simplified 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
Michał Cieślak 3a3d1657f0 chore(CommunityNewPermissionView): exclude subcomponent HidePermissionPanel 2023-02-20 18:40:59 +01:00
Michał Cieślak 411c2a0aab chore(CommunityNewPermissionView): refactor save/reset changes handlers 2023-02-20 18:40:59 +01:00
Noelia c1e3050d06 feat(MintingTokens): Created welcome view
- Created minting tokens welcome view.
- Added basic navigations.

Closes #8732
2023-02-20 12:06:22 +01:00
Noelia 17fc999ca0 feat(CommunitySettings): Created base welcome settings view
- Component parametrised and renamed to `CommunityWelcomeSettingsView`. It will be the base class for some of the community settings functionalities.
- Updated `CommunityPermissionsSettingsPanel` to use the new welcome screen class.
2023-02-20 12:06:22 +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
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 ec8b03be6e feat(JoinCommunity): Created join permission overlay panel
Created needed components to display permission requirements to join a community.

Part of #9267
2023-02-10 10:45:38 +02: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
Alexandra Betouni aa2e6386a2 fix(statusApp): resolving qml errors/warnings pt2.1
Relates to #8864
2023-02-08 18:43:51 +02: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
Alexandra Betouni 9a2ffc0fc7 Fix(desktopapp): adding scrollview to storybook
Cleaned up binding loop warnings related to
ScrollView and added StatusScrollView in
storybook

As part of #8864
2023-01-31 18:45:51 +02:00
mprakhov 44cc6bbf83 fix(@desktop/communities): enforce alphanumerical characters in community name, description, channel name 2023-01-30 20:51:31 +02:00
Lukáš Tinkl 8569ea5b41 chore: Optimize StatusMessageReply using more Loaders
also fix the sender display name to respect ensName/nickname

Fixes: #9016
2023-01-25 19:58:19 +01:00
Lukáš Tinkl a55a207bb2 fix: user display name discrepancies
restore taking local nickname into account in various places
2023-01-25 19:58:19 +01:00
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
Alexandra Betouni 7f2563edf4 fix(message): removed extra markup when typing before mention
Closes #8495
2023-01-23 16:17:36 +02:00
Alex Jbanca bf1d59c0ad perf(chatScroll): Avoid calling the backend on delegate creation/binding
Provide the needed data from the nim model directly to the delegate. This way whenever a delegate needs to display the data it doesn't need to reach the backend.

perf(chatScroll): Fix comments on Avoid calling the backend on delegate creation/binding

perf(chatScroll): Avoid calling the backend on delegate creation/binding  - add TODO comment on senderColorHash default

perf(chatScroll): merge quotedMessageAuthor details

perf(chatScroll): Fix nim tests

perf(chatScroll): Fix merge error - messages_model.nim
2023-01-19 19:24:18 +02:00
Michał Cieślak 769a41ea9c feat(CommunityPermissions): UI support to show the % of members fulfilling permission
Closes: #9044
2023-01-19 13:38:47 +01:00
Alexandra Betouni 7620061ba3 fix(CommunityEdit): content width should have fixed size
Closes #9051
2023-01-16 17:00:08 +02:00
Noelia 5e2fa14cd6 fix(Community Permissions): Update change detected buttons labels according to the new design
Exposed new properties in `SettingsDirtyToastMessage` to customise buttons texts.
Exposed new properties in `SettingsPageLayout` to customise dirty toast buttons texts.

Fixes #9046
2023-01-12 13:37:49 +01:00
Lukáš Tinkl 785110b410 chore: remove dead code 2023-01-09 16:41:51 +01:00
Michał Cieślak fe7884cd29 feat(CommunityPermissions): InDropdown integration
Closes: #6041
2022-12-21 21:48:51 +01:00
Pascal Precht 865ed32deb feat: introduce ability to @everyone
Closes #8479

This needs: status-im/status-go#3026
2022-12-21 10:19:48 +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
Boris Melnik f35468963c fix(warnings): Rid off warnings
Fixes: #8293
2022-12-15 19:31:18 +03:00
Michal Iskierko 3f01af4446 fix(@desktop/chat): Fix user names propagation.
Add ProfileUtils for displaying correct name.
Set names in models correctly.
Fill names in qml correctly.

Fix #8343
2022-12-14 17:44:26 +01:00
Boris Melnik 123b8e320a fix(warnings): Fix chat, community settings warnings
Fixes: #8293
2022-12-13 17:46:30 +03:00
Noelia 5d318d0304 fix(CommunitySettings): Previous page navigations are broken in community settings sections
Added property `previousPageName` into `SettingsPageLayout`.
Added needed slots in `CommunitySettingsView` to get `previousPageName` property changes and display the correct string.
Renamed `updateState` method to `navigateBack` to have a better accurate name.

Fixes #8455
2022-12-12 12:54:15 +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
mprakhov d60a4b0c97 fix(@desktop/chat): open 121 chat by pasting chat key of existing mutual contact 2022-12-06 15:01:09 +02:00
mprakhov 32d1d927ef fix(@desktop/chat): Hide 'no results found' when entering the chat key in start chat 2022-12-06 12:39:02 +02:00
Igor Sirotin e3bfdc0f09 fix(StatusPopupMenu): Refactoring 2022-12-02 10:30:50 +03:00
Lukáš Tinkl 9559789030 chore: reduce the number of (verification) RPC calls
- when calling `Utils.getColorHashAsJson()` we don't actually need to
issue ID verification requests at all and there might be situations when
we know beforehand that we don't need the ENS verification either
- change these helper functions' syntax and do early returns in that case
- in MessageContextMenuView, the "contact details" were duplicated, so
remove one
- remove dead code, fix some warnings
2022-12-01 16:50:23 +01:00