status-im / status-desktop

Status Desktop client made in Nim & QML
https://status.app
Mozilla Public License 2.0
297 stars 79 forks source link

[UI - Wallet Stability] Separate UI and data transformation logic in `ManageTokensView` #14944

Open micieslak opened 5 months ago

micieslak commented 5 months ago

Description

There are 3 UI components for tokens management:

ManageHiddenPanel This component should take just one or two models with data intended to be displayed here. Currently data preparation is done internally by processing items from two controllers (assets and collectibles) - filtering and various models concatenation.

Additionally there is potential performance problem because delegates are "filtered" by just setting visible to false. To fix it probably DoubleFlickableWithFolding component could be used.

ManageAssetsPanel This component could take plain models that are intended to be displayed here. Additional actions like reordering can be externalized via signals (e.g. moveItemRequested(from, to).

ManageCollectiblesPanel Similarly as ManageAssetsPanel

Assuming that https://github.com/status-im/status-desktop/issues/14936 and https://github.com/status-im/status-desktop/issues/14937 are done, usage of ManageTokensController can be limited to handling dirty state withing ManageTokensView and used locally here. The rest of the application can rely directly on visibility/positioning info exposed directly from the models.

noeliaSD commented 4 months ago

Next step for improving wallet but not enough capacity during this milestone