Commit Graph

2069 Commits

Author SHA1 Message Date
Michał Cieślak 1ce17ca3d4 feat(TokenPanel): Add support for amounts and network selection
Closes: #9797
2023-04-21 10:26:00 +02:00
Michał Cieślak ada4fdd407 feat(TokenItem): add possibility to display amount, storybook page added 2023-04-21 10:26:00 +02:00
Michał Cieślak b5ba4d1bf4 feat(Airdrops): InlineNetworksComboBox component added 2023-04-21 10:26:00 +02:00
Michał Cieślak fb60d019b6 chore(StatusItemDelegate): api extended, internals improved
Id removed from StatusBaseText used in default contentItem, what was
causing that default contentItem was instantiated even when overridden
by user. Radius and cursorShape properties exposed.
2023-04-21 10:26:00 +02:00
Michał Cieślak 70a6327ad4 chore(TokenItem): component api simplified 2023-04-21 10:26:00 +02:00
Lukáš Tinkl 038ab08765 fix: do not display ENS name when not ENS verified
- expose "isEnsVerified" as model role
- fix returning "ensName" when the user is not ensVerified
- react to nickname updates correctly
- fix sorting in the user/member list view
2023-04-21 00:24:32 +02:00
Stefan 691de11211 fix(Wallet) network selection and unify network implementations
Major changes:

- Don't allow empty network selection. End up using the nim model
  directly instead because of individual row changes issues
  encountered with nim models
- Made the clone model a generic implementation to be used in other
places where we need to clone a model: ReceiveModal,
AddEditSavedAddressPopup
- Use cloned model as alternative to NetworksExtraStoreProxy in
  ReceiveModal
- Added tristate support to our generic checkbox control
- UX improvements as per design
- Fix save address tests naming and zero address issue
- Various fixes

Notes:
- Failed to make NetworkSelectPopup follow ground-truth: show partially
  checked as user intention until the network is selected in the
  source model. Got stuck on nim models not being stable models and
  report wrong entry change when reset. Tried sorting and only updating
  changes without reset but it didn't work.
- Moved grouped property SingleSelectionInfo to its own file from
  an inline component after finding out that it fails to load on Linux
  with error "Cannot assign to property of unknown type: "*".".
  It works on MacOS as expected

Closes: #10119
2023-04-20 19:34:24 +02:00
Noelia 73b2ec2903 feat(Mint/Airdrop Collectible): Implement Airdrop footer option
It enables navigation from mint token page to airdrop page selecting a specific collectible to be airdropped.

It is now used `symbol` property as the identifier for a collectible but will be needed to update it to `key` once this key property is build in backend by hash(chainId + contractAddress).

Closes #10047
2023-04-20 11:57:29 +02:00
Alexandra Betouni f507e33cba feat(StatusChatList): adding drag n drop functionality
Closes #3364
2023-04-19 12:26:15 -04:00
Lukáš Tinkl 812c0e9705 fix: suggestions list displayed when mentioning, still searches by alias
explicitely leave out searching by the `alias` (3-word name); it's
already enabled as a fallback to `name`

Fixes #9738
2023-04-19 15:28:21 +02:00
Patryk Osmaczko 7f3a66b68d fix(chat): correct `isAdded` behavior
`isAdded` for specific chat was always reflecting the active chat
property, effectively causing the chat inputs of these chats to be
disabled and, as a consequence, making the input vanish.

fixes: https://github.com/status-im/status-desktop/pull/10343#issuecomment-1512825761
2023-04-19 11:13:01 +02: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
Patryk Osmaczko ec7bd963e9 fix(chat): use loader for `ChatMessagesView` instead `ChatContentView`
fixes: #10285
2023-04-19 11:13:01 +02:00
Lukáš Tinkl e506bbfd6b fix(StatusStickerPackClickPopup): fix crash
the button to (un)install would be either greyed out or result in a crash:
- we were passing the popup a wrong store (w/o networkConnectionStore)
- the condition to `greyedOut` was inverted
2023-04-18 13:45:38 +02:00
Patryk Osmaczko e2697ae5aa feat(chat): implement jump to mention
closes: #9069
2023-04-17 18:53:42 +02:00
Michal Iskierko 7055a77a96 fix(@desktop/communities): Displaying toast messages when minting
Fix #9849
2023-04-17 15:11:35 +02:00
Noelia d5e5ba2796 fix(Mint/Airdrop tokens): Darkmode images
Updated images without background.

