status-desktop/ui/app/AppLayouts/Communities/panels
Jonathan Rainville 5c75c265af fix(permissions): fix hang when all channel perm check return (#14259)
* fix(permissions): fix hang when all channel perm check return

Fixes #14234

The problem was that we updated **all** the models from **all** the channels of a community each time the channel requirement checks returned.

The fix is to first of all, make sure we don't call that check too often. It sometimes got called twice in a row by accident.

The other better fix is to check if anything actually changed before updating. This solves the issue almost entirely.  Since the permissions almost never change, the updates now take only a second.

* fix(permisisons): never run permission checks for privileged users

Also fixes #14234 but for admins, TMs and Owners.

Admins+ were still getting the hang, because the permission checks always returned something different than the models, because the models knew that admins have access to everything, but the permission check was running as if it were a normal user (I think, un-tested).

Anyway, the solution is more simple, we never need  to run the permission checks on admins+, because they always have access to everything!

* fix(Communities): prevent channels model from emitting unnecessary signals

Closes: #14274

* chore(Communities): improve channels metadata lookup performance

ChannelsSelectionModel is removed, replaced with plain LeftJoinModel.
Transformations of left-side model are done in a single place, not in
every delegate making the join.

* only call update functions when there is something to update + move permission model creation when needed

---------

Co-authored-by: Michał Cieślak <michalcieslak@status.im>
2024-04-04 12:14:39 -04:00
..
AirdropsSettingsPanel.qml fix(Update fees periodically): Implementing periodic fee update for airdrops, minting, self destruct and burning transactions 2023-09-08 23:25:04 +03:00
BackUpCommuntyBannerPanel.qml
BannerPanel.qml feat(Communities): File renames 2023-06-28 14:28:47 +02:00
ChannelsAndCategoriesBannerPanel.qml feat(Communities): File renames 2023-06-28 14:28:47 +02:00
ChatPermissionQualificationPanel.qml
ColorPanel.qml fix(Communities): fixed channel color picker dialog 2023-09-15 10:27:56 +02:00
ColumnHeaderPanel.qml feat(Communities): File renames 2023-06-28 14:28:47 +02:00
CommunityBannedMemberCenterPanel.qml feat(desktop@communities): change kicked/banned member behavior (#13706) 2024-02-27 12:55:56 +01:00
ControlNodeOfflineCenterPanel.qml feat: info msg if owner is not awailable after community ownership change (#12560) 2023-10-31 18:55:41 +01:00
EditSettingsPanel.qml feat(communities): integrate community sharding 2023-11-03 17:11:18 +01:00
FeesBox.qml feat(Community/FinaliseOwnership): Created needed finalise popups 2023-10-03 13:53:42 +02:00
FeesPanel.qml fix(Minttoken): Account selector is no longer present under fees section 2023-08-04 16:48:20 +02:00
HoldingsListPanel.qml feat: New design flows to integrate Revealing addresses... 2023-07-19 12:44:16 +02:00
IntroPanel.qml feat(ProfileShowcase): Created first info popup 2024-02-26 10:08:52 +01:00
JoinCommunityCenterPanel.qml fix(@desktop/communities): request to join fixes (#14287) 2024-04-04 18:03:10 +02:00
JoinCommunityHeaderPanel.qml
JoinPermissionsOverlayPanel.qml fix(@desktop/communities): request to join fixes (#14287) 2024-04-04 18:03:10 +02:00
MembersSettingsPanel.qml feat(desktop/communities): View community member messages functionality (#14002) 2024-03-20 11:50:10 +01:00
MembersTabPanel.qml feat(desktop/communities): View community member messages functionality (#14002) 2024-03-20 11:50:10 +01:00
MintTokensFooterPanel.qml feat(TransferOwnershipPopup): Updated transfer ownership popup according to new design 2023-09-20 11:08:29 +02:00
MintTokensSettingsPanel.qml chore(@desktop/wallet): Simplify the wallet networks service 2024-03-28 11:47:33 +01:00
OverviewSettingsChart.qml feat(Community Overview): Trigger chart data updates on specific actions + optimise the backend calls 2023-08-07 11:12:21 +03:00
OverviewSettingsFooter.qml feat(Community/FinaliseOwnership): Added finalise flow in the app 2023-10-03 13:53:42 +02:00
OverviewSettingsPanel.qml fix(@desktop/communities): Add toasts to send owner token process 2023-12-12 16:06:04 +01:00
PermissionConflictWarningPanel.qml
PermissionQualificationPanel.qml
PermissionsSettingsPanel.qml fix(permissions): fix hang when all channel perm check return (#14259) 2024-04-04 12:14:39 -04:00
PrivilegedTokenArtworkPanel.qml feat(OwnerToken): Add `Retry` button 2023-08-02 11:56:48 +02:00
ProfilePopupInviteFriendsPanel.qml fix(URLUnfurling): Updated image context menu 2023-09-12 00:04:08 +03:00
ProfilePopupInviteMessagePanel.qml feat(Communities): File renames 2023-06-28 14:28:47 +02:00
ProfilePopupOverviewPanel.qml feat(CommunityOwnership): Removed old flow 2023-09-20 11:08:29 +02:00
RequirementsCheckPendingLoader.qml feat(shared-addresses): add loading state for checking permissions 2023-08-30 10:48:12 -04:00
SharedAddressesAccountSelector.qml feat(SharedAddressesAccountSelector): update account sorting 2024-04-02 16:03:09 +02:00
SharedAddressesPanel.qml feat(SharedAddressesAccountSelector): update account sorting 2024-04-02 16:03:09 +02:00
SharedAddressesPermissionsPanel.qml chore(SharedAddressesPermissionsPanel): optimize the speed 2024-04-04 16:59:26 +02:00
SharedAddressesSigningPanel.qml fix(communities): deltas between designs and build for join token gated community flow 2024-03-25 14:16:32 +01:00
SortableTokenHoldersList.qml fix(@desktop/communities): Fix displaying token holders 2024-01-17 13:23:59 +01:00
SortableTokenHoldersPanel.qml fix(@desktop/communities): Fix displaying token holders 2024-01-17 13:23:59 +01:00
TagsPanel.qml feat: Update Edit community settings based on new design 2023-07-06 09:47:46 +03:00
TokenHoldersList.qml feat(Communities): Improvements for token holders list (#11923) 2023-08-22 18:34:37 +03:00
TokenHoldersPanel.qml fix(Communities): Remotely destruct popup for regular collectibles integrated 2023-08-17 17:26:30 +02:00
TokenHoldersProxyModel.qml feat(Communities): Improvements for token holders list (#11923) 2023-08-22 18:34:37 +03:00
TokenInfoPanel.qml chore(Communities): Refactor amounts handling for displaying, minting, airdropping and burning 2023-08-17 11:26:25 +02:00
WarningPanel.qml
WelcomeBannerPanel.qml feat(Communities): File renames 2023-06-28 14:28:47 +02:00
qmldir feat(SharedAddressesAccountSelector): Support for collectibles in account's delegate tags 2024-04-02 12:18:36 +02:00