Commit Graph

650 Commits

Author SHA1 Message Date
Khushboo Mehta 5e8f7515cf feat(@desktop/wallet): Swap: Switch input/output params
fixes #14827
2024-07-01 11:46:07 +02:00
Michał Cieślak a2b8eb333d feat(StatusQ): GroupingModel for grouping rows with the same key into
submodels

Closes: #12683
2024-06-28 17:35:41 +02:00
Stefan 92d0420449 feat(dApps) implement sign transaction for wallet connect
Uses status-go's endpoints:
- `wallet_buildTransactions` to format the transaction
- `wallet_signMessage` to sign the transaction
- `wallet_buildRawTransaction` to format the final signed transaction

Updates #15126
2024-06-26 12:00:54 +02:00
Stefan dfe53c4c7c chore(dApps) support multiple actions in DAppRequestModal
Also fix minor issue and add improvements

Updates #15126
2024-06-26 12:00:54 +02:00
Lukáš Tinkl 42533b8c61 feat:[UI - Swap] Create new TokenSelector component
- create new dedicated (asset) token selector component
- integrate it into `SwapInputPanel` and `SwapModal`
- add respective SB page and QML tests suite

Fixes #14783
2024-06-25 13:06:57 +02:00
Alex Jbanca 901362dfc1 feat(networkSelector): Refatoring of NetworkSelector to remove backend dependency 2024-06-21 16:18:51 +03:00
Alex Jbanca b4a9df62e2 refactoring(NetworkSelectionView): Update NetworkSelectionView and remove the backend dependency
This commit creates a new component NetworkSelectorView and it's implementation will replace the NetworkSelectionView
+ Adding the storybook page
+ Adding tests
2024-06-20 16:30:10 +03:00
Alex Jbanca 429203cd66 refactoring(NetworkSelectItemDelegate): Remove backend dependency and clean the API
This is the first step in refactoring the NetworkFilter, by cleaning the base component that handles the check states.
This component supports multiple configurations:
1. Single selection with or without radio button
2. Multiple selection with or without checkbox
3. Automatic handling of the check state. The component will change the check state based on user clicks
4. Manual handling of the check state. The component will not change the check state, but offers a toggled signal and expects the user to change the check state based on external flows

+ Fix minor bugs
2024-06-20 15:13:54 +03:00
Alex Jbanca 8b4cbc59a8 refactor: Refactoring of AccountSelector dropdown
The new account selector expects a generic account model. It will display all the account data if provided, including preferred chains, balance or asset balance. Otherwise it will display only the available data.
The account selector can receive an initial selection based on account address and will provide the current selected address and the current selected model item.

