Commit Graph

1700 Commits

Author SHA1 Message Date
Michał Cieślak 206bc79ab4 downloadImageByUrl moved to SystemUtils 2024-10-11 12:14:53 +02:00
Michał Cieślak 3f9f175e07 restartApplication() removed from Utils.qml and nim 2024-10-11 12:14:53 +02:00
Lukáš Tinkl 6ba74fae8e fix(StatusChatInfoButton): missing lock icon
- propagate and set `requiresPermissions` + `locked` from the
`chatContentModule.chatDetails`
- set the icon accordingly for community chats

Fixes #16502
2024-10-10 21:50:58 +02:00
Alex Jbanca 92d8d601e5 fix: Enable WebEngineLoader qml tests 2024-10-10 10:29:12 +03:00
Alex Jbanca 7603f24372 refactor: Remove business logic from WC ui components
This commit brings a separation of concerns for the UI components involved in dApp interactions.

Issue: The UI components depend on the WalletConnectService and also on its dependencies like DAppsRequestHAndler. As a result the UI components have a hard dependency on the WalletConnect specifics and are incompatible with BC. This results in duplication of logic.
Issue: The UI components operate on WalletConnect specific JSON object. E.g. session objects, session proposal etc. As a result the UI is built around the WalletConnect message format.
Issue: The UI components operate on ListModel items received through functions and stored internally. Any change in the model would result in a crash.
Solution: Remove the WalletConnectService dependency from DAppsWorkflow. The DAppsWorkflow now operates with models, signals and functions. This is the first step in the broader refactoring. Moving the logic into the service itself will allow us to further refactor the WC and BC.

How does it work now:

Dependencies - The UI components have a dependency on models. SessionRequestsModel and DAppsModel.
Pairing - The pairing is initiated in the UI. On user input a pairingValidationRequested signal is emitted and the result is received as a function pairingValidated. If the url is valid the UI requests a pairingRequested. When the WalletConnectService is refactored we can go further and request only pairingRequested and to receive a pairingResult call as a function with the result. In the current implementation on pairingRequested we'll receive a connectDApp request.
Connecting dApps - The flow is initiated with connectDApp function. This call currently contains all the needed info as args. In the next step it could be replaced with a ConnectionRequests model. The connectDApp call triggered a connection popup if we're not currently showing one to the user. If we're currently showing one it will be queued (corner case). The connection can be accepted with connectionAccepted and rejected with connectionDeclined. Once the connection is accepted we're expecting a result connectionSuccessful or connectionFailed. The connectionSuccessful also expects a new id for the established connection.
Signing - The signing flow orbits around the SessionRequestsModel. Each item from the model will generate a popup showing the sign details to the user. Sign can be accepted or rejected using signRequestAccepted or signRequestRejected. No response is currently expected. The model is expected to remove the sign request item.
2024-10-09 13:32:53 +03:00
Lukáš Tinkl fe9308fa1e fix(StatusCommunityCard): fixup margins/padding and spacing
- according to the Figma designs; looks much better now in both
small/big views
- don't stretch the bottomRow component unnecessarily in the Loader;
provide implicit width for the tags container instead
2024-10-07 12:09:23 +02:00
Lukáš Tinkl 2c46764829 fix(MembersTabPanel): Buttons in the Member tab do not work
- move the MouseArea into `background` so that it doesn't obscure the
potential action buttons
- fixup SB page

Fixes #16426
2024-10-03 14:34:12 +02:00
Lukáš Tinkl e3512938f6 fix(MessageContextMenuView): Message context menu displaying incorrectly
- restore previous context menu item spacing (ColumnLayout has an
implicit spacing of 5)
- don't wrap the MessageReactionsRow into an extra Item container; fixes
the emoji reactions row being garbled
- enhance the SB page so that the above can be seen/tested there and
rename it to match the component name
- some smaller cleanups