Closes #10299
2023-04-17 11:56:25 +02:00
Patryk Osmaczko 89efb1cd71 fix(chat): better integrate new messages marker with loading state
- new messages marker is reevaluated only if chat has unviewed messages
- loading state is reevaluated only when chat is made active, this fixes
  case described here:
https://github.com/status-im/status-desktop/pull/10151#discussion_r1158702638

fixes: #10275
2023-04-14 19:38:45 +02:00
Igor Sirotin aefa2b9f48
fix(StatusQ): StatusQ is QML module (#10207)
* StatusQ QML module
* qzxing is static lib again
* updated StatusQ resources
* fixed Emoji lookup
* added display to tests-imports ci
2023-04-14 11:18:56 +03:00
Michał Cieślak c38e0701d5 fix(Settings): Spacing updated according to the design 2023-04-13 10:50:40 +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
Dario Gabriel Lipicar ed6ea5d90c feat(@desktop/wallet): add support for more NFTs media types
Fixes #9836
2023-04-11 12:40:38 -03:00
Noelia 99a9f2ace0 feat(MintToken): Self destruct flow integration
- Enabled self destruct option.
- Added self destruct flow.
- Created needed methods in CommunityTokensStore.

Closes #10051
2023-04-11 16:19:30 +02:00
Noelia 54582db3a6 feat(MintToken): Created self destruct alert popup
Created self destruct alert popup.

Part of #10051
2023-04-11 16:19:30 +02:00
Noelia 7a77748d32 feat(MintToken): Created remote self destruct popup
Created remote self destruct popup.

Part of #10051

remoteselfpopu
2023-04-11 16:19:30 +02:00
Noelia dbf05f4a58 feat(MintTokens): Holders panel updates
Added selector mode that contains a combobox and checkbox.

Part of #10051
2023-04-11 16:19:30 +02:00
Jonathan Rainville fe64d0eb04 fix(mentions): fix @everyone inserting incorrectly sometimes
Fixes #10212

The problem was that we were detecting that the name was empty string and comparing to another empty string and inserting that, which is incorrect.

There was also a problem with the detection of the name being completely written. onKeyPressed didn't take into account the new letter added, onKeyReleased does.
2023-04-11 09:30:20 -04:00
Patryk Osmaczko f9250e7dd4 feat(storybook): add ChatAnchorButtonsPanel
iterates: #9069
2023-04-11 13:35:04 +02:00
Alexandra Betouni 620cad159a [StartChat]: fixed text input scroll
Closes #9885
2023-04-11 12:39:11 +03:00
Alex Jbanca fb86d8745c fix(MintTokensPanel): Update input fields validation
Closing: https://github.com/status-im/status-desktop/issues/9850
Password: 7 characters max, ascii printable characters
Name and description: ascii characters
2023-04-11 11:18:41 +03:00
Lukáš Tinkl 19e7c42cc2 chore: extract input cursor delegate into StatusCursorDelegate
- unified UI/UX; no code changes, just reduces code duplication
- use the correct OS/platform blink interval with
  `Qt.styleHints.cursorFlashTime`
2023-04-07 20:40:56 +02:00
Patryk Osmaczko 65415ef34b fix(chat): load as much messages as view requires
fixes: #10221
2023-04-07 16:26:26 +02:00
Patryk Osmaczko 3e3c9e7bdf fix(chat): use `scrollTo` mechanism for `firstUnseenMessage`
- it ensures enough messages are loaded when `firstUnseenMessage` is not
  within the range of initially loaded messages

fixes: #10197
2023-04-07 16:26:26 +02:00
Boris Melnik cbdc3e61b5 fix(images): Display image placeholder when image from album not loaded
Fixes: #9990
2023-04-07 15:42:12 +03: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 5ec4360d8c fix(ChatMessagesView): Fixing scroll to message
Closing: https://github.com/status-im/status-desktop/issues/10131
2023-04-07 06:23:15 +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
Michał Cieślak 9f3d3514af fix(CommunityPermissionsSettingsPanel): fixing duplicates detection and permission updating
It's integral part of
https://github.com/status-im/status-desktop/pull/10166 but not pushed
together by mistake.
2023-04-05 16:43:12 +02:00
Patryk Osmaczko 9419c9acaf fix(chat): mark messages as read only if all messages have been viewed
fixes: #10150
2023-04-05 10:40:08 -04:00
Dario Gabriel Lipicar 6d7fda53f6 fix(@desktop): only allow dot as decimal separator for user input
Fixes #10125
2023-04-05 11:11:36 -03:00
Alexandra Betouni 840b9986dc fix(MembersListSelectro): tag item should be removed only when x is clicked
Closes #8259
2023-04-05 15:30:04 +03: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
Michał Cieślak 8dafdfceb8 feat(CommunityPermissions): Switch to enable/disable 'Who holds' section
Closes: #8498
2023-04-05 11:46:20 +02:00
Lukáš Tinkl bef6092652 fix: Edit Community / Community Color selector dialogue does not need the back button
Fixes: #9790
2023-04-04 13:54:39 +02:00
Lukáš Tinkl 3252eaf340 fix: Excessive vertical spacing between subtitle and standard colour selector in all colour selectors
- use spacing as designed in Figma
- re-use StatusColorSelectorGrid title label component (not leaving extra
space behind whern empty)
- always use white text for the color previews (our color palette/picker
are designed for this)
- give Channel color dialog a title (as designed)
- use BE spelling (as designed, and to be consistent with the rest of the app)

Fixes: #9841
2023-04-04 11:32:55 +02:00
Lukáš Tinkl cde9f810e6 fix(CreateCategoryPopup): move the delete button into footer
Adjust according to Figma design
- the asset size should be 40x40
- fix the listview's horizontal alignment
- fix the confirmation dialog(s!) title

Fixes #9887
2023-04-04 11:30:18 +02:00
Michał Cieślak 6768f62451 feat(Airdrops): Component for selecting recipient addresses and members
Closes: #9799
2023-04-04 09:56:47 +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
Noelia 6752d274e1 fix(MintToken): Initial item updated according to `tokenModel` changes
Updated stackview with the corresponding initial item  when `tokenModel` changes.
2023-03-29 15:37:02 +02:00
Noelia 3db1ce70d1 fix(MintToken): Fixed `deployState` property binding
Created `instantiator` object as a mediator to establish appropriate binding between property model and `CommunityCollectibleView`

Closes #10013
2023-03-29 15:37:02 +02:00
Michał Cieślak 27c891fc18 feat(communities): AirdropTokensSelector component added
Closes: #9798
2023-03-29 14:25:46 +02:00
mprakhov b580f0a810 feat:(@desktop/channels): loading state when switching channels/chats 2023-03-28 13:12:58 -04:00
MishkaRogachev 8eba843a5e fix(Chat): Fix pin popup and actions for communities and group chats 2023-03-28 11:05:07 -04:00
MishkaRogachev 4d4ec22ba6 feat(Chat): Disable unpin action for PinnedMessagesPopup 2023-03-28 11:05:07 -04:00
MishkaRogachev 1f54d96f5f feat(Chat): Disable chat actions for non-contacts 2023-03-28 11:05:07 -04:00
MishkaRogachev ad4838e4f8 feat(Chat): Disable sending messages for non contacts
Close #9899
2023-03-28 11:05:07 -04:00
Alex Jbanca 75571c9f22 fix(StatusItemsSelector): Allow icons to be provided by the model
Fixing https://github.com/status-im/status-desktop/issues/9766
The main change is that the model will now provide the image type, on top of the image source. The image type can be either icon or image. Icons will be coloured with the same colour as the text.
2023-03-28 12:46:20 +03:00
Alex Jbanca 17834ecbc1 fix(MintTokens): Use localised amount for total supply
Fixing: https://github.com/status-im/status-desktop/issues/9763
Changes:
1. Use int to pass around the supply amount from one component to another
2. Transform the supply amount to localised string when it is displayed to the user.
2023-03-28 12:17:02 +03:00
Michal Iskierko c8aefe4e66 feat(@desktop/communities): Airdrop community tokens
Issue #9783
2023-03-27 19:43:10 +02:00
Jonathan Rainville caebc9b93f fix(community-members): fix pending request buttons + updates
Fixes #9973

The buttons didn't work because we weren't using the right model + the section model didn't expose the PendingMemberRequestsModel.
I also fixed the service to update the community correctly and send the event. It should feel snappy-er to approve someone now.
2023-03-27 11:17:34 -04:00
Michal Iskierko d759bda81d fix(@desktop/communities): Computing fees in ETH and USD for Sign Transaction dialog
Issue #10007
2023-03-27 16:25:49 +02:00
Alex Jbanca 2142a6bf9c fix(ActivitiCenterTolltip): Position tooltip arrow in the middle of the button 2023-03-27 14:19:43 +03: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
Jonathan Rainville 9d0e14b680 refactor(chats): separate calls to getChats for each section
Fixes #9858
2023-03-24 13:05:19 -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
Michał Cieślak 2f3392c7d5 feat(HoldingsDropdown): Open list of all tokens by default when no own/community tokens 2023-03-24 16:09:01 +01:00
Michał Cieślak 5b9017757f feat(HoldingsDropdown): All listed assets / collectibles submenu
Closes: #9263
2023-03-24 16:09:01 +01:00
Noelia b3af519476 feat(HoldingsDropdown): Enable navigation to mint tokens settings section
It enables navigation from holdings dropdown to mint tokens settings view.
2023-03-24 14:22:56 +01:00
Noelia 575ee6a226 feat(HoldingsDropdown): Added no data information message
- Added default no data information message for assets and collectibles.
- Added specific no data information message for airdrop functionality.
- Hidden searcher when there is no data available.

Part of #9938
2023-03-24 14:22:56 +01:00
Noelia a6e29ebc03 feat(Airdrop): Show only collectibles in holdings dropdown
Hide Assets tab in HoldingsDropdown until we can airdrop also assets.

Closes #9938
2023-03-24 14:22:56 +01:00
Noelia e36270c844 feat(HoldingsDropdown): Added property `isCollectiblesOnly`
- Added property that allows to switch the holdings dropdown to only be used in collectibles mode.
- Updated storybook accordingly.

Part of #9938
2023-03-24 14:22:56 +01:00
Boris Melnik 30b4d9eb5c fix(chat): Sent images with text correctly
Fixes: #9564 #6374
2023-03-24 14:33:17 +03:00
Noelia 6c3d5c3ab5 fix(MintTokens): Remote Self Desctruct property fix
Remote self destruct property was not rendered properly when minted item was selected.
2023-03-24 12:08:00 +01:00
Noelia 051fc625a2 feat(MintCollectibles): Add sign transaction dialog in minting creation flow
It integrates sign mint transaction dialog in mint collectibles flow.
Mocked fee data, it still needs backend integration.

Closes #9802
2023-03-24 12:08:00 +01:00
Noelia 6bd8a18d93 feat(MintToken): Created sign mint token transaction popup
New popup created.

Part of #9802.
2023-03-24 12:08:00 +01:00
Alex Jbanca d24d233615 fix(JoinCommunityView): Enable activity centre and disable start chat button 2023-03-24 10:41:34 +02:00
Michal Iskierko ec6d35a6bd fix(@desktop/communities): Fix transferable and self destruct token parameters
Fix #10000
2023-03-23 18:30:18 +01:00
mprakhov 21d2c00b40 feat(@desktop/chats): Keep only last 5 chats/channels in the memory 2023-03-23 17:41:24 +01:00
Boris Melnik c8ef6bcd9c fix(MembersSelectorView): Change paste event to parsing text for lookup contacts
Fixes: #9881
2023-03-23 19:16:22 +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 5e965bcbb7 refactor: make accepting member requests to join async
This is necessary because with community token permissions, when owners
manually accept a request, we a) don't want to block the UI when the
users funds are check on chain and b) in case of insufficient funds,
we'll react with a modal that tells the owner that the user can't be
accepted.

