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
- keep track of the grouped item kind (community vs. collection)
- when the "arrange by" mode is active, use it for sorting the tokens in
the main wallet view
- change the behavior to always sort by the number of tokens inside the
group when entering the grouped (arrange by...) mode + add tests
- expose the `backgroundColor` for token groups
- remove unused code dealing with handling of community IDs
Fixes#13276
* 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
- reduce the duplication by moving the controllers (1 per type) to the
toplevel stores
- make sure the internal properties stay in sync between save/load now
that we have just 1 common controller
- fix navigating to the Hidden section from the toast
- finish impl of hiding the token from FirstTokenReceivedPopup
It provides visual alignments to the current design and also
significantly improves performance because ListView components
are not "unrolled" causing instantiation of too many delegates.
Closes: #12703Closes: #13043
- add new Hidden tab/section to Settings/Wallet/Manage tokens page and
storybook
- extract the controller(s) to ManageTokensView.qml to share them across
the tabs
- updated the grouped UI delegate
- adjust the tests
Fixes#13201Fixes#13188
... under Settings/Wallet/Manage Tokens
- rename Tokens List tab to Advanced tab
- introduce a new `CurrencyAmountInput` component, backed by
`FormattedDoubleProperty` C++ class (plus the respective SB page)
- use `FastExpressionFoo` for the collectibles views as well
Fixes#12611Fixes#13040
.. to filter by community or collection name
- make the HistoryView own filter button look like the other combos
- fix some cosmetic issues for StatusCombo in small/secondary mode
- fix StatusBaseInput bg color in dark mode (was invisible)
- update CollectiblesViewPage with options to include regular and/or
community collectibles
Fixes#12969Fixes#12948
- implements a QML panel to organize collectibles
- factors out the delegates to separate files to be reusable with the
Assets tab
- adds QML tests to assess the UI functionality (move, show/hide, save/load)
- does not cover the problematic "Arrange by collection" switch (TBD
later)
Fixes: https://github.com/status-im/status-desktop/issues/12379
Implement a prototype of integrating [WalletConnect Web SDK]()
- integrate WalletConnect Web SDK using Node.js and packing it using
[webpack](https://webpack.js.org/guides/getting-started/)
- this way, we achieve the same versioning strategy for the SDK
- add WalletConnectSDK view
- it is used to load the web SDK via a WebView (validated working on
Mac and Windows)
- add new app dependency of WebView QT
- also update vendor packages `Dotherside` and `nimqml` to add
required WebView::initialize API used to initialize the WebView
integration at the app start
- add WalletConnectPage to Storybook for quick prototyping
- Also add dependency for WebView Qt lib
- index.js is the wrapper used to provide a simple stateful interface
with the WC SDK
- Entry in ui/generate-rcc.go ensures the node_modules cache is excluded
from the resource file
Notes:
- Added `com.apple.security.cs.allow-jit` entitlement when signing the
app package. This allows Execution of JIT-compiled Code Entitlement
required by the fast-path of the JavaScriptCore framework on MacOS
platforms.
- Keep some debugging entries expected to help debugging Linux package
- Removed outdated `DerivationPathInputRegressionTests` qml test
Closes#12301
Updating the `Undo` test that compares the `Undo` done in StatusChatInput with a standard TextEdit component.
Undo/Redo feature was changed by https://github.com/status-im/status-desktop/pull/12262. Now we're using a custom undo/redo logic and the undo is more granular as opposed to TextEdit.
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
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
1. Don't allow mention invalidation by altering mention with mouse or keyboard
2. Don't allow mention duplication on the same position
3. Clean mentions after text with mentions changes
4. Fix mention selection
5. Make sure mention is separated by text with valid separators (we're using only space)
6. Cursor will consider the mention as an object and will jump over it as it would be a single character (placing cursor inside leaves room for mention invalidation)