Commit Graph

145 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
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 34676d0ec7 fix(CommunityPermissions): clean warnings by preventing assigning when some roles doesn't exist
Closes: #9608
2023-02-22 14:43:40 +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 d025f17e2a feat(CommunityPermissions): Check if form filled completely when
updating

Closes: #9388
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 c05334c327 chore(CommunityPermissions): Use enum for token category, keep string labels in UI only
Closes: #9556
2023-02-16 13:39:55 +01:00
Alexandra Betouni aa2e6386a2 fix(statusApp): resolving qml errors/warnings pt2.1
Relates to #8864
2023-02-08 18:43:51 +02:00
Lukáš Tinkl edc94c9d8d fix: unbreak community options layout
got broken with the recent scroll view fixes
2023-02-02 18:27:22 +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
Michał Cieślak bd6dc02162 feat(Community Permissions): Add search option in assets / collectibles dropdown
Closes: #9042
2023-02-02 13:23:22 +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
Alexandra Betouni f7294c00f5 fix(statusApp): resolving qml errors/warnings pt2
Closes #8864
2023-01-31 18:45:18 +02:00
mprakhov 44cc6bbf83 fix(@desktop/communities): enforce alphanumerical characters in community name, description, channel name 2023-01-30 20:51:31 +02:00
Michał Cieślak 63a0f51305 chore(CommunityPermissions): Adjust behavior of 'Hide permission' switch depending on selected permission
Closes: #9050
2023-01-26 13:03:26 +01:00
Michał Cieślak ecf999eb37 chore(CommunityPermissions): Simplify InDropdown popup (selecting only channels, no add channel button) 2023-01-26 13:03:26 +01:00
Michał Cieślak e2dadeb15e chore(CommunityPermissions): Disable granting admin permission for non-owners 2023-01-26 13:03:26 +01:00
Michał Cieślak 9ac0c159fe feat(CommunityPermissions): prevent adding tokens and ens names that are already chosen
Closes: #8817
2023-01-26 01:20:28 +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
Alexandra Betouni 7620061ba3 fix(CommunityEdit): content width should have fixed size
Closes #9051
2023-01-16 17:00:08 +02: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
Dario Gabriel Lipicar ac7b322ee7 fix(@desktop): fix AmountInput locale
Fixes #9103
2023-01-13 09:59:14 -03: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
Dario Gabriel Lipicar 7c4022e4ac feat(@desktop/wallet): implement unified currency formatting
Fixes #8640
2023-01-12 15:21:27 -03:00
Noelia cc4ebc0ec8 fix(Community Permissions): Update `PermissionItem` according to the new design
Removed `and` text between items in `In` section.

Fixes #9049
2023-01-12 11:17:00 +01:00
Noelia a181d1d867 fix(Community Permissions): Remove (hide) minting and import option in assets dropdown
Removed (hidden) minting and import option in assets dropdown

Fixes #8827
2023-01-12 08:58:43 +01:00
Lukáš Tinkl f6355dc4a6 fix(StatusBaseInput): No padding for input fields
- make the left/right padding and internal spacing consistent with the
Figma design

- the padding itself got broken by a behavior-incompatible change introduced in
17aaec2d53 (diff-451194c72ab50ea2586b6f1d6521b81d9a93206069788117326788be28b638fd);
this change is however correct but we can no longer rely on the
implementation detail that used to "reset" the left/right padding to its
default value when we set  `leftPadding: 0`

