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: make MessageContextMenu a functional component
refactor: make MessageContextMenu a functional component
remove root store
simplify signals in message context menu
abstract copyToClipboard as a signal
simplify code
fix menu not closing on emoji reaction
feature: add remove from group option to group chats
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
feature: add remove from group option to group chats
feature: add remove from group option to group chats
add isAdmin property
move removeMemberFromGroupChat to root store
hide remove from group option from message context menu
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
- restore backwards compatibility; a lot of the actions in the component
relies on the old StatusListItem's `title` property to work correctly
- fixes the missing image and name in the profile context menu, among
others
Fixes#16367
- StatusSuccessAction, despite its name, is a visual item (`MenuItem` ->
`AbstractButton`) which is not part of the `contentModel` but just added
to the menu container
- therefore we don't use a ListView but a ScrollView/Repeater instead
and set the width/maxWidth manually after the menu items have been added
to the layout
Fixes#14037
- clear search on close (AssetSelectorCompact)
- sectionProperty removed
- highlighting fixed in TokenSelectorPanel
- setCustom renamed to setSelection
- test data moved into Component object
- show countdown until which the sign (WalletConnect and Swap) dialogs
expire
- after expiration, hide the Reject/Sign buttons and display a plain
Close button
- make the dialogs non-closable by clicking outside or pressing Esc; the
user has to explicitely click some of the footer buttons
Fixes#16327Fixes#16314
- shows the remaining time until expiration with the circular progress
bar and a tooltip
- configurable timestamp and timeout in seconds (between 5 min and 7
days)
- add the respective storybook 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
- simpler, standard property based API
- much lighter than deriving from the heavy StatusListItem
- should reduce RAM usage significantly, esp. with large communities
Iterates #11059
- fix for a corner case prob when there was a valid seedphrase word
(e.g. cat) that is at the same type a prefix for other valid suggestions
(e.g. category, catalog, ...); it was imposible to select it using Enter
key or mouse click from the suggestions popup at the last field
- add a QML regression test for this issue
- use standard subcomponents (StatusDropdown, StatusListView) reducing
code duplication and unifying UI/UX
Fixes#16291
- add a local popup with selection between "Status Connector" (external
link to Chrome Store) or "Wallet Connect" (the old flow involving
inputting the WC URI)
- simplify DAppsListPopup to use StatusDropdown to reduce code
duplication
- adjust SB and QML tests
Fixes#16111
This component is simpler version of TokenSelector, composed of the same
basic componets, useful when only assets are subject of selection.
Closes: #16234
- add various error/warning messages according to Figma (where it makes
sense)
- letters or more than 2 decimals are caught by the internal validator
so those combinations are impossible to enter
- fix marking the custom value as (in)valid
- fix selecting "Use default" after typing a custom value
- fix resetting to predefined value after typing a custom value that
matches one of the predefined ones
- reject typing thousands separator
- add regression QML tests for the above fixes
Fixes#15017
- the new C++ EmojiModel provides a simple wrapper around the existing
JSON to facilitate a faster access and to be able to search/filter in
QML using SFPM
- no more nested GridViews inside Repeaters
- get rid of emoji manipulation and search/filter using JavaScript
- included the C++ script to generate the emojiList.js
- re-evaluate the validators to be able to hide the warning after 3
seconds (the validators won't let the user select/paste an invalid
image; it's just the warning bubble that persisted)
- some small cleanups
Fixes#16210
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
There are two fixes needed here.
1. Status-go fix for unknown primitive when signing the message
2. Fix for Paraswap pairing failure due to required namespaces mismatch
Needs: https://github.com/status-im/status-go/pull/5755
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.
- mention the "Privacy Policy" document in the text explaining "Help us
improve Status", make a link to it and display it in a separate popup
- add a standalone header button to the settings page, doing the same
- extend storybook page with the "placement" param
Fixes#16157
- this fixes 2 small regressions, namely in how we calculate the
background corner radius and icon size when in the mode of `isRoundIcon`
- the "Saved addresses" button in wallet's left view is very special on
its own; overall we have only 2 instances of this "round" icon buttons
in the whole app
Fixes#16156
- add a secondary "loading" state (`loadingWithText`), that is show the
loading indicator next to the text
- simplify the StatusBaseButton layout (esp. handling the overall
opacity/visibility)
- add a QML test suite; the code was becoming too complex and adding a
simple boolean prop was getting "dangerous"
- port the SwapModal to use the new `loadingWithText` property
Fixes#15313
* 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
- make it possible to configure the locale of the validator
- use the correct default decimal point in AmountValidator
- update/add the relevant tests for AmountToSendNew
WalletConnect cannot operate on shared cookies in between accounts. This commit will split the cookies and cache in different folders with the user public key as folder name.
1. The DAppsListProvider needs to receive all the user accounts so that it can process all dapps the user is connected to (the dapps filtering based on selected account is an internal impl. detail)
2. Call `revokeSession` on disconnect only if the dapp cannot be found in the WC active sessions. There is some overlapping between Browser connector and Wallet connect because both operate on the same data stored in the DB. If Browser connector controller removes WC data, the WC disconnect flows cannot be successfully completed.
3. Reuse the same notification flow for Browser connector as it's used for WC
4. Fix dapp filtering when processing the dapps that will be displayed in the UI.
(cherry picked from commit 21227893c2)
- manage the lifetime of the Custom tab button dynamically; setting the
tab button to `visible: false` doesn't unfortunately remove it from the
tab bar
Fixes#16052
- make the StatusBetaTag highlighted when used inside an active/checked
StatusSwitchTabButton
- simplify the components, get rid of MouseArea just for the sake of
setting the cursorShape
In some rare cases hiding collectibles was causing segfault, related to
checking if all timestamps are available. Combination of 2 SFPMs with
the same source and Aggregator working on those models. Additionally
filters/sorters were depending on the Aggregator value. The minimal
crashing sample has been isolated to be investigated in a separate
ticket. In this commit aggregator's value is applied in a deferred way
via Qt.callLater, fixing the issue.
Closes: #15775
Added limitations:
- allowed adding of max 20 accounts
- allowed adding of max 3 watch only accounts
- allowed adding of max 5 key pairs (including the profile key pair)
- allowed adding of max 20 saved addresses per mode
Closes#15934