Fixes#16288
Introduces a new instance of the users module, but managed by the section module.
This user module is managing the "public" community members list. Meaning that everytime we have a public channel in a community, we use that module instead.
The channel's user module is empty for public channels to reduce the amount of processing and memory used.
If the channel becomes private, we update the member list and populate it.
* fix: force focus on search inputs in permissions and sort members
* fix(admin): fix freezes when community gets updated
* fix(airdrop): use FastExpressionFilter to speed up
Iterates #16043
When the community gets updated by any means, we reconstruct the section item, which is already bad, but we also re-fetch all tokens and all shared addresses, which in turn re-updates models for no reason.
Instead, I make sure to only fetch those on first section build, then, I get the new shared addresses when members join using the request to join response that comes from status-go
Based on changes done in this PR https://github.com/status-im/status-go/pull/5807
we can simplify our client logic a lot.
This results in the removal of many lines of code that are no longer needed
Closes 2nd part of #16336
Fixes#15750
When the pairing fails, the UI now let's the user use the seed phrase instead.
When they do, a call is send to the original device and both instances will show an AC notif.
When the original device accepts the pairing, the call is made to pair and sync the devices and the AC notifs get deleted
- excludes logic of resolving preferred display name to shared
contacts_utils
- expose PreferredDisplayName role from user_model
- improves PreferredDisplayName handling in member_model
Closes: #16429
Based on changes done in this PR https://github.com/status-im/status-go/pull/5807
we can simplify our client logic a lot.
This results in the removal of many lines of code that are no longer needed
Closes 1st part of #16336
Iterates #16043
* fix(admin): improve admin panel loading by putting sections in loaders
* fix(admin): speed up members tab by using nim model and real search
* fix(admin): speed up airdrop panel
* fix(admin): mint panel and airdrop panel interactions and previous btn
* fix(admin): speed up overview page
* fix(admin): speed up permissions page
* refactor(community_tokens): only fetch holders when going to the page
Fixes#16307
Instead of fetching community token holders each time members change, we fetch when the page for the token is opened.
It shows a small loading text then the resulting holders.
If the list is already available (fetched previously, we show it directly).
There is still the timer to refresh the list if you stay on the page.
* add loading property to storybook
Fixes#16270
Makes the category collapsing and opening async, so UI feedback is immediate, while the actual save in the DB is done async in the background.
This fixes the issues where the accounts model gets reset on every minor model change triggering full UI refresh.
This is not fixing the root cause, but the symptoms in the upper-most level I could find in order to keep the regression risk to a low level.
Additionally there is hook on ClipboardUtils added
to detect if copied string is a wallet address and call addressWasShown.
Earlier that call was done internally on nim side.
Closes: #16196
Fixes#16181
This commit improves the time taken by onChatsLoaded that is called on login.
The culprit is `buildChatSectionUI` in the chat_section module.
There is no silver bullet here. It's slow because the community is big and has a lot of channels to load and generate.
This commit helps by removing some old code that was inefficient (calculating if a channel has a permission instead of just using the `tokenGated` property for example).
It also adds all the section items in one go instead of one another.
There are some other small improvements, but again, no way to make it way faster. Thankfully, that time is spent with the loading spinner at the same time.
Fixes#16023
Caches the values of the number of notifications and hasUnseen in the view so that we access status-go only when there is an update or on app start.
Also, uses the response value from user actions in the AC to retrieve the hasUnseen value directly instead of re-fetching.
Finally, fixes an issue where marking notifs as read/unread wouldn't update the count
Fixes#16165
All the logs about `settings_notificationsGetExPersonalMentions` are only to populate the model in the Notifications settings view, so it was pointless to load them on app start.
Now we lazy load them on loading that page.
An additional improvement that could be done later is to make it async and/or create a new API that gets all the DB info in one shot, because calling 4 APIs for each chat and community is a bit useless.
Fixes#16147
Since ID verification is disabled for now, we can remove the calls to getLatestVerificationRequestFrom.
If we want to have ID verification back, we can re-add those calls, but in my opinion, it should be done better from status-go directly, or only asking for the ID verif when looking at the contact's profile
* feat(metrics): add onboarding screen metrics and section navigation
Fixes#16100
Adds metrics for navigating to the different screens of the onboarding and when navigating to a new section while logged in; only when enabled of course.
I refactored the code a little to make it simpler. I moved the check to see if the metrics collection is enabled in the async task itself, so we don't have to check it each time we add a new metric
* fix metric sent from module
* review comments
* add flowtype