Fixes #8910
2023-01-06 00:59:42 +01:00
Michał Cieślak d58dd3331b feat(CommunityPermissions): Dropdown for channels selection added 2022-12-21 21:48:51 +01:00
Noelia 73b2fb2271 fix(CommunityPermissions/PermissionItem): The component allowed adding labels with long texts that exceed the content itself
- Updated `PermissionItem` to avoid the `StatusListItemTag` exceeding the content itself.
Fixes #8580
2022-12-21 18:42:16 +01:00
Noelia 579075d6cc fix(StatusQ/StatusListItemTag): Changed API and added test elide property when a specific width is forced
- Changed `StatusListItemTag` API. Now it is based on `Control` component.
- Updated needed qml files to fit with the new `StatusListItemTag` API.
- Added `elide` property in `Text` component to better visualise the content when a specific width is forced.
2022-12-21 18:42:16 +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
Michał Cieślak 9dcaf86e42 feat(CommunityPermissions): search for collectibles dropdown
Closes: #7158
2022-12-16 00:52:09 +01:00
Michał Cieślak 7234e49fee chore(Storybook): Add HoldingsDropdown page 2022-12-16 00:52:09 +01: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 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
Igor Sirotin e3bfdc0f09 fix(StatusPopupMenu): Refactoring 2022-12-02 10:30:50 +03: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
Richard Ramos 3b3b737956 feat: encrypt communities 2022-10-25 08:26:10 -04:00
Michał Cieślak 648c943c53 feat(@desktop/communities) Permissions - 'is allowed to' dropdown 2022-09-19 22:00:03 +02:00
Michał Cieślak 34625ad1c4 feat(@desktop/communities) Permissions, 'who holds' section - handling localiezed amounts
Closes #7162
2022-09-19 21:46:44 +02:00
MishkaRogachev 25c5be2f78 feat(ActivityCenter): Refactor AC from chat and place in mainui
Close #7338
2022-09-15 12:21:06 +03:00
Michał Cieślak 0be30b5e54 feat(@desktop/communities) Permissions - holdings edit and remove
Closes #6339
2022-09-08 11:11:28 +02:00
Michał Cieślak c2c2532986 feat(@desktop/communities) Permissions - ENS panel added to "Who holds" selector
Closes #6338
2022-09-07 22:33:36 +02:00
Michał Cieślak b2d678c2c4 chore(HoldingsDropdown): Component refactor and split into smaller files
- decomposed into set of separate components
- reduced number of magic numbers
- minor adjustments with design
2022-09-07 22:33:36 +02:00
Alexandra Betouni e1c548696f feat(Desktop)!: Updating desktop app due to IconSettings refactor
As part of https://github.com/status-im/StatusQ/issues/781
2022-09-02 18:41:21 +03: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
PavelS ba50c69b76 fix(@desktop/community)!: missing error messages
Remove ValidationMode.Always for StatusInputs because by default they
are invalid and validate input when dirty
Remove condition from errorMessage of BackupSeedStepBase as not needed.

Fixes #6825

Requires https://github.com/status-im/StatusQ/pull/858

BREAKING CHANGE: StatusInputs are invalid by default and validate when
dirty.
2022-08-18 15:17:14 +03: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
MishkaRogachev e67d649c46 feat(desktop): New invite to community popup with message 2022-08-12 11:54:51 +04:00
PavelS e0f051006a fix(@desktop/community) adjust Image Upload popup
- update to fixed version of StatusQ

Fixes #6835
2022-08-11 12:49:28 +03:00
Lukáš Tinkl 6f1cf8bd74 fix(CreateCommunityPopup): Create Community modal adjustments
- fix initial input focus
- fix texts according to design
- fix TAB keys between the input fields
- fix input fields text and placeholders alignment
- make the community options checkboxes clickable
- adjust margins/spacing according to design

Closes: #6724
2022-08-03 12:01:28 +02:00
Alexandra Betouni cbb6cd70a8 fix(CommunityIntroMessageInput): input height was set to 0
Closes #6697
2022-08-02 17:18:39 +03:00
Alexandra Betouni be64f60a86 fix(StatusInput): Updated status input custom height leftovers
Closes #6637
2022-07-26 14:45:41 -04:00
Alexandra Betouni 84522bd7fe fix(CommunitiesPortal): fixed status input as per design
Closes #https://github.com/status-im/status-desktop/issues/6358
2022-07-25 15:07:27 +03:00
Alexandra Betouni 2bd685943f feat(chat): Removing dynamic scoping from chat section
Closes #4244
2022-07-15 17:00:36 +03:00
Patryk Osmaczko e0a5afebee chore(translations): transform `qsTrId` to `qsTr`
issue: #4544
2022-07-06 19:09:50 +02:00
MishkaRogachev a9b2459d79 fix(@desktop): Remove nested popups in create community
Close #6027
2022-06-27 13:12:52 -04:00
MishkaRogachev e30ba7e760 feat(@community): Add tags to communities
Close #5680
2022-06-24 19:44:35 +03:00
Patryk Osmaczko 51eefad5e5 feat(@community): add frontend for intro message
issue: #5746
2022-06-04 12:00:11 +02:00
Alexandra Betouni 56b182c50b fix(communityMembers): Fixed member item width in list
Closes #5212
2022-05-25 13:01:20 +03:00
Michal Iskierko 2e5f1c9c4d fix(@desktop/chat): Show badge and message in activity center for reply elements
Fix #5523
2022-05-18 13:59:45 +02:00
Alexandra Betouni f62b0ca99c fix(Chat): Corrected click behavior in members list
Closes #5637
2022-05-12 15:46:42 -04:00
Boris Melnik fcd728ed94 fix(InviteFriends): Fix width for names
Closes: #5528
2022-05-09 17:04:46 -04: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
Patryk Osmaczko 58d1319946 fix(@desktop): unify user avatar fallback color
issue: #5358
2022-04-08 14:04:21 -04:00
Patryk Osmaczko 25c6a5f5ca chore(@desktop): remove identicon related code 2022-04-04 17:50:48 +02:00
Patryk Osmaczko e130953634 feat(@desktop): use emoji hash and identicon ring
Closes: #4782
2022-03-16 18:34:57 +01:00
Jonathan Rainville 68a4498d11 feat(privacy): reimplement show only contact pfp using status-go setting
Fixes #4900
2022-03-08 15:50:15 -05:00
Jonathan Rainville be9d2f94e2 feat: enable emojis as channel icons
Fixes #4809
2022-03-08 15:15:25 -05:00
Alexandra Betouni c2977e468f feat(onboarding): Added SplashScreen
- Added SplashScreen as initial screen before
onboard as per new designs.
- Also moved all onboarding related code from
main to onboarding section and switched to
import this and all other sections as
qml modules, exposing this way only
necessary files.
- Cleaned up unecessary qmldir files and
imports.

