Commit Graph

39 Commits

Author SHA1 Message Date
Stefan fc582776c0 chore(storybook) load WalletConnect SDK in storybook by QRC for now
Updates: #14696
2024-05-20 15:09:57 +02:00
Lukáš Tinkl 7183621369 feat: Manage tokens panel UI component & model
- implements the UI component to manage regular & community tokens
(drag'n'drop or context menu to reorder, show/hide, group by community)
- implements a custom C++ QAIM model which acts as a fake proxy model
for the above QML panel (internally it does all the
sorting/grouping/hiding and preserves the custom sort order)
- adds and corrects support for cascading submenus in StatusAction, and
StatusMenu[Item]
- adds support for mirrored (horizontally flipped) StatusSwitch
- adds a new SortOrderComboBox.qml (this was being used in the first
Figma version, can be ignored now, will be used by the main wallet view
later)
- some minor fixes and cleanups in the used components

Iterates #12377
Closes #12587
2023-11-09 11:45:32 +01:00
Stefan ccd8c5b65f feat(wallet) Wallet Connect integration prototype
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
2023-10-30 09:29:33 +01:00
Michał Cieślak d33e8f23a0 feat(Storybook): Add storybook targets to Makefile
Adds target to run a storybook itself (run-storybook) and also
target to run all tests from storybook directory (run-storybook-tests):
- unit tests for storybook itself
- unit tests for the app using the same stubs mechanism (in offscreen
  mode)
- PagesValidator

Tests are run via ctest.

Closes: #12448
2023-10-17 09:19:51 +02:00
Michał Cieślak 8a996a9175 feat(Storybook): Add tests runner available from the app 2023-10-16 13:37:08 +02:00
Michał Cieślak 5556c2a52f chore(Storybook): Exclude DirectoryFilesWatcher from PagesModel, add tests 2023-10-16 13:37:08 +02:00
Michał Cieślak 75dd3f7cb6 chore(Storybook): Figma links moved from figma.json to pages
Closes: #12229
2023-10-03 21:32:41 +02:00
Michał Cieślak 853641fb89 feat(Storybook): read Figma links directly from pages 2023-10-03 21:32:41 +02:00
Michał Cieślak 0107203a46 feat(Storybook): Validator app to check if all pages can be compiled
Closes: #12282
2023-09-29 14:59:34 +02:00
Michał Cieślak cb07625a57 Storybook: `PagesModel.qml` removed, adding new pages simplified
Closes: #11716
2023-08-01 13:10:56 +02:00
Igor Sirotin 5ff4b5a435
fix(MessageContextMenu): Cleanup. Separate menu for profile. (#10729) 2023-05-19 19:07:50 +03:00
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
Igor Sirotin aefa2b9f48
fix(StatusQ): StatusQ is QML module (#10207)
* StatusQ QML module
* qzxing is static lib again
* updated StatusQ resources
* fixed Emoji lookup
* added display to tests-imports ci
2023-04-14 11:18:56 +03: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
Jakub Sokołowski f39dfa87f7 move qzxing and SortFilterProxyModel to vendor folder
Lets avoid creating chaos by having multiple vendor folders.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-03-23 12:09:19 +01:00
Michał Cieślak 95d29c76f9 fix(Storybook): Register StatusQ types for Storybook/qmlTests
Closes: #9690
2023-03-02 11:33:37 +01:00
Michał Cieślak 9772145ce5 chore(Storybook): Update Readme to point CMakeLists.txt as the main way to build instead of WebAssembly
So far README.md had only description for WASM builds what was
misleading, suggesting that's the only proper way of building Storybook.

Closes: #9679
2023-03-01 13:48:31 +01:00
Michał Cieślak f8f4757a0b fix(Storybook): fix cmake config to show qmldirs in QtCreator 2023-02-20 18:40:59 +01:00
Noelia 243f1e5607 fix(storybook): Fix cmake file for macos
Replaced `PROJECT_NAME` to `PROJECT_LIB` for MacOS in cmake file.
2023-02-10 13:22:24 +02:00
Michał Cieślak 51afe05d3c chore(general): cmake include file defined for StatusQ sources
Closes: #9426
2023-02-09 13:41:15 +01:00
Michał Cieślak 940d8cd2c0 chore(general): Move RXValidator to StatusQ 2023-02-09 12:48:11 +01:00
Michał Cieślak f43c3e2f2b chore(general): Move StatusSyntaxHighlighter to StatusQ, remove mock from Storybook 2023-02-09 12:48:11 +01:00
Michał Cieślak 8f25b93f96 chore(general): Move QClipboardProxy to StatusQ 2023-02-09 12:48:11 +01:00
Alex Jbanca 3059631226 Add qml tests for StatusChatInput
Test parts of the working functionality
2022-12-19 10:11:53 +02:00
Alex Jbanca b414a829e8 Adding qml tests to storybook
+ dummy StatusChatInput test
2022-12-08 15:31:43 +02:00
Michał Cieślak 5dcd3dde23 chore(Storybook): CMakeLists - common lib for app and tests defined 2022-11-29 11:30:13 +01:00
Michał Cieślak 8e39d761dc feat(Storybook): Figma links loaded from json file
Closes: #8187
2022-11-29 11:30:13 +01:00
Michał Cieślak a998f654a2 fix(Storybook): linking WebEngine causes errors on Linux
Linking to WE is not needed. Setting Qt::AA_ShareOpenGLContexts
attribute is sufficient to make QWebEngine working properly.

Closes: #8454
2022-11-28 15:04:31 +01:00
alexjba 1b2fd40b20 Adding qmake project file for wasm
This changeset contains the prerequisites required to compile StoryBook on wasm_32 and the README file with instructions
2022-11-23 16:20:37 +02:00
Michał Cieślak 284302b486 feat(Storybook): Pages model excluded to a separate file, figma links added 2022-11-22 15:34:18 +01:00
Michał Cieślak c1d5fdd04a feat(Storybook): sections decorator model impl and basic tests
Proxy model extending source model by adding foldable sections
based on "section" role from the source model.
2022-11-21 12:51:22 +01:00
Lukáš Tinkl c0e9c28ff5 chore: add correct QML import paths for QtCreator 2022-11-14 14:14:32 +01:00
Jonathan Rainville cea4945cba feat(storybook): add browser settings in the storybook 2022-10-25 14:27:50 -04:00
Michał Cieślak 8981b8615a feat(Storybook): Hot reloading for pages
Closes: #7975
2022-10-20 20:34:35 +02:00
Michał Cieślak de4ef7daf0 fix(Storybook): mock for DotherSide types added
Additionally `ui/imports/shared/views/chat/qmldir` fixed.

Closes: #7932
2022-10-17 10:50:12 -04:00
Patryk Osmaczko 8a45e34870 fix(storybook): fix build on mac 2022-10-14 13:57:18 +02:00
Patryk Osmaczko 148d0518f8 fix(storybook): fix build on linux
CMake's GLOB is capturing source files from `build/*` resulting in
multiple `main` definitions.

Generally, usage of GLOB is discouraged.
2022-10-14 13:57:18 +02:00
Michał Cieślak cb7e67ce8c chore(Storybook): LogsView added
Closes: #7818
2022-10-11 16:39:39 +02:00
Michał Cieślak 38299f7169 feat(Storybook): Initial project config and main qml/cpp
Closes: #7547
2022-10-10 15:09:12 +02:00