Commit Graph

11 Commits

Author SHA1 Message Date
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
Sale Djenic 06ba89661b chore(@desktop/wallet): object names added to wallet account related qml components 2023-04-13 19:51:10 +02:00
Sale Djenic 1225a71877 fix(@desktop/wallet): account name character limit not enforced
Closes #10281
2023-04-13 19:18:35 +02:00
Stefan 34c04f0af6 fix(Wallet) fix DerivationPathInput allow custom partial path
The non-standard derivation path was not allowed to be entered so paths
with custom indexes were not allowed.
Also implemented warning for non-ethereum coin
Added more tests for the new specifications
Other minor improvements and fixes

Closes #10135
2023-04-05 18:48:15 +04:00
Sale Djenic a2f5d81f7f fix(@desktop/wallet): derivation path is not pre-selected by default when importing account in wallet
Closes: #10153
2023-04-04 20:26:58 +02:00
Sale Djenic cab6af212f fix(@desktop/wallet): add account button is enabled in ambiguous state
Fixes: #10078
2023-04-03 14:13:53 +02:00
Sale Djenic ea53fce030 feat(@desktop/wallet): edit account reusing new "Add Account" popup
Closes: #9847
2023-04-03 14:13:53 +02:00
Stefan 81c3463816 feat(wallet): implement DerivationPathInput control
The enforcing of the derivation path editing rules is done in a structured
way by handling all the changes on the array of `Element` stored in
d.elements and then recomposing the HTML string to be displayed after
every change.

Main limitation is the workaround in `onTextChanged` that regenerates
the text in order to dismiss foreign characters introduced by pasting
which I couldn't find a way to disable without disabling also the ability
to copy content to clipboard.

Highlights:
- Implement DerivationPathInput control that intercepts the modifiable
keyboard events in order to edit the visible TextEdit.text while
respecting the requirements of the derivation path editing
- Implement a JS Controller that handles the logic of the
  decomposing and recomposing the derivation path string
- Add anew StatusQ with the TextEdit basic look and feel to be used
  in DerivationPathInput control without duplicating the style
- Allow passing modifiable events that are not generating characters in
  order to allow copy to clipboard
- Disable add account when control is in error state
- Limit to maximum 5 elements in the derivation path

Testing:
- Integrate the control with StoryBook for a quick preview of the
  control
- Add unit tests for the Controller basic functionality and regression
  for the main control Item
- Removed forcing x64 architecture on apple arm64 hardware from the
  storybook build configuration

Note: initially the implementation was suppose to be simple parse the
derivation path string edit elements and format it. However, I could not
find a quick way fix the circular dependency issue between editing the
text and reformatting it. The solution was to use a one way from the
structured data to the formatted string which complicates the
implementation logic.

Closes: #9890
2023-03-31 18:14:50 +04:00
Sale Djenic 5479880cde chore(@desktop/wallet): add account modal - improvements
- `AddAccountStore` moved to `AddAccountPopup`
- watch only address' placeholder text updated
- emoji popup button added to the right side of the account name input field
- `validateMnemonic` proc from accounts service updated
2023-03-28 18:09:39 +02:00
Sale Djenic 51058d9065 feat(@desktop/wallet): new add account modal - amends
Closes: #10020
2023-03-28 18:09:39 +02:00
Sale Djenic 223e4f1bc2 feat(@desktop/wallet): new "Add Account" modal added
Closes: #9733
2023-03-28 18:09:39 +02:00