- Unify the account selector between communities and wallet
- Update the account selector to work with addresses instead of model indexes
- Adapt all components using the account selector or the account selection
- Move/reuse qml components involved in the account selector UI
- Remove nim logic used to handle index based account selection.
- Adding storybook page
2024-06-20 11:24:35 +03:00
Khushboo Mehta 0645ed4712 fix(@desktop/wallet): solving the issues with SwapInputPanel list in the issue
fixes  #15162
2024-06-19 17:20:22 +02:00
Michał Cieślak d700a1ad53 chore(Wallet): AssetView replaced with the refactored version
Closes: #14704
Closes: #14939
2024-06-19 16:36:18 +02:00
Michał Cieślak b12caa3f9a feat(Wallet): AssetsViewAdaptor added for preparing data for AssetsView 2024-06-19 16:36:18 +02:00
Michał Cieślak 436ae9f1f3 feat(AssetsView): business logic not related to ui removed 2024-06-19 16:36:18 +02:00
Khushboo Mehta 5c1e800f14 feat(@desktop/wallet): Add Select Input and output params to swap modal
fixes #14826, #14825
2024-06-19 12:47:26 +02:00
Khushboo Mehta 8d6d6bdd84 feat(@desktop/wallet): Getting swap proposal
fixes #14828
2024-06-19 10:21:07 +02:00
Lukáš Tinkl a12a6a4894 feat[UI - Wallet Stability] Create generic/reusable assets listview component
TLDR: later this should form a basic building block for a new
TokenSelector picker component, potentially replacing the current
HoldingSelector* and TokenListView components (support for collectibles
TBD as part of https://github.com/status-im/status-desktop/issues/15121)

- create reusable `TokenSelectorAssetDelegate` and `TokenSelectorView`
- add corresponding SB page, showcasing the flow/integration and the
separation of concerns between the view, adaptor and delegate layers
- add QML testcase for TokenSelectorView
- don't display crypto symbol for token balances per chain tags
- update the stores and SB pages
- add some missing formatter functions to LocaleUtils and CurrenciesStore

Fixes #14716
2024-06-18 23:09:20 +02:00
Stefan 758dbc55e5 feat(dapps) implement signing of messages
Implement infrastructure and integration with status-go to support
general session requests

Supported methods:
- personal_sign
- eth_signTypedData_v4

depends on status-go change that exposes the signing methods

Also

- support hex or utf8 encoding for personal_sign
- format the typed data for display in the modal

Tests are disabled for now, as they are crashing on CI

Close: #14927
2024-06-17 15:06:26 +02:00
Alex Jbanca f943440915 refactor(ProfileView): Adapt the profile view to the new `ContactDetails` component 2024-06-14 17:17:18 +03:00
Alex Jbanca afcb7608e0 refactor(contactDetailsAsJson): Adding `ContactDetails` component to replace `getContactDetailsAsJson`
This component has live data and its purpose is to replace getContactDetailsAsJson

+ adding storybook page
+ adding tests
2024-06-14 17:17:18 +03:00
Lukáš Tinkl 46b81b30a6 feat: [UI - Wallet Stability] Create Max button component
- create a reusable "Max" send button component
- use it in SwapModal and SendModal
- add some more tests in tst_SwapInputPanel.qml

Fixes #15066
2024-06-12 17:08:56 +02:00
Stefan 4d080e12aa feat(dapps) authenticate user for session request
Trigger authentication with identity of the request
Track the authentication using the identity and allow only once
Add tests for the new functionality
Minor improvements around the code

Closes #15018
2024-06-12 16:52:12 +02:00
Stefan f5b46d6972 feat(dapps) implements responding to wallet connect requests
For start support showing sign message only
Support rejecting the request
Storybook integration
Add disabled tests for the main logic and sanity UI tests.
They crash on CI only and work locally on mac. Postponed finding out why
for now.

Closes: #14927
2024-06-12 15:44:53 +02:00
Stefan 145053e34f chore(dapps) implement service tests and basic workflow tests
Abstract WalletConnectSDK to make it testable
Implement WC service pairing test
Bring back DAppsWorkflow tests back to life and add a pair modal test

Updates: #14927
2024-06-12 15:44:53 +02:00
Dario Gabriel Lipicar 75d755ea0f feat(@desktop/wallet): initial integration for swap proposal, approve tx and swap tx
Closes #14824
2024-06-11 14:15:26 +02:00
Khushboo Mehta 3010fb58cb feat(@desktop/wallet): Implements Edit slippage
fixes #14829
2024-06-07 16:17:08 +02:00
Lukáš Tinkl 70d2a1dd75 [UI - Swap] Update / improve NetworkFilter component to cover swap design specs
- add new `showRadioButtons` and `showTitle` UI customization points
- adjust SB and expose all the existing modes, fix it to make it work
with multi selection
- integrate these new modes into SwapModal to align it with the Figma
design

Fixes #14780
2024-06-07 15:19:51 +02:00
Lukáš Tinkl a3c9012f4a feat: [UI - Swap] Create swap input component
- new panel created: `SwapInputPanel`
- some cleanups to the needed stores
- created a SB page demonstrating the use of 2 panels and the
`SwapExchangeButton`
- created QML tests

Fixes #14781
2024-06-06 11:13:18 +02:00
Michał Cieślak 793e82ac7e chore(SubmodelProxyModel): Marked as deprecated 2024-06-05 14:18:43 +02:00
Michał Cieślak 958dc7c5ba chore(ObjectProxyModel): Generalized version of SubmodelProxyModel
Closes: #14893
2024-06-05 14:18:43 +02:00
Alex Jbanca 4e81f8f220
feat(StatusQ.Models): Adding SingleModelItemData helper component (#14891)
SingleModelItemData is a generic component that can provide a live object extract from an arbitrary QAbstractItemModel*
2024-06-04 13:08:52 +03:00
Alex Jbanca f1308f3b28
feat: Add initial support for ChartJs plugins (#14433)
+ adding plugin for crosshair and zoom
+ adding plugin for data labels
2024-06-04 13:08:16 +03:00
Khushboo Mehta 3f77a16317 feat(@desktop/wallet): Implement Network selection in SwapModal
fixes #14750
2024-06-04 11:07:23 +02:00
Khushboo Mehta c9641bb0b9 feat(@desktop/wallet): Implementation of One Time & Recurrent tab in Buy Popup
fixes #14819
2024-05-31 12:47:37 +02:00
Stefan 1618e6ce0a feat(dapps) implement basic DAppRequestModal
I added it to storybook for testing. There is not integration with with
the app yet.

Updates: #14762
2024-05-30 12:00:06 +02:00
Lukáš Tinkl 6973ccef6b fix: Hide ID verification buttons
- temporarily disable all ID verification flows by default for 2.29
- enabled it in StoryBook for testing purposes

Fixes #14954
2024-05-30 11:41:33 +02:00
Stefan 35b81eadf6 feat(dapps): show dapps list in wallet connect popup
Things done here:

Integrate basic functionality for wallet connect in status-go
Update the list of dapps from the SDK
Retrieve the persistence dapps list from the backend as a fallback
if there is no connection and SDK can't be initialized
Provide a basic simple view of dapps in the wallet connect popup

Closes: #14557
2024-05-30 10:57:42 +02:00
Stefan 07bc6c49df feat(dapps) attempt to fix the wallet connect abstraction
Spent too much time figuring out the puzzle of
service->module->view->QML just to call a
status-go function.

Keeping this attempt for later while moving to a
simplified Controller/Provider approach. I will
come back to the abstraction when we add tests
to use it.

Updates: #14615
2024-05-30 10:57:42 +02:00
Lukáš Tinkl c4f7c9732d fix(AddEditSavedAddressPopup): hide network selector for ENS names
- fix some typos, add some forgotten `qsTr()` calls
- improve SB page with create/edit modes

Fixes #14909
2024-05-28 15:31:23 +02:00
Khushboo Mehta 9d8542c95d feat(@desktop/wallet): Add support for Account selection in Swap Modal using already existing AccountsModalHeader.qml
fixes #14749
2024-05-28 10:59:18 +02:00
Khushboo Mehta 81d7ca32b0 feat(@desktop/wallet): Swap modal launch flows
fixes #14628
2024-05-28 10:11:24 +02:00
Lukáš Tinkl 02a17b67ca fix(SlippageSelector): fixup custom input focus and tests 2024-05-28 10:02:20 +02:00
Lukáš Tinkl 9eba61e18c fix(StatusButtonRow): move to StatusQ
- also split the SB pages
2024-05-28 10:02:20 +02:00
Michał Cieślak 824f14e220 StatusRowButton and SlippageSelector as a separate components, api simplified, fixed issue with setting values from outside 2024-05-28 10:02:20 +02:00
Lukáš Tinkl 442111c1ad feat: [UI - Swap] Create row radiobutton component with custom field
- Create row radiobutton component like the one defined in design
- It shall contain custom set of buttons
- It shall contain a Custom button that will be converted to an input
field
- Add the new component into a new storybook page
- Create necessary qml tests to cover the component logic

Fixes #14784
2024-05-28 10:02:20 +02:00
Lukáš Tinkl 3ea2ba18f2 feat: [UI - Swap] Create swap switch button
- create a custom circle button component for the Swap popup, with the
needed click event and a border area that can be overlaped with the
background as it looks in the design

Fixes #14782
2024-05-28 09:12:07 +02:00
Andrey Bocharnikov 2958a03c2c fix(airdrop): fix decimals validation
* set decimal for assets on AidropSettingsPanel and HoldingsDropdown test pages
* Disable amount length validation by default
* Input: Align validation error string to the left edge
* Update validation error copy

fixes #11918
2024-05-23 19:40:33 +07:00
Lukáš Tinkl a2e85bb3eb feat: [UI - Swap] Create tag error component
- created a new component (`ErrorTag`) based on the existing
`InformationTag`, suitable for displaying a row of icon (optional), text
and (optional) button in red/danger color
- add ErrorTagPage.qml to StoryBook
- add some basic QML tests

- InformationTag: make more properties customizable, use the same
`bgRadius` consistently
- StatusSmartIdenticon: some fixes for the MouseArea hover/click
behavior

Fixes #14792
2024-05-23 08:55:10 +02:00
Roman Chornii 55edd94401
fix(ProfileDescriptionPanel): Profile settings -> Identity : Addition of validation to bio field (#14772)
- Added validator to the bio component to allow only ascii and emoji characters
This PR fixes #13623
2024-05-21 00:13:55 +03:00
Lukáš Tinkl a6c897929a chore: Remove custom rowData method from NIM's models
- Some NIM's models define additional (not part of the
QAbstractModelItem API) method rowData to allow access to model's data
on UI side
- The same job can be done relying fully on public QAbstractModelItem
API using ModelUtils utility. It gives full transparency if we need
nim's model or other like ListModel replacement in tests/storybook
- propagate `tokensStore` to unbreak the Browser's wallet menu

Fixes #14805
2024-05-20 18:02:20 +02:00
Stefan ee72ec7aee feat(dapps) add DAppsService component and ConnectDAppModal
Implement the initial Pairing user workflow and disconnect option for
the first session.

Also

- rename pairing modal accordingly (`PairWCModal.qml`) to make room for the proper
`ConnectDAppModal.qml`
- basic tests for service helpers
- update storybook to reflect the new user workflows

Closes #14607
2024-05-20 15:09:57 +02:00
Stefan 7cd97a0051 chore(dapps) move dApps UX into its own DAppsWorkflow component
Storybook: also automate related workflows for faster iteration

Also extend the inspector utils to handle Loaders and Popups

Updates: #14607
2024-05-20 15:09:57 +02:00
Stefan 78775d3d69 chore(dapps) move wallet connect service code outside popups
Updates: #14607
2024-05-20 15:09:57 +02:00
Lukáš Tinkl 93d808d020 fix(CommunityMembershipSetupDialog): wait for the Join Permission response only
- introduce a new boolean property `checkingPermissionToJoinInProgress`
and use it to enable/disable the Join (share addresses) button when
joining a community
- we don't have to wait for both join and channels permissions check to
finish, as the former is much faster
- renamed `joinPermissionsCheckSuccessful` to
`joinPermissionsCheckCompletedWithoutErrors` to avoid confusion

Fixes #14680
2024-05-17 14:26:55 +02:00
Lukáš Tinkl 26923bc603 chore(StatusDialog): Support custom elements in the footer
- fix rounded corners in header/footer background
- add support for footer drop shadow
- add a page/demo with the various features to StoryBook

Fixes #14499
2024-05-17 10:08:43 +02:00
Cuteivist b771ac6aed
feat: Change optimism network short name (#14766) 2024-05-16 18:37:54 +02:00
Alex Jbanca f3dc7b9918 feat(ProfileShowcase): Implement custom showcase position when searcher text is filtering items 2024-05-16 16:47:42 +03:00
Lukáš Tinkl 2537cdc2f2 fix(CommunityPortal): don't show PermissionsRow for free communities
- hide the permissions row and tokens when the community is free to join
- fix evaluating the `requirementsMet` property which affects the lock
icon state; that role was never part of the model
- add a helper C++ method `isTokenGatedCommunity`
- adjust the SB models, adding different variations of the
permissionsModel for the CommunitiesPortalLayoutPage

Fixes #14671
2024-05-13 16:21:07 +02:00
Lukáš Tinkl 94ca1ff22a fix: ENS keycap display issues
- run the user's display name (ENS name) thru the `Emoji.parse()`
function as that will convert the potentially UTF-16 encoded name
containing emojis into an image

Fixes #12290
2024-05-13 16:20:54 +02:00
Michał Cieślak 587594f3b9 feat(StatusQ): General purpose js function-based aggregator
Closes: #14617
2024-05-13 15:54:03 +02:00
Stefan 4dfa0a1b05 chore(storybook) add ConnectDappModal to story book
Also:

- mock FeatureFlags nim to silence `Global.qml` warnings

Updates: #14556
2024-05-13 10:33:16 +02:00
Lukáš Tinkl d703d0e87f feat(CreateChannelPopup): inherit the channel color from community color
- if there's a valid community info and the color is non-empty, inherit
it when creating a new channel
- also fix the color picker button height
- adjust the SB page with separate "create" and "edit" options

Fixes #14570
2024-05-09 12:06:43 +02:00
Michał Cieślak 27c53f4154 feat(StatusQ/SubmodelProxyModel): Exposing roles computed per submodel to the top-level model
Closes: #14390
2024-05-07 16:26:44 +02:00
Lukáš Tinkl 22a9ca72b3 fix(StatusCard): fix some visual glitches
- correct propagation of hover events, fixes card flicker
- improve the ugly thick border
- token icons are now correctly rounded
- fix text descent lines are cut of ("y" and "p" truncated at the
bottom) due to excessive clipping, set correct max line count
- fix tag outline not being visible in dark mode
- add/update the corresponding SB page, with more controls to play
around with the different params

Fixes #14555
2024-05-02 20:25:13 +02:00
Lukáš Tinkl 63c3b756a5 fix(ChangePasswordView): Clear and cancel button is not blue
- use the proper `StatusFlatButton` as it was meant in the Figma design

Fixes #13763
2024-05-02 17:26:09 +02:00
Stefan 913041d5d9 chore(dapps) foundation for dapps page in storybook
Updates #14317
2024-05-02 09:47:30 +02:00
Lukáš Tinkl d0658feb26 feat: disable language/translations selection
- make it conditionally available for testing via
Settings/Advanced/Enable translations
- display a tooltip and infobox explaining the current and future
situation
- upon app start, force the language to "en" if the translations are not
enabled; and suggest app restart when they get disabled

Fixes #14527
2024-04-30 13:25:01 +02:00
Lukáš Tinkl 0c8231a6b6 fix: can't join an encrypted community
- fix the corner case and allow the user to join a community without an
explicitely stated "Member" permission
- enable/disable the Share/Join/Save buttons when the permission to join
check is ongoing, or when the permission check failed
- display tooltips over the disabled buttons explaining why it's disabled
- always display the eligibility button floating on top of the
(scrollable) contents

Fixes #14473
Fixes #14299
2024-04-26 10:50:26 +02:00
Lukáš Tinkl eae2489254 fix(ProfileDialogView): wrap bio in a scroll view
- also trim the leading/trailing whitespace
- fixes long bio (mainly due to linebreaks) pushing down everything
below and also overflowing the preview
- adjust SB page to include such example bio

Fixes #14463
Fixes #14465
2024-04-26 10:41:48 +02:00
Lukáš Tinkl bbd0e71fd6 chore(StoryBook): add Colors page
- gives an overview of all the `Theme.palette.foo` colors
- the color name/code can be copied to clipboard
- light/dark variant supported via storybook's "Dark mode" switch
- integrated search (both the color name and value)
2024-04-23 17:11:49 +02:00
Lukáš Tinkl 6260519e66 fix(CommunitySettingsView): hide control node functionality for admins and token masters
- hide the footer when the user is an admin or token master, unless
there is a pending ownership request (`isPendingOwnershipRequest`)
- similarly, hide the sharding section in `CommunityInfoEditor`
- do not cover the shard button with the `SettingsDirtyToastMessage`
- some SB page cleanups and additions
2024-04-18 22:22:40 +02:00
Lukáš Tinkl 7ad4a917af fix(FinaliseOwnershipPopup): fix declining ownership transfer
- the `ownershipDeclined` method was being called on an unexisting store
and the signala params were not being passed around
- some related SB page additions/cleanups
2024-04-18 22:22:40 +02:00
Andrey Bocharnikov b5dbac2e74
fix(Profile flow): ID verification cannot be removed (#14308)
fix(UserListPanel): hide the verification icon for yourself

fixes #13619

* split function for reseting trust status and verification+trust status

* rename function to removeTrustVerificationStatus
2024-04-18 20:09:27 +04:00
Lukáš Tinkl 5b242c6dd8 fix: do not display the thousands separator when editing
- teach `userInputLocale` about `Locale.OmitGroupSeparator` option which
discards the said thousands separator
- some more fixes to other inputs to do the same, and align what the
validators do
- StatusAmountInput: discard illegal characters, and reuse the same
locale for the validator
- StatusAmountInputPage: make it possible to select a different locale

Fixes #14165
2024-04-17 14:04:03 +02:00
Cuteivist 7cb59576a1
fix(wallet): Update amount to send decimal handling (#14399) 2024-04-15 07:28:29 +02:00
Stefan d3f037f93b fix(wallet): hidden groups are still loading from user local settings
Removed loading hidden groups from local settings and instead reload
them from the externally loaded settings.
Also move the local saving code from the controller to external,
therefore now it is implemented in storybook

Updates #14365
2024-04-14 10:59:08 +02:00
Stefan b9271005cd fix(wallet): update wallet assets and collectibles order on user action
Add a specific state to the saveSettings action to update the model
by reloading the data.

The previous implementation was using the same save address which
doesn't update. Either in the past there was a side effect that made it
work or it was never working.

Closes #14365
2024-04-12 11:30:15 +02:00
Lukáš Tinkl 5d064368cf chore(ui): visually align different combo box instances
- extract common background and indicator subcomponents into
StatusQ.Components.private, and reuse it

Fixes #14121
2024-04-11 21:48:16 +02:00
Lukáš Tinkl e363dd1109 fix(SortOrderComboBox): do not display icons or bold(er) font in delegates
- cleanup indentation (older QtC versions don't like the nullish
coalescing operator `??`)
- fixup SB pages
2024-04-11 21:48:16 +02:00
Igor Sirotin 795b999ad8
chore: extract move gifs module (#14315) 2024-04-09 19:01:24 +01:00
Michał Cieślak a83f1114e2 chore(Communities/InDropdown): performance improved
- removed multiple filtering separately for each category
- no instantiation of all delegates up front (regular ListView approach
  used)
- fixed category selection when filtering - selecting/deselecting only
  items fulfilling search criteria
- significant simplification of the code

Closes: #14275
2024-04-05 14:58:06 +02:00
Alexandra Betouni 53db09412a feat(ProfileShowcasePopup): Adding interactions in delegates
Closes #13702
2024-04-05 12:31:11 +03:00
Mykhailo Prakhov 1e155046e7
fix(@desktop/communities): request to join fixes (#14287) 2024-04-04 18:03:10 +02:00
Khushboo Mehta 2d20a2e1b7 feat(@desktop/wallet): Collectible Details balance tag
fixes #13809
2024-04-03 20:37:45 +02:00
Michał Cieślak b91cf08066 feat(SharedAddressesAccountSelector): Support for collectibles in account's delegate tags
Closes: #14102
2024-04-02 12:18:36 +02:00
Cuteivist 7fa3771e4e
feat(wallet): Handle collectibles details unknown community (#14206) 2024-04-02 10:23:20 +02:00
Alexandra Betouni 4af2a97358 [ProfileShowcase] Updated delegates as per design + added web tab
Closes #13421
Closes #13606
2024-04-02 10:21:13 +03:00
Alex Jbanca 77933cc732 feat(ProfileShowcase): Add profile perspective selector component 2024-04-02 10:16:17 +03:00
Lukáš Tinkl b191caaec6 feat: Add missing eligible to join tag in CommunityMembershipSetupDialog
- implement the eligibility check in C++, returning the highest possible
role the user would be allowed to join under
- enable/disable the "Share" button based on the above permissions check
- remove all the locally placed components, access teh popup only via
Global/Popups
- calculate the `accessType` internally based on the permissions present
- update the eligibility as the async check for permissions is finished
- fix the permissions panel background color
- partially revert the share/finish/cancel buttons behavior; it must be
one button due to StatusStackModal limitations
- fix some other minor UI issues or differences to current Figma designs
- adjust SB, add the possibility to play around with different
permission models

Fixes #14100
2024-03-29 16:11:59 +01:00
Mikhail Rogachev 839f2c6b21
Feat: New showcase models for a contact (#13998)
* Feat: New showcase models for a contact

* feat(ProfileShowcase): Integrate the new profile showcase backend

* fix(Storybook): Fix ProfileShowcaseModelsPage

* fix: fetch only requested profile showcase data

Support PR for https://github.com/status-im/status-go/pull/4982

* feat: Load and validate profile showcase for a contact in two steps

* fix: fetching criteria for profile showcase collectibles

* fix: review fixes

---------

Co-authored-by: Alex Jbanca <alexjb@status.im>
2024-03-29 12:43:49 +01:00
Noelia 4144e374a6 fix(JoinCommunity): Add missing state ONLY private permissions and NOT MET (#14164)
* fix(JoinCommunity): Add missing state ONLY private permissions and NOT MET

- Modified `becomeMemberModel` in store to provide all member permissions.
- Modified permissions model filter to only discard  permissions that are private and NOT met.
- Updated `storybook/PermissionsModel` with new only private permissions and added new model option in corresponding pages.

Closes #14104

* fix(JoinCommunity): Text position when all channels hidden

Updated text position when `allChannelsAreHiddenBecauseNotPermitted` in community join process
2024-03-28 10:59:40 -04:00
Khushboo Mehta 5473e3b14e chore(@desktop/wallet): Simplify the wallet networks service
fixes #12717
2024-03-28 11:47:33 +01:00
Stefan 26542970ee feat(wallet) save/load collectibles user handled state in DB
Add a separation layer for save/load/clear to ManageTokensModel
so that we can save/load from external sources.
The separate layer is composed of JSON as protocol, a set of signals
and slots for interface. The implementation forwards data to current
QSettings for storybook and nim controllers for the app.

Updates #13313, #13312
2024-03-27 20:26:15 +01:00
Noelia 3f74ee565a fix(JoinCommunity): Join CTA labelling: Change text and remove existing icon
- Change text and remove existing icon.
- Removed unnecessary property `loginType` on different files.
- Renamed signals to be more accurate with existing requirements.

Closes #14098
2024-03-27 12:16:56 +01:00
Lukáš Tinkl 085b013f80 fix(Shared Addresses): Requirements check pending indicator
- update shared addresses dialog to avoid small jumps when
selecting/unselecting accounts due to requirements check text displayed
- display the pending text and spinner next to the Permissions header

Fixes #14103
2024-03-27 11:16:40 +01:00
Michał Cieślak 0557977aa2 chore(Communities): CommunityIntroDialog renamed to CommunityMembershipSetupDialog
Closes: #14144
2024-03-26 14:03:29 +01:00
Michał Cieślak 0985346342 chore(CommunityIntroDialog): Fix storybook page 2024-03-26 14:03:29 +01:00
Sale Djenic bbb0fd7222 fix(ui-tests): shared addresses popup page removed since we don't need it any more
Since we merged editing revealed addresses into request to join community popup,
cause it logically belongs there, the relevant qml file is removed from story book.
2024-03-25 14:16:32 +01:00
Lukáš Tinkl 9ef513b419 fix(TokenManagement): Asset balance threshold value not reflected in main wallet view
- take the balance threshold value into account when presenting the
assets in the main wallet view
- additional fix from Emil for storing the threshold value
- storybook fixes to display the correct `currentCurrencyBalance` values
based on the address/wallet filters and mocking the threshold values
using TransactionStore

Fixes: #14017
2024-03-23 11:37:37 +01:00
Noelia 1d15398ea7 fix(ProfileSectionStore): Only instanciated once
- Removed `ProfileSectionStore` instance from `CurrenciesStore`. Only needed some certain accesses to the `profileSectionModule`.
- Added strict type in `CommunitiesView`.
2024-03-20 09:31:34 +01:00
Stefan f12c6dfa40 chore(storybook): fix TransactionDetailViewPage to test links 2024-03-19 15:14:40 +01:00
Stefan 1b77695e01 feat(settings) add notification to biometrics enable
Closes #13896
2024-03-19 13:20:05 +01:00
Stefan db6e24e4c3 fix(settings) fix toggle button for change password screen
Updates #13898
2024-03-19 13:20:05 +01:00
Stefan 41d762078d chore(storybook): add ChangePasswordView storybook page
Updates: #13893
2024-03-15 17:52:59 +01:00
Lukáš Tinkl d25cefcc2e fix(StatusBaseButton): adapt to handle actions when it is disabled
- add an `interactive` property as a drop-in replacement for `enabled`;
the UI looks "disabled" but can still display e.g. a tooltip or some
loading animation
- add the ability to display a tooltip
- remove DisabledTooltipButton and replace it with a regular
`Status(Flat)Button`, using the above new features
- update storybook with the new `interactive` switch

Fixes #10185
2024-03-14 18:00:27 +01:00
Alex Jbanca 3b17134451 fix(StatusTextMessage): Allow user to copy parts of a message containing URLs
The root cause of this issue is that the `TextEdit.text` was replaced on hover to add specific styling for the hovered state. As a result the selection was dropped.

To fix this I've moved the highlighted hyperlink style to the StatusSyntaxHighlighter.
2024-03-14 12:21:52 +02:00
Khushboo Mehta 2f0343f0e9 feat(@desktop/wallet): Main Collectible Detail View enhancements
fixes #13804
2024-03-13 11:46:49 +01:00
Alex Jbanca 4ef30a91a3 feat(ProfileShowcase): Create dirty state component for the web tab and integrate the UI 2024-03-13 10:02:30 +02:00
Lukáš Tinkl 5b1f2e8de2 fix(Profile flow) Validate nickname on edit
- align the nickname validation and min/max limits with displayName

Fixes #13591
2024-03-12 15:55:31 +01:00
Lukáš Tinkl 666ba77051 fix[onboarding] Broken links to "Terms" and "Privacy"
- display the locally bundled privacy/terms of use texts in a popup
- add support for reading text files with both relative and absolute
files or URLs, useful for having the same file path in both storybook
and the app

Fixes #13877
2024-03-11 20:30:59 +01:00
Lukáš Tinkl 64fd892e2e fix(StoryBook): add missing required property communityId
caught by the fixed PagesValidator test
2024-03-11 12:44:16 +01:00
Stefan 9202cce3f5 feat(activity): add incremental updates to current activity filter
Switch the activity filter to use the new session-based API that
deliver incremental updates to the current filter.

Drop the old quick win listening for individual change events and
use the unified API instead.

The new transactions (on-top) trigger the old "new transactions" buttons
that trigger reset of the current filter and the top new transacitons
highlighted.

Highlight mixed changes (not new on top) as they come in

Highlight new changes on filter reset

Closes #12120
2024-03-11 11:39:59 +01:00
Anthony Laibe 115610fcf6 feat(@wallet): unknown token 2024-03-11 11:29:32 +01:00
Noelia a9b5d8fcf7 feat(ProfileShowcase): Add search input in all tabs
- Added searcher input in header.
- Added 2 filter proxies for hidden and inshowcase models depending on search text.
- Added filter expression per showcase tab (accounts, collectibles and communities).
- Added specific placeholder when search empty.
- Added specific logic when search active.
- Added search validation.

Closes #13508
2024-03-08 10:43:07 +01:00
Noelia b92974ffff feat(ProfileShowcase): Display counter in `In showcase` section header and elements limit
- Added counter in showcase header.
- Added placeholder when limit reached and section expanded.
- Added placeholder when limit reached and section collapsed.
- Added green animation when section collapsed and element added.
- Disabled showcase delegate context menu when limit reached.
- Dynamic tooltip offset center added.
- Added model changes tracker to track the in showcase count.

Closes #13507
2024-03-07 16:10:46 +01:00
Alexandra Betouni 13c2653e2f Added Chart Panel in story book 2024-03-07 11:49:24 +02:00
Alex Jbanca 4d6082e806 feat(ProfileShowcase): Updates based on comments 2024-03-06 14:49:54 +02:00
Alex Jbanca e304d9b76b feat(ProfileShowcase): Implement workaround for the inline components not working
This commit will fix the linux and windows builds by removing the usage of public inline components

TODO: revert this commit once all platforms are migrated to qt 5.15.8+
2024-03-06 14:49:54 +02:00
Alex Jbanca 4a4a5d5c4b feat(ProfileShowcase): Adding the MovableModel to the ProfileShowcaseModels to intercept the SFPM events
This is needed for the DND.
2024-03-06 14:49:54 +02:00
Alex Jbanca 07484cb15c feat(ProfileShowcase): Simplify ProfileShowcasePanel API and connect to the new models
1. Fix `EmptyShapeRectangleFooterListView` visibility and positioning after ListView items are animated out of view
2. Update `ShowcaseDelegate` to remove modelObject dependency. The UI properties needed will be received from parent
3. Update `ProfileShowcasePanel` to remove the previous logic involving rows move and visibility change. There is no need now for two specialised delegate components (one for in showcase and one for hidden). The delegate is still configured outside of this component because the model rolenames need to be mapped to the delegate properties. The common delegate logic is implemented in the `ProfileShowcasePanel` and only the model mapping is needed from parent component.
3. Update all `ProfileShowcase*Panel` to impement the new API
4. Remove all `*ShowcaseDelegate`. The delegate is simple enough to be configured at once in the Panel
2024-03-06 14:49:54 +02:00
Alex Jbanca 49aa747fdf feat(ChannelPermissions): Show confirmation dialog before closing the channel edit popup 2024-03-06 14:40:23 +02:00
Ivan Belyakov da226b75aa feat(wallet): resize saved address popup to remove network selection
when ENS name is resolved. Resolve ENS name before used in SendModal.
UI tweaks:
  - red stroke on address input in case of error
  - smaller tick for validation address input
  - added validation spinner to address input, removed from the button
  - handled tab key to move focus between inputs
2024-03-06 08:52:23 +01:00
Dario Gabriel Lipicar 96d9acf1f0 feat(@desktop/wallet): implement jump to activity details screen from collectible details activity tab
Fixes #13721
2024-03-05 07:41:20 -03:00
Lukáš Tinkl d12490ab18 feat(Profile flow): Respond to/review an incoming CR
- implement the new "Reviewing contact request" popup & flow
- adjust storybook

Fixes #13519
2024-03-04 10:56:10 +01:00
Lukáš Tinkl fda1d37c5b feat(Profile flow): ID verification flows (incoming/outgoing)
- Send/request ID verification
- Reply to incoming ID request
- Review ID verification reply
- adjust SB and add shortcuts to trigger the various states of the ID
verification flows

Fixes #13709
Fixes #13745
Fixes #13747
2024-03-04 09:56:30 +01:00
Ivan Belyakov 09c0f1b0c8 feat(wallet): ReceiveModal dialog UI tweaks
Closes #13386
2024-02-28 17:23:46 +01:00
Dario Gabriel Lipicar 10c44b8038 feat(@desktop/wallet): implement collectible details activity tab
Fixes #12311
2024-02-28 13:07:48 -03:00
Lukáš Tinkl 4d3745d4b2 feat(Profile flow) Mark as ID verified / remove verification
- implement two new actions and popups to directly mark a contact as "ID
verified" and remove the verification thereof respectively
- do not hardcode the secondary button inside ProfileDialogView and make
it a Loader
- make the CommonContactDialog contents scrollable

Fixes #13711
2024-02-26 16:11:56 +01:00
Noelia 3386ce74e7 feat(ProfileShowcase): Created first info popup
- Created `ProfileShowcaseInfoPopup` component.
- Added storybook support for the new popup component.
- Added new popup into the application flow.
- New property stored in local account settings file.

Closes #13338
2024-02-26 10:08:52 +01:00
Khushboo Mehta 085bf762a5 feat(@desktop/wallet): Update token details view
closes #12373
2024-02-23 13:03:28 +01:00
Michał Cieślak 94f250d671 chore(ProfileShowcaseDirtyState): integration with Constants.ShowcaseVisibility enum 2024-02-21 09:42:05 +01:00
Michał Cieślak ac266bb997 feat(ProfileShowcase): Component managing all models required by Profile Showcase settings UI
Closes: #13435
Closes: #13490
Closes: #13494
2024-02-21 09:42:05 +01:00
Michał Cieślak 809af0ac90 feat(ProfileShowcase): Base components for managing dirty state 2024-02-21 09:42:05 +01:00
Michał Cieślak b949fb7b3b StatusQ(MovableModel): Methods naming refactor, Storybook pages updated/improved 2024-02-21 09:42:05 +01:00
Lukáš Tinkl e46f6c311c feat(Profile flow): Remove a contact
- implement the new remove contact confirmation popup

Fixes #13521
2024-02-20 20:11:56 +01:00
Lukáš Tinkl e773d8d358 feat[StatusButton] missing green/success state
- implemented the missing `StatusBaseButton.Type.Success` state and
colors for both `StatusButton` and `StatusFlatButton`
- use a `switch` instead of a waterfall of ternaries
- adjust storybook for the new case

Fixed #13622
2024-02-20 00:35:04 +01:00
Khushboo Mehta eaef030bc8 feat(@desktop/wallet): Send dialog: sizing and layout rules to limit dialog height jumping between states
fixes #13377
2024-02-19 17:23:20 +01:00
Cuteivist 7dedb223a2
feat(@desktop/activity): Handle token received notification (#13447) 2024-02-19 14:58:20 +01:00
Lukáš Tinkl 4a3eb4ce18 feat(Profile flow) Mark as untrusted
- add new popup for marking a person as untrusted
- optionally display checkboxes to remove ID verification or the contact
- emit toasts

Fixes #13520
2024-02-19 14:25:35 +01:00
Noelia 01095e0208 feat(ProfileShowcase): Add foldable sections in profile showcase tabs
- Modified `ProfileShowcasePanel` with 2 foldable sections.
-  Modified api of `ProfileShowcaseCommunitiesPanel` with the new base component.
- Modified api of `ProfileShowcaseAccountsPanel` with the new base component.
- Modified api of `ProfileShowcaseAssetsPanel`  and `ProfileShowcaseCollectiblesPanel` with the new base component.
- Added needed `storybook` support.

Closes of #13504
2024-02-19 11:13:23 +01:00
Lukáš Tinkl 2fa65968c0 fix(Profile flow): Send a contact request (CR)
- make `SendContactRequestModal.qml` use the common dialog, use the
contact details if we already have it
- make some minimal changes to the "Send ID verification" flow since it
shares the same dialog
- simplify the `CommonContactDialog.qml` footer/buttons handling
- adjust the menu item texts
- emit toasts when the action is performed
- display a tooltip over the compressed elided key

Fixes #13518
2024-02-16 16:47:45 +01:00
Lukáš Tinkl 275d4fb349 fix(Profile flow): Adding/changing/removing a nickname
- introduce a shared `CommonContactDialog.qml` component, to be used in
all profile/contact related flows
- make `NicknamePopup.qml` use the common dialog
- adjust the menu item text and add a new "Remove nickname" item
- remove unused `DisplayNamePopup.qml`
- emit toasts when the nickname changes

Fixes #13513
2024-02-16 10:52:58 +01:00
Noelia 2259f92ed3 storybook(ActivityNotification): Community token received page
Added support to `ActivityNotificationCommunityTokenReceived` component.

Closes #13362
2024-02-14 15:10:20 +01:00
Alex Jbanca 8a69f3bc63
fix(SeedPhrase): Fixing seed phrase validation (#13496)
* fix(SeedPhrase): Fixing seed phrase validation

1. Validate each word after the editing is finished
2. Fixing the seed phrase suggestions where the suggestions box was hidden behind other ui elements
3. Propagate editingFinished signal in StatusBaseInput, StatusInput, StatusSeedPhraseInput
4. Fixing undefined `mnemonicIndex` errors

* fix: Refactoring of SeedPhraseInputView

Remove duplicated code and use EnterSeedPhrase component

+ Added storybook page

* fix(Onboarding): Fixing seed phrase validation on windows

The seed phrase validation fails on windows due to the dictionary line endings

* chore(squish): Update e2e tests to the new enter seed phrase panel construction

* fix: Load english dictionary from local file using StringUtils
2024-02-14 15:50:14 +02:00
Lukáš Tinkl 46e256673c feat(profile): Place user image/identicon onto the QR code
- fix the QR code to generate a URL with the link to the profile instead
of just the user key
- reuse the `UserImage` component and place it on top of the existing QR
code
- put a white rectangle behind the QR code image and white ring around
the user image

Fixes #13482
2024-02-14 13:37:06 +01:00
Noelia 1de573ada7 feat(ProfileShowcase): Collectibles panel navigation button
- Created new reusable component to navigate to accounts tab form collectibles / assets tab.
- Added needed support in `storybook` to cover the new use case.

Closes #13340
2024-02-14 10:28:56 +01:00
Lukáš Tinkl 0f1fc3b241 fix(profile/qr) add Copy/Download menu for QR code
add a regular image context menu with:
- "Copy image" -> copy the image to clipboard
- "Download image" -> downloads the image in the user specified folder

Fixes #13479
2024-02-13 15:04:27 +01:00
Noelia 463cce03ac feat(ShowcaseDelegate): Added community badge
- Added community badge in `ShowcaseDelegate`.
- Added `storybook` support.

Closes #13336
2024-02-12 14:45:14 +01:00
Noelia 9d4f1f6aa7 feat(ProfileShowcase): Assets panel navigation button
- Added new button to navigate to accounts tab form assets tab.
- Added needed support in storybook to cover the new use case.

Closes #13337
2024-02-12 14:44:47 +01:00
Khushboo Mehta 8c939ad3a3 fix(@desktop/wallet): Replace existing model used in Community / Permissions and do the needed cleanups
fixes #12513
2024-02-12 14:26:13 +01:00
Lukáš Tinkl 4b24497899 fix(profile): add online status badge to profile picture
- adds the green/gray dot (aka online indicator) to Profile dialog and
context menu (via ProfileHeader and UserImage components)
- add the respective combobox to storybook too

Fixes #13480
2024-02-12 12:36:20 +01:00