All of that is done in this commit.
2023-03-23 14:11:04 +01:00
Alex Jbanca ee5e72b088 fix(HoldingsDropdown): Add basic focus management and keyboard support
Closing #9967

When Holdings dropdown is open, activate focus to searcher in assets and collectibles. Changes focus to ENS input in case ENS tab is active.
In Holdings dropdown, when ENS tab is active and Add button is enabled, pressing enter key should behave same than clicking on the button itself.
In Holdings dropdown, when one asset or collectible has been selected, activate focus in the amount input, then when Add button is enabled, pressing enter key should behave same than clicking on the button itself.
2023-03-23 12:24:05 +02:00
Alex Jbanca 7e9e3ee252 fix(HoldingsDropdown): Implement dynamic height 2023-03-23 09:29:19 +02:00
Noelia 66c32395fd feat(MintToken): Disabled token holders panel until backend ready
Disabled token holders panel until backend ready - Milestone 12
2023-03-23 08:24:45 +01:00
Noelia f691c85127 feat(MintToken) Add select wallet account option
- Added accounts selector in `Create new token` page.
- Added account name box in `Preview` page.
- Updated `storybook` with new account data.
- Updated `deployCollectible` method call account address property.

Closes #9842
2023-03-23 08:24:45 +01:00
Noelia 87f42e6074 fix(MintToken): Preview dark mode boxes color
Fixed dark mode boxes color in collectibles preview.
2023-03-23 08:24:45 +01:00
Jonathan Rainville fee9b31a88 chore(Community): remove unused popups 2023-03-22 15:13:19 -04:00
Michał Cieślak d219d32b72 feat(CommunityPermissions): Limit of 5 permissions for "Become member" permission type
Closes: #9536
2023-03-22 14:57:58 +01:00
Michał Cieślak 083bea0954 fix(CommunityNewPermissionView): proper color of icons in "Is allowed to" section
Closes: #9280
2023-03-22 14:57:58 +01:00
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
Michał Cieślak bef14365aa chore(StatusItemSelector): Use StatusFlowSelector as a base component
Closes: #9851
2023-03-21 11:59:12 +01:00
Michał Cieślak 4e3263fddd chore(PermissionsDropdown): Temporarily hide channel-level permissions from the dropdown
Closes: #9537
2023-03-20 23:13:52 +01:00
Alex Jbanca 240fbfab60 fix(CommunityPermissionsSettingsPanel): Fix height and width for permissions views
Fixing: https://github.com/status-im/status-desktop/issues/9765
2023-03-20 10:55:05 +02: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 b8b6f36bd9 feat(Airdrop): Added welcome page and basic view to create airdrop
- Added basic navigation.
- Added welcome page.
- Added temporal basic create airdrop page.

