798 Commits

Author SHA1 Message Date
Michał Cieślak
cee35cb164 Onboarding: Add key pair page aligned to the design
Dedicated page for operation of adding new key pair to the keycard,
with minimal times for displaying in progress and success states.

Closes: #17233
2025-02-11 12:44:46 +01:00
Michał Cieślak
0f81f7922f Storybook(OnboardingLayout): mnemonic auto-fill fixed 2025-02-11 12:44:46 +01:00
Cuteivist
289c14aefd
feat: Remove beta popup (#17264)
* feat: Remove beta popup

* chore(@e2e): remove beta consent popup

---------

Co-authored-by: Anastasiya <anastasija.ig@gmail.com>
2025-02-11 10:18:16 +01:00
Michał Cieślak
7649ad45ca feat(Onboarding): KeycardExtractingKeysPage excluded from KeycardEnterPinPage
Closes: #17205
2025-02-07 17:24:20 +01:00
Igor Sirotin
6fe5330e5b
fix: use mnemonic as BIP-39 string (#17246) 2025-02-07 15:14:52 +00:00
Lukáš Tinkl
a9066806b5 chore(Onboarding): Remove all "Reload keycard state" buttons
- the manual "I've insterted a keycard" reload buttons are no longer
needed; we can rely solely on the HW keycard state
- when doing a "Restart", also reset the internal mock/store states

Fixes #17234
2025-02-07 13:10:58 +01:00
Michał Cieślak
54ff857f3d feat: LoginScreen - ability to dismiss biometrics popup 2025-02-06 19:20:38 +01:00
Michał Cieślak
d26991bc72 feat: LoginScreen biometrics integration using Keychain
Required for #17085
2025-02-06 19:20:38 +01:00
Michał Cieślak
94dbdc450f chore: Keychain api adjusted 2025-02-06 19:20:38 +01:00
Lukáš Tinkl
2c0bcd67af chore(EnterSeedPhrase): improve the SB page
- add a convenience Paste button
- make it possible to validate the seedphrase
2025-02-06 14:56:07 +01:00
Cuteivist
79432938b2
feat(wallet): Update recipient data in send sign modal (#17164) 2025-02-06 10:08:54 +01:00
Lukáš Tinkl
db7a359a49 fix(PasswordView): UI fixes and alignments with latest Figma
- display validation messages closer to the input fields
- warn about pass too long, info for "passwords match"
- fix an actual bug when two too long passwords would be considered as
"valid" by the UI
- various fixes and UX improvements for the respective SB pages

Iterates: #17101

To fully fix the above issue, we need a more complete Figma design,
depicting the various error scenarios
2025-02-05 14:35:26 +01:00
Lukáš Tinkl
09bdb955e9 feat(Onboarding): implement the KeycardFactoryReset flow
- integrate it into the UI and StoryBook
- a new keycardState is introduced: `FactoryResetting` (matching the
backend)
- a new store method introduced: `startKeycardFactoryReset()`

Fixes: #17094
2025-02-04 22:57:04 +01:00
Jonathan Rainville
bf5de4087e
feat: Integrate new logins flows happy paths (#17137)
* feat(login): integrate basic login flows happy paths

Fixes #17137

* fix: rebase issues and pr comments

* chore: switch status-keycard-go to master branch

* fix: tests

---------

Co-authored-by: Igor Sirotin <sirotin@status.im>
2025-02-04 15:08:13 +00:00
Jonathan Rainville
2d549f42be
feat: Implement the keycard flows for the new onboarding (#17127)
* feat(onboarding): integrate all keycard flows for the new onboarding

Fixes #17079

* chore: bump submodules to merged versions

* fix: rebase fixes

* chore: bump status-keycard-go to use Go 1.21

* feat: add FactoryResetting state

* chore: minor fixes

* add KeycardRemainingPinAttempts

* minor fixes

* minor fixes

---------

Co-authored-by: Igor Sirotin <sirotin@status.im>
2025-02-04 13:22:05 +00:00
Igor Sirotin
6e1ef46ef7
feat: Keychain QML Item (#17166)
* feat: Keychain QML component

* fix: non-mac builds

* test

* feat: async api

* chore: gitignore statusq android gradle

* Keychain API adjusted, Storybook page unified for real/mocked biometric popup

* fix: proper success/error of getCredential

* chore: format file

* feat: Keychain emit status

* feat: Keychain status

* feat: cancel auth

* fix: various os-specific issues

* chore: address pr comments

* chore: update mocked biometrics popup

* chore: back to LAPolicyDeviceOwnerAuthentication

* cleanup
2025-02-04 12:26:33 +00:00
Dario Gabriel Lipicar
55e96bbd05 chore: extract rpcProviders as independent model 2025-01-31 12:11:35 -03:00
Dario Gabriel Lipicar
051b563f9f feat(network): integrate new rpc providers api 2025-01-31 12:11:35 -03:00
Michał Cieślak
e46b8e1f09 Onboarding: Unblock with seedphrase flow for login
Closes: #17142
2025-01-31 14:57:45 +01:00
Michał Cieślak
944568eaf7 Onboarding: LoginScreen location adjusted
- LoginScreen SB page simplified
- OnboardingLayoutPage - settings introduced for handier testing
- LoginScreen moved from OnboardingLayout to OnboardingFlow, making first flow's page bound to model content (instead of relying on check during initialization)
- UnblockWithPukFlow removed from OnboardingLayout (now it's used only in OnboardingFlow)
- Login error/success processing extracted from LoginScreen to OnboardingLayout
- small bug fixed in Utils::objectTypeName

Closes: #17160
2025-01-31 13:54:49 +01:00
Lukáš Tinkl
5cf9e4f838 feat(Post Onboarding): Introduce yourself popup
- popup displayed only ever once
- triggered when section is switched to anything else than wallet
(default for new users) or settings (profile visible first anyway)
- add the popup to SB

Fixes #17027
2025-01-30 18:00:18 +01:00
Lukáš Tinkl
df741d6260 feat(Onboarding): implement the new UnblockWithPukFlow
- integrate the PUK unblock flow into the Onboarding and Login screen
- added a dedicated SB page for it
- remove the `Locked` keycard state everywhere in favor of `BlockedPIN`
and `BlockedPUK`
- fix the various "Locked" buttons, based on the context and the state
of the keycard

Fixes: #17092
2025-01-29 12:38:43 +01:00
Lukáš Tinkl
2de4d3a19e feat(KeycardEnterPukPage): implement a dedicated "Enter PUK" page
- to be used in the "Unlock with PUK" flow
2025-01-29 12:38:43 +01:00
Michał Cieślak
fb9cd351c4 Onboarding: lost keycard flow components added 2025-01-29 11:00:16 +01:00
Lukáš Tinkl
4b8ed6c7a1 chore(Onboarding): implement getModelFromEnum()
- and use it in the SB pages to automatically get all values from an
enum and use them as a ready made model, instead of spelling the values
individually/manually
2025-01-29 09:20:24 +01:00
Lukáš Tinkl
e2f9dab33b fix(Onboarding/SyncProgressPagePage): fixup back buttons
- SyncProgressPagePage: enable the back button only in the failed state
- SyncProgressPagePage: fix the "Try again" and "Back" button to go to
the Scan QR step; the connection code is disposable and can't be used
again anyway
- adjust the respective SB pages to reflect the correct enum values
2025-01-29 09:20:24 +01:00
Lukáš Tinkl
2ec862231a feat(StatusButton): add an outline variant
- only for `StatusButton` as for the `StatusFlatButton` it's not desired
- also use defined metrics for padding/spacing
- add a QML test

Fixes #17124
2025-01-28 11:34:30 +01:00
Cuteivist
28690379e1
feat: Simple send modal recipient view (#17096)
* feat: Simple send modal recipient view

* feat: Handle duplicate entries in recent recipient view
2025-01-27 17:35:59 +01:00
Khushboo Mehta
4b2457a17b feat(@desktop/wallet): Adapt invocations to New Simple Send Modal
fixes #17023
2025-01-27 15:50:32 +01:00
Khushboo Mehta
5793204e01 feat(@desktop/wallet): Integrates the new sign model into the simple send
fixes #17060
2025-01-24 13:51:59 +01:00
Khushboo Mehta
bb0908021e feat(@desktop/wallet): New Send Sign Modal
fixes #16708
2025-01-24 13:51:59 +01:00
Khushboo Mehta
e8b03e8b7a feat(@desktop/wallet): Filter out community owner and master tokens from single network send modal 2025-01-24 09:40:21 +01:00
Lukáš Tinkl
638676ed0b feat(Onboarding) Implement new Login screen
- implement the new UI and frontend logic of the Login screen
- integrate it (as a separate page) into the OnboardingLayout
- add SB pages
- add an integration QML test
- add some TODOs and FIXMEs for the existing and new external flows,
which will be covered separately in followup PRs

Fixes #17057
2025-01-23 17:41:43 +01:00
Alex Jbanca
b6bc5d1e29 feat(dapps): Adding dapp metrics
closes #16912

Sending the dapps events to mixpanel

| Event Name | Properties | Possible Values | Notes |
| --- | --- | --- | --- |
| dapps-health | state | - wc_available
- wc_unavailable
- chains_down
- network_down
- pair_error
- connection_error
- sign_error |  |
|  | error |  | string description |
| dapps-navigation | flow | - dapps_list_opened
- connect_initiated
- disconnect_initiated
- pair_initiated |  |
|  | connector | - wallet_connect
- browser_connect |  |
| dapps-connection | flow | - proposal_received
- proposal_accepted
- proposal_rejected
- connected
- disconnected |  |
|  | networks | networks[string] - array of networks | Array of proposed or connected networks |
|  | methods | methods[string] - array of methods | Array of proposed methods |
|  | dapp | dapp uri |  |
|  | connector | - wallet_connect
- browser_connect |  |
|  | isSiwe | boolean |  |
| dapps-sign | flow | - sign_received
- sign_accepted
- sign_rejected |  |
|  | connector | - wallet_connect
- browser_connect |  |
|  | method | - personal_sign
- eth_sign
- eth_signTypedData_v4
- eth_signTypedData
- eth_signTransaction
- eth_sendTransaction |  |
|  | dapp | string - dapp uri |  |
|  | chainId | int - chain id |  |
2025-01-22 11:40:00 +02:00
Jonathan Rainville
a6e6546a08
Add a "Dismissed contact requests" tab in the Contacts panel (#17021)
* chore(ContactPanel): add tooltips to contact panel buttons

* feat(contacts): add a tab for dismissed contacts and a button to undo

Fixes #16844

Adds a tab in the Messaging>Contacts page that shows the dismissed contact requests.
it has a button to undo the rejection. That is simply a call to accept the old contact request, which then makes the two users mutual contacts
2025-01-14 10:18:31 -05:00
Michał Cieślak
07640e4bd9 Onboarding: metrics handling externalized 2025-01-14 10:49:42 +01:00
Michał Cieślak
c595e83605 KeycardAddKeyPairPage: built-in timeout removed 2025-01-14 10:49:42 +01:00
Michał Cieślak
ad1a1da369 SyncProgressPage: built-in timeout removed 2025-01-14 10:49:42 +01:00
Michał Cieślak
ec8d84b342 Onboarding: startKeypairTransfer called properly in create profile on keycard flow
Closes: #17030
2025-01-14 10:49:42 +01:00
Michał Cieślak
01dfec63c8 Storybook(OnboardingLayout): Key pair and sync states exposed, helper actions made contextual
Closes: #17032
2025-01-14 10:49:42 +01:00
Lukáš Tinkl
2b0179f936 fix(Onboarding): enable the network checks by default 2025-01-14 10:49:42 +01:00
Michał Cieślak
96a974622e Onboarding: non-intrusive current page name inspection 2025-01-14 10:49:42 +01:00
Michał Cieślak
4be5c2fa27 feat(OnboardingLayout): Decompose into smaller, pure ui sub-flows
Closes: #16947
2025-01-14 10:49:42 +01:00
Michał Cieślak
b58c1f005b Storybook: OnboardingLayout page - add seed phrase verification auto-fill 2025-01-14 10:49:42 +01:00
Lukáš Tinkl
3705249e40 feat(Onboarding): Create Profile & Login flows
- implement the basic Onboarding UI skeleton and the Create Profile
flows
- adjust the PasswordView and EnterSeedPhrase views to the latest design
- add the main OnboardingLayout and StatusPinInput pages to Storybook
- change terminology app-wide: "Seed phrase" -> "Recovery phrase"
- implement the Login flows (seed, sync, keycard)
- amend the keycard flow sequences with separate (non) empty page

Fixes #16719
Fixes #16742
Fixes #16743
2025-01-14 10:49:42 +01:00
Michał Cieślak
52c3d1bcc9 ContactView: indpendent lists per tab 2025-01-14 10:31:58 +01:00
Lukáš Tinkl
3281e841db fix: Optimize ContactsView & MembersTabPanel settings pages
- removed nested ListViews inside StackLayouts, in order to reduce the
memory footprint and improve performance, and also to be able to better
manage the scrolling
- no more unrolled multiple listviews, which again hurt the performance;
now the views instantiate the delegates dynamically on the fly
- the tab bar and the search fields now stick to the top of the page,
with the users list view scrolling independently
- both views now uniformly use the common `ContactListItemDelegate`
- the received/sent CRs are now combined into one `pendingContacts`
model
- factored out common search/filter criteria into a new, separate SFPM
`UserFilterContainer` component
- fix an issue where StatusContactVerificationIcons wasn't properly
displaying the "blocked" state/icon
- fix documentation comments, removed relative imports, and updated some

Fixes #16612
Fixes #16958
2025-01-14 10:31:58 +01:00
Lukáš Tinkl
c9d415ecfa chore(StatusCheckBox/Switch): UI updates & some fixes
- fix a bug where the Switch would start animating if it'd been checked
on creation
- add the same property `leftSide` to StatusSwitch (just like
StatusCheckBox), and use `LayoutMirroring` to perform the visual
inversion
- fixup margins and padding, removing hardcoded values, according to
latest Figma designs
- make a difference between a disabled and inactive button by using opacity
- provide smooth color transitions
- add dedicated StoryBook pages
2025-01-14 10:31:58 +01:00
Lukáš Tinkl
3495e2d413 chore(StatusTab[Bar,Button]): UI updates
- fixup margins and padding according to latest Figma designs
- make a difference between a disabled and inactive tab by using opacity
- provide smooth color transitions
- add a dedicated StoryBook page
2025-01-14 10:31:58 +01:00
Lukáš Tinkl
06d549922f fix(SettingsLeftTabView): fixup alignment of the Beta tag
- use a dedicated StatusListItem slot for the beta tag icon
- rename (Settings/)LeftTabView.qml to SettingsLeftTabView to avoid
naming confusion with the same component from wallet
- add the component to SB with options to explore

Fixes: #16906
2025-01-09 16:59:00 +01:00