status-desktop/ui/app/AppLayouts/Profile/popups
Jonathan Rainville 50132c5a0e
Refactor contacts models to have a single model, remove useless properties and improve updating (#16667)
* refactor(contacts): refactor 5 contact models into one and filter in QML

Fixes #16549

Refactors the 5 types of contact models (all, mutuals, banned, received and sent) into only the `allContacts` and use an Adaptor on the QML side to filter into the needed models.
This cleans the Nim side a lot and makes applying updates to the contacts' model way simpler.

* chore(contacts): remove useless and duplicated contact properties

OptionalName and isSyncing were never used.
DefaultDisplayName was not really used and is actually a duplication of preferredDisplayName, so I replaced the limited usages of DefaultDisplayName by preferredDisplayName

* refactor(contacts): improve updates by not removing and re-adding

We used to update contact items by removing them from the models and re-adding them. This is highly inefficient.
Instead, the proper way is to update only the values that changed.

* user_model: onItemChanged signal removed

* user_model: sorting by online status no longer needed on nim side

* Chat/RootStore: contactsModel property removed

* ContactsStore encapsulation improved

* ContactsStore: contacts model adaptor moved outside store

---------

Co-authored-by: Michał Cieślak <michalcieslak@status.im>
2024-11-28 09:15:34 -05:00
..
backupseed [Style] remove legacy Style and its themes 2024-10-22 15:54:31 +02:00
AddSocialLinkModal.qml [Style] remove legacy Style and its themes 2024-10-22 15:54:31 +02:00
AddWakuNodeModal.qml fix(Stored): Make stores typed 2024-08-27 10:52:18 +02:00
AddWakuStoreModal.qml chore: remove wakuV1 and status.prod/test fleets 2024-01-19 22:10:46 +03:00
BackupSeedModal.qml fix(Stored): Make stores typed 2024-08-27 10:52:18 +02:00
ConfirmAppRestartModal.qml fix: 150% and 200% zoom levels prevent the user from logging in 2024-02-27 10:39:05 +01:00
ConfirmChangePasswordModal.qml [Style] remove legacy Style and its themes 2024-10-22 15:54:31 +02:00
ENSPopup.qml [Style] remove legacy Style and its themes 2024-10-22 15:54:31 +02:00
ExemptionNotificationsModal.qml fix(Stored): Make stores typed 2024-08-27 10:52:18 +02:00
FleetsModal.qml fix(Stored): Make stores typed 2024-08-27 10:52:18 +02:00
ModifySocialLinkModal.qml [Style] remove legacy Style and its themes 2024-10-22 15:54:31 +02:00
ProfileShowcaseInfoPopup.qml [Style] remove legacy Style and its themes 2024-10-22 15:54:31 +02:00
RemoveKeypairPopup.qml [Style] remove legacy Style and its themes 2024-10-22 15:54:31 +02:00
RenameAccontModal.qml [Style] remove legacy Style and its themes 2024-10-22 15:54:31 +02:00
RenameKeypairPopup.qml [Style] remove legacy Style and its themes 2024-10-22 15:54:31 +02:00
SendContactRequestModal.qml Refactor contacts models to have a single model, remove useless properties and improve updating (#16667) 2024-11-28 09:15:34 -05:00
SetupSyncingPopup.qml UserImage refactored to remove dependency on backend via Utils 2024-11-13 09:49:07 +01:00
SyncDeviceCustomizationPopup.qml fix(Stored): Make stores typed 2024-08-27 10:52:18 +02:00
TokenListPopup.qml [Style] remove legacy Style and its themes 2024-10-22 15:54:31 +02:00
WakuNodesModal.qml fix(Stored): Make stores typed 2024-08-27 10:52:18 +02:00
WakuStoreModal.qml fix(Stored): Make stores typed 2024-08-27 10:52:18 +02:00
WalletAddressMenu.qml chore: usage of goerli removed 2024-10-29 15:46:09 +01:00
WalletKeypairAccountMenu.qml fix(wallet): Renamed KeyPair to key pair throughout the entire app (#15051) 2024-06-07 16:29:09 +03:00
qmldir feat(ProfileShowcase): Created first info popup 2024-02-26 10:08:52 +01:00