Closes #9796
2023-03-17 13:12:08 +01:00
Noelia 3feddd892b fix(MintToken): Fix network property
enabledNetwork property now point to the corresponding data
2023-03-17 13:12:08 +01:00
Lukáš Tinkl 411961aee7 fix: ‘Share community’ URL is unnecessarily ellipsed
- set the width on title/subtitle
- put the subtitle with its optional icon into a Row
- elide title/subtitle
- update Sandbox

Fixes #9701
2023-03-17 11:45:16 +01:00
Lukáš Tinkl 1998a6556a feat(Profile): New Social Links workflow
TLDR;
- all links visible in settings/popup
- persistent order of items
- drag'n'drop to reorder
- editing/deleting in a new popup
- several links of the same type

Needs changes in nimqml (to expose QAIM::begin/endMoveRows), in
DOtherSide (to expose those to NIM), in status-go (to preserve the links
order and fully save them to DB)

Fixes #9777
2023-03-16 16:08:23 +01:00
mprakhov 494ab84fe1 fix(@desktop/chats): Always show message header in the private group chats after sestem message 2023-03-16 14:46:18 +01:00
Boris Melnik c7e99365a1 fix(contacts): Block unlimited counts of request contacts from create chat view
Fixes: #9485
2023-03-16 16:12:06 +03:00
Michal Iskierko 1c53d1e9b9 fix(@desktop/communities): Chain details (name, icon) are taken from model.
Introduce TokenItem struct.
TokenModel keeps TokenItems.
TokenItem keeps CommunityTokenDto and chain details.
Chain details are taken from networks service.

