This commit includes the following changes:
1. Request from backend the messages count in a specific interval as opposed to all messages timestamps in that interval.
2. Update the chart end date before refreshing the data
3. Fix metrics type parsing in community service
4. Fix a bug where the new incoming data was not processed by ChartJs without a hover event on the chart. The fix here is to manually request paint() on model changes.d
Issues found and not handled here:
1. On large communities the backend request can take 3 minutes to complete
2. CPU usage can easily go to 100% when switching chart tabs on large communities. All the requests are processed by the backend.
* feat(Community): Community messaging statistics chart
Close 11152
- Use se `collectCommunityMessageMetrics` for messaging statistics chart
in community overview
* feat(Community): Transfer community metrics with dto objects
* feat: impl simple string-based model for community metrics
* fix(Community): Review fixes and fix for changing community when chat is open
* Update src/app/modules/main/chat_section/controller.nim
Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>
---------
Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>
Bump Status GO to support session based activity requests
Transaction module was replaced by activity module,
this change removes the old code.
Details:
- Remove transaction.Item and use the DTO directly
- Replace the still using missing functionality
- Remove old way of fetching transactions in response to the history event
- Use activity filter to provide history for "recents" in Send.
Closes#11339
Also: refactor(communities), moved request to join funcs to communities module
This is needed because we can now request to join from the Import popup
Closes#11242
1. Fix an issue where importing a community using private key triggers the import finished event without updating the community data if the community is already imported with public key
2. Show toast messages on importCommunity and privateKeyRemoved events
3. Group community import toast messages handlers and move them from ContactsColumnView to AppMain. IMO these toast messages handlers should not be dependent on ContactsColumnView.
- display an info box when in wallet testnet mode with a CTA to disable
it (functionality enabled for production builds only)
- the CTA can be tested/seen via OverviewSettingsPanelPage storybook page
Closes#11468
Adding the export control node popup. The popup is behind an authentication wall.
1. Create ExportControlNodePopup qml
2. Add the popup in storybook
3. Create authentication flow with qml callback to open the popup after authentication
4. Add the popup open action in Global.qml
- Renamed main `CommunitiesPortal` folder to `Communities`.
- Created new `layouts` folder.
- Moved layout files from chat to communities.
- Created new `helpers` folder.
- Moved helpers files from chat to communities.
- Moved `controls/community` files from chat to communities `controls`.
- Moved `panels/communities` files from chat to communities `panels`.
- Moved `popups/community` files from chat to communities `popups`.
- Moved `views/community` files from chat to communities `views`.
- Moved `CommunityBanner` file from shared to `Communities/controls`. Only used in communities context.
- Moved `CommunitySettingsView` and `CommunityColumnView` files from chat to communities `views`.
- Moved `PermissionsStore.qml` file to `shared/stores`.
- Updated imports.
- Updated storybook.
Part of #6204
Fixes checking for duplicate token name in a case insensitive manner
Redo the `ModelUtils.contains(model, roleName, value, mode =
Qt.CaseSensitive)` in C++; more speed and add ability to search case in/
sensitive
Some more smaller fixes/speedups
Fixes#11204
Fixes#11125
Updates the communities asset and collectibles lists when a new token is deployed.
Also refactors the section module to remove all that code and use the communities token list instead.
Adds community ID to the token list model so that we can show only the global tokens and the tokens from the community are shown in the community
This hides the action items to kick or ban users if they happen to be
admins. There's also a change in status-go that prevents admins to kick
or ban other admins that has to land first here:
https://github.com/status-im/status-go/pull/3666Closes#10936
- Footer options must be disabled until minting process is completed.
- Airdrop footer option must be disabled if not available tokens to airdrop.
- Remotely destruct footer option must be disabled if no hodlers.
Fixes#11198
- After a rebase, signal properties were modified incorrectly.
- Also added protection to not push into the stack the same state more than ones and reset holdings model each time it is set.
Fixes#11147
- introduce StatusButton storybook page with controls to play around
with the its options and variants
- StatusBaseButton: make the content item horizontally centered by
default
- StatusBaseButton: remove `textAlignment` and fix `textFillWidth` for
the intended usage
- fixup usage of the 2 above options which were introduced merely as a
workaround, mostly in wallet + corresponding storybook pages
Fixes#10903
Fixes#10410
Adds the permission model to the curated communities model.
Also fixes the assetsModel and collectiblesModel used by the community portal, because it was using the basic Chat Store created in AppMain, but that store doesn't have the assets model.
- Added assets model.
- Added no data text for assets tab.
- Added navigation from airdrop to mint specific tab.
- Updated `HoldingsDropdown` component to allow network information for assets.
- Removed `isCollectiblesOnly` option in `HoldingsDropdown`. No longer needed.
- Updated `storybook` to support airdrop assets testing.
Closes#11056
- differentiate between "Close" and "Leave" a community where the former
applies to spectated communities
- move the "leave community" confirmation popup to a shared place
(Popups.qml), extend it with the outro message and reuse it everywhere
- don't let admins leave a community
- some minor cleanups and dead code removals
Fixes#10963
- Updated name and description regex rules.
- Extended name and symbol validation when retry minting to allow same text if we are in edition mode.
Fixes#10860
- Created `TokenObject` files and use them inside `CommunityNewTokenView` instead of plain properties.
- Updated `CommunityTokenView` to use `TokenObject` properties instead of plain properties.
- Updated store calls to use `TokenObject` properties instead of plain properties.
- Remote destruct properties renames.
- Airdrop navigation extended passing token type (asset or collectible).
- Updated `storybook` according to new changes.
New list contains also dropdown menu with some actions, basic
integration is done for holder types and actions supported currently
by the backend.
Closes: #10621
Set the `KeyNavigation.backtab` to itself to avoid accidentally pressing
`Shift+Tab` and tab away from the focused `StatusInput` (which makes it
look like it's disabled)
Fixes#10561
- causing too many regressions along the way
- most of our popups are already destroyed properly inside Popups.qml
- in general, a Popup (Dialog, Menu, etc.) can be manually destroyed iff
it had been created using `Component.createObject()`, otherwise it's gone
for good until restart
- manually enabled the destroy-on-close in verified cases
Fixes#10948 (maybe some other dupes)
We no longer want to show pending membership requests in the left column
of the layout. Instead, community owners need to go to the community
settings -> members -> Pending requests
This however does not remove the legacy membership popup yet because
it's still used when users click the OS notification of incoming
community requests to join.
We don't yet have a mechanism to make the app navigate specifically to
that section of the community settings.
- It refactors `SettingsPageLayout`.
- It adds `retry mint` and `delete` options when deploy process fails.
- It renames `RemotelyDestructAlertPopup` to generic name `AlertPopup`.
- Added assets list UI.
- Added shape rectangle for empty lists.
- Added filter by asset / by collectible
- Updated storybook accordingly.
- Added flow to open token view depending on type
Closes#10625
Fixes#10501
The problem was that didn't have access to the updated contact from status-go after banning or unbanning, so we just changed the banned property, but there is more that gets changed in the backend, like `removed` being set to `true` as well.
With this fix, when you unban someone, you go back to a fresh start, as **non** contact, so you need to send a request again. That was the state you got if you restarted the app, so "re-sync" the state with status-go.
Another issue was on the frontend (QML). When banned, and after restarting to get the right state, the unban button would be disabled and the Add contact request button would show, which is not good. We only want to send requests when unbanned.
Fixes#9736
When pasting the chat key of a user to whom you already sent a request to, but for which they haven't answered yet, we open the popup instead of doing nothing.
If you paste the chat key of a user you are not a contact at all and sent no request, it opens the contact request popup as before.
Also, same as before, if you paste the key of a mutual contact, their name will show in the suggestion list.
- It updates `CommunityCollectibleView` to display minting failure state.
- It updates `CommunityMintedTokensView` to display minting failure state.
- It exposes subtitle color property in `CollectibleView`.
- It updates `storybook` with more options to display minting failure state.
Closes#10620
- Added property `remotelyDestructState` and `burnState` in `CommunityCollectibleView`.
- Added `fire` and `loading` icons while destruct/burn is in progress.
- Added short animation when destruct/burn process is completed.
- Renamed `Constants.DeployState` to `Constants.BackendProcessState`, more generic one that can be used for different processes.
- Updated `storybook` with new options to test animation.
Closes#10603
- Title format changed. Now symbol is a title side text.
- Back button text changed.
- Description / boxes order changed.
- Boxes changed order and format.
- Warning description changed.
Closes#10601
Added available tokens and total supply as subtitle information in minted collectibles view.
Updated storybook model with new property `availableTokens`.
Closes#10606
Replaced basic image selector to `EditCroppedImagePanel` component in mint token workflow.
Extended `NoImageUploadedPanel` to allow custom texts and some sizing improvements.
UI part of #10317
- Updated expected model roles (removed `selfDestruct` and `selfDestructAmount`)
- Self destruct tokens list management is now done inside `SelfDestructPopup).
- Store receives a js array with {walletAddress, amount} roles.
- replace qml owners model with Nim one
- get token owners from wallet service
- keeping owners cache in community_tokens/service and refresh every 10 minutes
Issue #10254
Fixes#10523
The problem was that the CreateChatView now uses an isolated Chat RootStore, since we can't be sure if the personal chat section will be loaded yet.
To fix that, I created a new store that is only for storing the properties needed for that new chat. That way we are sure that it is created and shared to necessary components.