Commit Graph

78 Commits

Author SHA1 Message Date
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
Lukáš Tinkl 1c255175ab feat(ProfileContextMenu): Add "Mark as Trusted" and "Remove trusted mark"
- enhance and fix the SB page to be able to show all the permutations,
including profile image, emoji hash and ring

Fixes #16586
2024-11-19 15:51:55 +01:00
Michał Cieślak 74113cbbe1 ProfileContextMenu.removeNickname signal aligned 2024-11-13 09:49:07 +01:00
Michał Cieślak b09713a53d ProfileContextMenu: unnecessary calls to store removed when opening menu 2024-11-13 09:49:07 +01:00
Michał Cieślak 544f749f44 ProfileHeader and related components refactored to use compressed key directly 2024-11-13 09:49:07 +01:00
Michał Cieślak f3021ec757 Global signal related to contact popups simplified
Global.openContactRequestPopup
Global.openReviewContactRequestPopup
Global.openNicknamePopupRequested
Global.blockContactRequested/unblockContactRequested
Global.openMarkAsUntrustedPopup
Global.removeContactRequested
Global.openMarkAsIDVerifiedPopup/openRemoveIDVerificationDialog
2024-11-13 09:49:07 +01:00
Michał Cieślak b8f9566116 UserImage refactored to remove dependency on backend via Utils 2024-11-13 09:49:07 +01:00
Michał Cieślak c009321ba2 chore: unused, outdated code removed from ContactsView
Closes: #16650
2024-10-31 11:11:30 +01:00
Michał Cieślak ba80ba97f7 compressedPubKey exposed via backend models, usages of Utils.getCompressedPk removed, SB pages simplified 2024-10-31 11:11:30 +01:00
Michał Cieślak 28f6bee90e Utils.getCompressedPk removed from multiple components 2024-10-31 11:11:30 +01:00
Michał Cieślak 9b5b5a4a60 ContactPanel delegate made backend-independent 2024-10-31 11:11:30 +01:00
Jonathan Rainville d511c25d2e
remove old code about ID verification and fix trustStatus bug (#16548)
* chore: remove old code about ID verification

* refactor(trust): remove untrustowrthy and isVerified from items and use trustStatus

* chore(status-go): up status-go to get fix for trustStatus reseting

Fixes #16392

* chore: remove verified/trusted profile showcase category
2024-10-29 14:08:12 -04:00
Michał Cieślak 4c7205fc5d getEmojiHashAsJson moved from Utils to UtilsStore 2024-10-28 23:16:31 +01:00
Lukáš Tinkl d9d6d90dc9 [Style] remove legacy Style and its themes
- legacy Style and ThemePalette removed
- moved and deduplicated font definitions into `Theme` (unrelated to a
color palette)
- `Style.current.foo` -> `Theme.foo`
- `Style.current.fooColor` -> `Theme.palette.fooColor`
- upgrade the imports to 5.15
- removed some mode dead components

Fixes #16514
2024-10-22 15:54:31 +02:00
Michał Cieślak 8fb9440235 ContactsStore: getProfileContext simplified 2024-10-16 23:02:02 +02:00
Lukáš Tinkl 277f408e0c fix(ProfileContextMenu): stop leaking memory
- got removed in a recent refactoring, restore it
- when a context menu component is opened via `Global.openMenu()`, it
has to be destroyed manually
2024-10-03 14:34:12 +02:00
Iuri Matias 96d0760488 refactor ProfileContextMenu to make it a functional component
refactor ProfileContextMenu to make it a functional component

refactor ProfileContextMenu to make it a functional component

refactor ProfileContextMenu to make it a functional component

This refactor ProfileContextMenu to make it a functional component by:

refactored out direct calls to backend, and passing backend data structures and moved this logic to the callers, also refactored common calls between the callers
common types of context menus have been extracted to their sub components which removes a lot of logic too and makes the behaviour very clear
user verification workflow (which was already disabled) has been removed

refactor: use signals and call singletons on the parent instead

remove unused code for now from profile context menu

refactor profile context menu into two components; add property to storybook

extract blocked profile context menu and self profile context menu

use profileType instead of individual bools

refactor to pass trustStatus as an argument

make contact type a parameter

remove unnecessary method from RegularProfileContextMenu

add ensVerified property to ProfileContextMenu components

add onlineStatus property to ProfileContextMenu components

move ProfileContextMenu storybook controls to the right sidebar

move contactDetails logic up from the view

add local nickname property to ProfileContextMenu components

fix issue with missing signal; fix logs in storybook

use constant for profileType instead of string

refactor common code into a single method

refactor getProfileContext

remove references to contactDetails which are not longer needed

remove unnecessary comments

fix bridged constant

refactor into a single ProfileContextMenu component

refactor into a single ProfileContextMenu component

refactor into a single ProfileContextMenu component

simplify imports

remove unused store field

move methods from utils to contacts store

remove onClosed signal

remove unused param

rename ProfileContextMenu variables

simplify signals in ProfileContextMenu

remove ;

refactor: do early return

simplify ifs

move ProfileContextMenu to its own storybook page

fix wrong params

fix profile context menu separator

add missing signals to profile context menu on the members tab panel
2024-09-24 10:04:10 -04:00
Valentina1133 2b415bdc53
test: block and unblock user test added (#15577) 2024-07-18 17:57:24 +07:00
Lukáš Tinkl fda1d37c5b feat(Profile flow): ID verification flows (incoming/outgoing)
- Send/request ID verification
- Reply to incoming ID request
- Review ID verification reply
- adjust SB and add shortcuts to trigger the various states of the ID
verification flows

Fixes #13709
Fixes #13745
Fixes #13747
2024-03-04 09:56:30 +01:00
Lukáš Tinkl cdc5a90940 fix(SendContactRequestModal): Display name / image problems with CR dialog
- fix missing profile image
- fix displaying wrong name when a nickname or ENS name is present
- fix ID verification flow ignoring nickname
- fix empty results when a contact has only an alias name
- fix needlessly requesting contact details several times (and
overwriting it); we get this info already from Popups.qml
- switch the popup to `StatusDialog` and fix hardcoded height

Fixes #11726
2023-08-02 09:52:32 +02:00
Patryk Osmaczko 35a2dd5244 [Popups]: added destroy() function in all popups by default
Also switched StatusModal to derive from StatusDialog instead
of Popup type

Closes #10149
2023-06-02 14:28:39 +03:00
Igor Sirotin 5ff4b5a435
fix(MessageContextMenu): Cleanup. Separate menu for profile. (#10729) 2023-05-19 19:07:50 +03:00
MishkaRogachev 2160b53e33 fix(ActivityCenter): Use ContactRequestId for accpeting and declining CRs from AC
Close #10127
2023-04-25 16:16:32 +04:00
Jonathan Rainville 67e0df17e1 test(contact): add a test that sends a contact request from the chat
Fixes #6883
2023-01-05 15:21:38 -05:00
mprakhov 0c66b9fc2d fix(@desktop/settings): Tab content jump fix 2022-12-03 20:08:57 +02:00
Jonathan Rainville 4c1370f7ef test(Settings): adds a test that sends a contact request with chat key 2022-11-29 15:51:29 -05:00
Lukáš Tinkl 27c883ae98 fix(ContactsView): button is in the wrong position
Fixes #8080
2022-10-28 10:56:44 +02:00
Jonathan Rainville afaf7717e8 fix: fix signals not passing the callback
Fixes #8038

We added a callback arg to the signals, but signals do not support default args. You need to pass the exact number of args.
2022-10-26 10:29:33 +02:00
Lukáš Tinkl 7a407662e2 feat: New Profile Modal
Fixes: #7360
2022-10-17 12:05:54 +02:00
Alexandra Betouni fc3daa1451 (StatusSectionLayout): removed big space between header and content
Closes 7312
2022-09-28 15:37:52 +03:00
Alexandra Betouni fb7989db55 fix(Profile/ContactsView): updated contacts layout
All contacts should be shown in one long list, should
the list is longer than the page, the page should
scroll down

Closes #6262
2022-09-20 11:13:51 +03:00
PavelS eaed074957 fix(@desktop/settings): adjust contacts settings
Fixed #7296
2022-09-13 09:52:34 +03:00
Jonathan Rainville 03780d4875 feat(MessageContextMenu): add option to verify identity in context menu
Fixes #6252
2022-07-29 09:43:35 -04:00
Lukáš Tinkl 24775f2f51 fix(ContactsListPanel/ContactsView): items have their right side options hidden
Fixes: #6669
2022-07-28 10:45:06 +02:00
Alexandra Betouni be64f60a86 fix(StatusInput): Updated status input custom height leftovers
Closes #6637
2022-07-26 14:45:41 -04:00
Alexandra Betouni 84522bd7fe fix(CommunitiesPortal): fixed status input as per design
Closes #https://github.com/status-im/status-desktop/issues/6358
2022-07-25 15:07:27 +03:00
Michal Iskierko 9ef807277e fix(@desktop/chat): Fix accepting and rejecting requests
Adding try/catch in a service
Fix naming in QML

Fix #6395
2022-07-15 16:08:25 +02:00
Jonathan Rainville 95407cc1e0 fix(contacts): remove isMutualContact, use isContact or isAdded indead
Fixes #6220

Fixes the issue with the mutual contact icon showing when just added.
It also does a huge cleanup of the codebase to remove isContact and replace it with either isAdded, when we care only about if we added, or isMutualContact if we want the contact to be mutual
Also fixes an issue with the MessageContextMenu not reflecting the added state correctly.
2022-07-11 09:34:29 -04:00
Patryk Osmaczko e0a5afebee chore(translations): transform `qsTrId` to `qsTr`
issue: #4544
2022-07-06 19:09:50 +02:00
Jonathan Rainville 1e7c648300 feat: contact verification request and trust status
feat: contact verification

fix: add remove identity verified btn

fix: add toast message

feat: received verification request model


feat: finish identity verification flow

Fixes #4784
2022-07-06 10:43:33 -04:00
Alexandra Betouni 1cda32470b fix(Profile): ContactsView layout and scrolling issues
Closes #5876
2022-06-24 15:24:35 +03:00
MishkaRogachev 2251f870a0 feat(@desktop/chat): New profile context menu states
Close #6113
2022-06-22 15:50:59 -04:00
Igor Sirotin 1870e9a0ce fix: Moved `StatusTabButton` to StatusQ 2022-06-15 12:23:19 -04:00
mishkarogachev 7a14cf5640 fix(@desktop/profile): Contact requests should support a message
Close #5846
2022-06-15 11:56:05 -04:00
Boris Melnik aa1dae9e20 fix(@desktop/warnings): Fix bunc of qml/nim warnings
Closes: #5162
2022-05-25 14:27:25 -04:00
Noelia efb18f4851 fix(Settings/Messaging/Contacts): Contacts label shows up twice
Removed "Contacts" title in ContactsView.qml.

Fixes #5731.
2022-05-17 19:38:09 +02:00
Alexandra Betouni 0d24a2520d fix(Settings): Centered send contact request popup
Closes #5732
2022-05-16 17:05:50 -04:00
Boris Melnik 06f7f1668d fix(ContactsView): Fix layout height
Closes: #5686
2022-05-12 12:23:53 -04:00
Noelia 0f912a66b8 fix(Messaging/Contacts): The titles of folders in Settings-Messaging are shown very close to the search field
Added more top margin in tab component.

Fixes #5288
2022-05-11 20:10:30 +02:00
Sale Djenic 2904018173 fix(@desktop/settings): content on the right side for all subsections need to have the same geometry
Structure of the all subsection of the settings section has the same
high level structure

Fixes #5650
2022-05-10 20:47:29 +02:00