Fix #9867
2023-03-16 11:46:39 +01:00
Magnus e19f0aa7f7 test(tst_communityPermissions): permissions setting is available
new scenario
2023-03-16 09:20:36 +01:00
Noelia e8b1dad80f feat(MintTokens): Added list of collectibles view
Added list of collectibles view.

Closes #8736
2023-03-14 16:06:27 +01:00
Noelia 79a1a60c70 refactor(MintingToken): Navigations refactor
- It has been added a `StackView` in main mint tokens panel to easily switch back / forward between views.

- It has been created a SQ component `StackViewStatesManager` that allows a managing together a stackview and states.

- Updated `HoldingsDropdown` to use new stack states component
2023-03-14 16:06:27 +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
Alexandra Betouni db7256fd1a fix(StatusChatInput): fixed input loses focus when switching chats
Closes #9542
2023-03-10 20:07:59 +02: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
Michal Iskierko 8f3a965a49 fix(@desktop/communities): Rename minting module
Issue #9817
2023-03-09 16:34:55 +01:00
Michał Cieślak ab523ee19f fix(CommunityPermissions): Temporary solution for assets icons
Closes: #9613
2023-03-09 14:16:36 +01:00
Lukáš Tinkl 5c0f1981ad feat: Profile Showcase: Proof of concept for own Profile Dialog
- the goal of this PR is to get some bsais UI building blocks done for
the followup PRs
- the order of showcase tabs now is:
Communities/Accounts/Collectibles/Assets
- there will be further changes to accomodate for different types of
backend models as those get developed (for other users' profiles)

Fixes #9664
2023-03-08 18:45:27 +01:00
Lukáš Tinkl 3fd196323e chore: silence warnings 2023-03-08 18:45:27 +01:00
Michal Iskierko 2ac1216b68 fix(@desktop/communities): Fix community tokens model
Fix #9781
2023-03-08 13:36:41 +01:00
Michał Cieślak 0e92b69bc5 chore(CommunityPermissions): fixed warnings introduced during integration with backend 2023-03-08 12:02:55 +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 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
Noelia 02cf07044d feat(MintToken): Created Preview collectible page
- Added navigation between pages.
- Added main layout and properties (some backend integration still pending).
- Added holders model with mocked data.
- Added mint tokens footer component.

Closes #8734 and #8737
2023-03-07 13:24:45 +01:00
mprakhov cb924053c6 fix(@desktop/channels): allow capitals in channel name 2023-03-07 13:16:00 +01:00
Michal Iskierko 5722f67964 fix(@desktop/communities): Handling community token image
Handle image correctly and show in testing UI.
Improve fees for deployment.
Handle CommunityTokenMetadata in community structure.
2023-03-07 10:04:12 +01:00
Michał Cieślak a2a1da801c chore(CommunityPermissions): Use key role name for referencing channels 2023-03-06 17:36:36 +01:00
Michał Cieślak 480c249ee0 chore(CommunityPermissions): Refactor channels handling
Community permissions model refers to channels by id instead of
taking/serving all details. UI fetches necessary metadata form
appropriate channels model.

Closes: #9588
2023-03-06 17:36:36 +01:00
Jonathan Rainville 40a157a5af fix(test): fix create category test 2023-03-03 16:14:38 -05:00
Michał Cieślak 702d355e89 chore(InDropdown): Adapt to flattened model for channels
Closes: #9591
2023-03-03 16:51:45 +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
Jonathan Rainville 5352ba8c6f refactor(chat-model): simplify chat model and put category as an Item
Fixes #9494
2023-02-28 11:58:40 -05: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 ad006cf105 fix(CommunityTokenPermissionsPopup): required models provided, storybook page fixed 2023-02-23 11:51:30 +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
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 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 1e7e2084a7 fix(CommunityNewPermissionView): Use only key/amount to compare holdings when tracking duplicates 2023-02-22 14:43:40 +01:00
Lukáš Tinkl 79645b53ce fix: truncation of channel description and pinned message text
The chat title/subtitle no longer bleed into the action buttons

- handle long texts in chat description, elide them and show the whole
text in a tooltip
- minor UI fixes in ChatHeaderContentView and StatusToolBar
- adjust Sandbox' Controls page

Fixes #9583
2023-02-21 16:53:06 +02: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 f6ac937dfd fix(CommunityPermissions): Warning regarding color assignment fixed 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 0af9c27910 chore(CommunityNewPermissionView): simplified by introducing ModelsComparator component for tracking dirty state
Closes: #8830
2023-02-20 18:40:59 +01:00
Michał Cieślak 9f884605cb chore(CommunityNewPermissionView): Operations on models excluded to ModelUtils singleton 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