Fixes #16409
2024-10-02 15:58:59 +02:00
Lukáš Tinkl 3025ac9208 fix(StatusMessage): fix forgotten enum value in StatusMessage.OutgoingStatus
- also fix typo in the default value of `outgoingStatus`
2024-10-02 15:58:59 +02:00
Michał 730fcef6de
StatusQ: Introduce LazyStackLayout - stack layout with deferred instantiation (#16417)
Closes: #16416
2024-09-26 14:16:30 -04:00
Michał d2d3a56810
StatusQ: ConstantRole - custom SFPM proxy role added (#16405)
Closes: #16401
2024-09-25 15:13:53 -04:00
Lukáš Tinkl c9e1d29e25 fix(StatusMenu): StatusSuccessAction is not taken into account for Menu width
- StatusSuccessAction, despite its name, is a visual item (`MenuItem` ->
`AbstractButton`) which is not part of the `contentModel` but just added
to the menu container
- therefore we don't use a ListView but a ScrollView/Repeater instead
and set the width/maxWidth manually after the menu items have been added
to the layout

Fixes #14037
2024-09-23 17:35:27 +02:00
Khushboo Mehta 5771a33eaa feat(@desktop/wallet): Added feature flag FLAG_SEND_VIA_PERSONAL_CHAT_ENABLED for the send via personal chat feature
Also added logic in order to detect and highlight an address/ens name in the chat
2024-09-23 11:20:56 +02:00
Lukáš Tinkl 6a2b3faeb0 feat: add countdown pill to sign dialogs and make them unclosable
- show countdown until which the sign (WalletConnect and Swap) dialogs
expire
- after expiration, hide the Reject/Sign buttons and display a plain
Close button
- make the dialogs non-closable by clicking outside or pressing Esc; the
user has to explicitely click some of the footer buttons

Fixes #16327
Fixes #16314
2024-09-20 09:47:10 +02:00
Lukáš Tinkl 02066d098d feat(StatusCircularProgressBar): add a circular progress bar
- based on QML Canvas
- visualizing progress value (0..1) on a circle with 2 configurable
colors
2024-09-20 09:47:10 +02:00
Lukáš Tinkl 0c6a602336 [StatusQ] Move StyledTextField to StatusQ
- and rename it and its usages to StatusTextField
- remove a couple of related and unused components

Fixes #16296
2024-09-13 16:40:47 +02:00
Lukáš Tinkl c5598d9ff9 chore(StatusMemberListItem): refactor to use ItemDelegate
- simpler, standard property based API
- much lighter than deriving from the heavy StatusListItem
- should reduce RAM usage significantly, esp. with large communities

Iterates #11059
2024-09-12 15:04:22 +02:00
Lukáš Tinkl 0a1ebb69bd fix(StatusSeedPhraseInput): accept a common prefix suggestion
- fix for a corner case prob when there was a valid seedphrase word
(e.g. cat) that is at the same type a prefix for other valid suggestions
(e.g. category, catalog, ...); it was imposible to select it using Enter
key or mouse click from the suggestions popup at the last field
- add a QML regression test for this issue
- use standard subcomponents (StatusDropdown, StatusListView) reducing
code duplication and unifying UI/UX

Fixes #16291
2024-09-10 16:00:40 +02:00
Alexandra Betouni ce525890eb fix[StatusChatMenu]: updated menu options as per designs
Closes #13393
2024-09-10 14:22:33 +02:00
Michał Cieślak 01a24e1b19 TokenSelectorNew decomposed into smaller, reusable subcomponents 2024-09-05 08:55:15 +02:00
Lukáš Tinkl 6b8702b0b2 fix(StatusNavigationListItem): unbreak hovering over settings menu items
- fixes regression when hover wouldn't work if the menu item contained a
beta tag

Fixes #16263
2024-09-04 18:16:15 +02:00
Anastasiya Semenkevich 9598e9a44c qml: new object names for token selector panel 2024-09-04 16:16:10 +03:00
Lukáš Tinkl 5cf4592c3b fix: Slippage Selector Issues
- add various error/warning messages according to Figma (where it makes
sense)
- letters or more than 2 decimals are caught by the internal validator
so those combinations are impossible to enter
- fix marking the custom value as (in)valid
- fix selecting "Use default" after typing a custom value
- fix resetting to predefined value after typing a custom value that
matches one of the predefined ones
- reject typing thousands separator
- add regression QML tests for the above fixes

Fixes #15017
2024-09-03 17:36:48 +02:00
Lukáš Tinkl 9d9fb69e3b feat(StatusEmojiPopup): reimplement around C++ EmojiModel
- the new C++ EmojiModel provides a simple wrapper around the existing
JSON to facilitate a faster access and to be able to search/filter in
QML using SFPM
- no more nested GridViews inside Repeaters
- get rid of emoji manipulation and search/filter using JavaScript
- included the C++ script to generate the emojiList.js
2024-09-03 10:19:54 +02:00
Lukáš Tinkl 19e0be07d8 feat: Upgrade emoji selection to support latest emojis
- upgrade to latest TWEmoji 15.1.0 from
https://github.com/jdecked/twemoji (the original twemoji is abandonware
now)
- create new EmojiJSON metadata from https://github.com/milesj/emojibase
- removed unused 26x26 assets
- add storybook page for StatusEmojiPopup

Fixes #8979
2024-09-03 10:19:54 +02:00
Cuteivist 70421a0454
fix: Correctly display manage tokens icons (#16228) 2024-09-03 06:07:03 +02:00
Michał Cieślak 9c4e1a8fe9 SubmodelProxyModel removed
Closes: #15825
2024-09-02 20:20:10 +02:00
Cuteivist ee770257c5
chore: Disable clicking on Betatag (#16207) 2024-08-30 12:19:42 +02:00
Michał Cieślak 4ac9a9b305 copyImageToClipboardByUrl moved to ClipboardUtils 2024-08-29 15:46:17 +02:00
Michał Cieślak a8940a71f5 Using ClipboardUtils.setText instead of nim's copyToClipboard 2024-08-29 15:46:17 +02:00
Michał Cieślak 7757f4e615 QClipboardProxy QML type renamed to ClipboardUtils
Additionally, copyTextToClipboard is renamed to setText, mimicking
QClipboard naming.
2024-08-29 15:46:17 +02:00
Michał Cieślak 781133238a ClipboardUtils: isValidImageUrl and isValidImageUrl excluded to UrlUtils 2024-08-29 15:46:17 +02:00
Michał Cieślak 9311ebe7fe QClipboardProxy renamed to ClipboardUtils 2024-08-29 15:46:17 +02:00
Lukáš Tinkl f59ce285a9 fix(StatusBaseButton): correct radius and icon size for `isRoundIcon` mode
- this fixes 2 small regressions, namely in how we calculate the
background corner radius and icon size when in the mode of `isRoundIcon`
- the "Saved addresses" button in wallet's left view is very special on
its own; overall we have only 2 instances of this "round" icon buttons
in the whole app

Fixes #16156
2024-08-20 22:08:19 +02:00
Cuteivist 224dd5e58d
fix(wallet): Filter collectibles filter options (#16125) 2024-08-20 06:02:14 +02:00
Lukáš Tinkl e3dae7e1db feat(StatusButton) Add support to show text when button is loading
- add a secondary "loading" state (`loadingWithText`), that is show the
loading indicator next to the text
- simplify the StatusBaseButton layout (esp. handling the overall
opacity/visibility)
- add a QML test suite; the code was becoming too complex and adding a
simple boolean prop was getting "dangerous"
- port the SwapModal to use the new `loadingWithText` property

Fixes #15313
2024-08-19 22:36:50 +02:00
Lukáš Tinkl aae265123b feat(GenericValidator): expose locale name
- make it possible to configure the locale of the validator
- use the correct default decimal point in AmountValidator
- update/add the relevant tests for AmountToSendNew
2024-08-17 09:39:42 +02:00
Igor Sirotin e279e639a4
chore: new parameters for local pairing (#15943)
* wip

* chore: cleanup variables

* chore: cleanup

* fix: remove defaultWalletEmoji

* chore: update status-go

* chore: update status-go
2024-08-15 18:36:32 +01:00
Alex Jbanca 4d963031e9 fix(WalletConnect): Store web cookies and cache to a dedicated folder for each account
WalletConnect cannot operate on shared cookies in between accounts. This commit will split the cookies and cache in different folders with the user public key as folder name.
2024-08-13 23:23:23 +03:00
Lukáš Tinkl 3c18ac0f7a feat(AboutViewPage): display the runtime Qt version in Settings/About
- it's easier to make sure and detect what users are using, esp. when
they report bugs
- with a clickable link to the release notes
2024-08-12 23:52:51 +02:00
Lukáš Tinkl 790d34d875 fix(chat): Button to go to the latest message is barely visible on dark theme
- unify bg color, use white as fg color, add drop shadow according to
Figma
- fixup the hover color intensity

Fixes #13771
2024-08-12 09:46:30 +02:00
Lukáš Tinkl 1df3503dfb chore(StatusSwitchTab*): simplify and make the beta tag highlighted
- make the StatusBetaTag highlighted when used inside an active/checked
StatusSwitchTabButton
- simplify the components, get rid of MouseArea just for the sake of
setting the cursorShape
2024-08-12 09:46:21 +02:00
Lukáš Tinkl c50c970e42 chore(StatusBetaTag): make fg color configurable 2024-08-12 09:46:21 +02:00
Michał 9acf723ddc chore: Architecture guide added and PR template updated
Closes: #15539
2024-08-09 22:29:44 +02:00
Michał Cieślak 021756fcd6 fix(ManageTokensController): Emit revision change after loading settings 2024-08-08 17:20:28 +02:00
Lukáš Tinkl 6159f53839 fix: Add additional information to the Beta tags
- display additional beta information as a tooltip
- don't overlap the Beta badge with the unread msg indicator
- some minor cleanups & fixes

Fixes #15795
Fixes #15929
2024-08-05 15:39:51 +02:00
Lukáš Tinkl 40f7aff086 fix: inconsistent/incorrect decimal value formatting
- format Big decimal numbers correctly according to the current locale;
some precisions loss is tolerated here for the display purposes
- fixes wrong decimal separators in some places and aligns with the
standard in terms of number of decimals, as everywhere else in the app

Fixes #15612
Fixes #15790
2024-08-01 15:35:52 +02:00
Lukáš Tinkl 24dd67e6dd fix(Wallet): Hiding assets from wallet's main view doesn't work
- partially reuse the already available Global/Popups methods to hide
assets (which also emit proper notifications); those are needed as
anotehr shared modal from Popups uses it too (may come from outside of
Wallet)
- some warnings cleanup in the controller

Fixes #15777
2024-08-01 12:12:48 +02:00
Michał Cieślak baa1baa17f StatusQ/ConcatModel: flag added changing behavior on source model's reset
Closes: #15891
2024-08-01 10:52:22 +02:00
Jonathan Rainville 4159148ab7
fix(profile): fix canceling modifications in the profile (#15905) (#15906)
Fixes #15904
2024-07-31 10:00:56 -04:00