Closes #4954
2022-03-08 14:02:24 -05:00
Patryk Osmaczko ba7a6d5d34 style: remove trailing whitespaces 2022-02-09 11:16:23 +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 b6b6d6b6c7 refactor(@desktop/chat-messages): `MessageContextMenuView` component updated 2022-02-01 11:45:50 +01:00
Sale Djenic 7f40ae0f57 refactor(@desktop/chat-communities): unused component removed
- `NormalMessageView` component is removed since we work with `CompactMessageView`
and it's the only and default message component in the app.
- `useCompactMode` property removed from local settings since it's not in use as
well and corresponding code is updated accordingly
2022-02-01 11:41:38 +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
Sale Djenic f138fecdd2 refactor(online-users): adding online users for chat/channel 2022-02-01 11:38:07 +01:00
Pascal Precht 868c675f6e refactor(@desktop/chat): use StatusQ components for chat user list
This replaces the self-built components for the user list with StatusQ's
list item component and also addresses some of the quirks that existed in the UI
related to that original component.

The user list is now responsive and properly aligned.

**This depends on StatusQ v0.18.0**
2021-12-02 11:27:43 +01:00
Alexandra Betouni c0450f0580 refactoring (desktop/chat) Message component
Moved Message component & dependencies  to shared
for usage import shared.views.chat 1.0 and accordingly
import shared.controls/panels.chat 1.0

Closes #3927
2021-11-24 13:15:15 +01:00
Sale Djenic cc5ccbc951 refactor(@desktop/general): qml updated according to the new `userProfile` instance 2021-11-24 13:15:15 +01:00
Sale Djenic 3f6bb66536 refactor(@desktop/general): `globalSettings` moved to Nim 2021-11-05 11:02:45 -04:00
Sale Djenic f0b2ed6cca refactor(@desktop/general): `appSettings` moved to Nim 2021-11-05 11:02:45 -04:00
Alexandra Betouni 426c116bac refactor(desktop) Made shared a QML module
Use it as import shared 1.0, import shared.controls 1.0
etc instead of import "../../../shared"

Closes #3934
2021-10-27 18:05:45 -04:00
Alexandra Betouni 056f84c301 refactor(desktop/chat) Cleaning up popups 2021-10-26 16:22:49 -04:00
Alexandra Betouni 22429689e3 refactor(desktop/chat) Cleaning up panels 2021-10-26 16:16:37 -04:00
Khushboo Mehta be7a56cc27 refactor: replace all the StatusImageIdenticon with StatusQ's StatusSmartIdenticon
closes  #3848
2021-10-26 19:23:33 +02:00
Pascal Precht 2db77fa31c refactor: replace StatusIcon and StatusLoadingIndicator with StatusQ components 2021-10-26 10:47:47 -04:00
Pascal Precht cbbbedcc79 cleanup: remove legacy `StatusCheckbox` 2021-10-26 10:47:16 -04:00
Khushboo Mehta 173943f1be refactor: replace StatusIdenticon with StatusSmartIdenticon
closes #3882
2021-10-26 09:30:18 -04:00
Pascal Precht 59109e1318 fix: make `getLinkStyle` work again
Probably slipped through in the refactor: `getLinkStyle` was defined
in to places, was probably meant to live only in `Utils`.

In addition, it expected a `wrapper` expression which wasn't defined.
This commit fixes it by removing the second declaration of that function
and passing a third parameter to the one defined in `Utils`.
2021-10-25 11:25:38 +02:00
Alexandra Betouni 9cc361c40a refactor(desktop/chat) Moving chat to new architecture
Closes #3710
2021-10-20 15:29:38 -04:00