- extend the tests to verify whether we collected the correct data
- restore the "pointing hand" cursor on clickable elements
- some minor improvements
- implement the basic Onboarding UI skeleton and the Create Profile
flows
- adjust the PasswordView and EnterSeedPhrase views to the latest design
- add the main OnboardingLayout and StatusPinInput pages to Storybook
- change terminology app-wide: "Seed phrase" -> "Recovery phrase"
- implement the Login flows (seed, sync, keycard)
- amend the keycard flow sequences with separate (non) empty page
Fixes#16719Fixes#16742Fixes#16743
- removed nested ListViews inside StackLayouts, in order to reduce the
memory footprint and improve performance, and also to be able to better
manage the scrolling
- no more unrolled multiple listviews, which again hurt the performance;
now the views instantiate the delegates dynamically on the fly
- the tab bar and the search fields now stick to the top of the page,
with the users list view scrolling independently
- both views now uniformly use the common `ContactListItemDelegate`
- the received/sent CRs are now combined into one `pendingContacts`
model
- factored out common search/filter criteria into a new, separate SFPM
`UserFilterContainer` component
- fix an issue where StatusContactVerificationIcons wasn't properly
displaying the "blocked" state/icon
- fix documentation comments, removed relative imports, and updated some
Fixes#16612Fixes#16958
- fixup margins and padding according to latest Figma designs
- make a difference between a disabled and inactive tab by using opacity
- provide smooth color transitions
- add a dedicated StoryBook page
- use a dedicated StatusListItem slot for the beta tag icon
- rename (Settings/)LeftTabView.qml to SettingsLeftTabView to avoid
naming confusion with the same component from wallet
- add the component to SB with options to explore
Fixes: #16906
- we are inside Settings, and `isCurrentUser` needs to be true for the
profile perspective selector (aka the "Preview as..." combo) to be shown
- also fix the (unrelated) warning about `Window` being null
Fixes#17041
Fixes#16832
Implements all the needed basic Nim functions for the new onboarding.
They do no do anything just yet. They shall be integrated in another commit.
* fix(block): fix context menus not updating when blocking/unblocking
Fixes#16948
* fix(cr): fix context menus not containing the contact request info
Fixes#16952
- listen to the NIM's signal `SIGNAL_REMOVED_TRUST_STATUS`
- emit a signal for QML signal accordingly
- emit a toast/notification as a result
Fixes#16949
closes#16887
The pairing popup can be destroyed while the pairInstructions popup is active. As a result the pair instructions popup will misbehave.
To fix this, the pair instructions component is moved outside of the pair popup scope
(cherry picked from commit 007f75ad4c4823692abf9c12ee7c1a0806a87659)
closes#16883#16882
1. connect the dapps service online state to the enabled state for the dapps button
2. Fix the connect modal primary action button
3. Align DappsComboBox disabled color with the refresh button disabled color
(cherry picked from commit 2c4f6b5da3d484b8e36f2ec572ba738e490cda40)
* chore: identify version numbers using a git tag
- remove VERSION file
- expose the `GIT_COMMIT`so that we can properly construct the web links
when the user clicks the version number in Settings/About
- some smaller cleanups and warning fixes
Fixes#12349
* fix_: ci artifact version and use version scripts
---------
Co-authored-by: Igor Sirotin <sirotin@status.im>
After this change there is not need to pass sendModal instance from AppMain to other parts of app.
Then SendModal should be launched simply by calling Global.openSendModal(....)
- add ability to copy display name of a message author
- add possibility to search for a member by a un/compressed chat key
- adjust the search field placeholder text to "Search by member name or
chat key"
- update SB with some more variations
- cleanup some the signal handling
Fixes#16790
Fixes#16741
The problem was that we replaced the ContentType from Image to Text, so on restart, it doesn't understand it had images anymore.
Fixed in status-go by reusing the ContentType of the original message.
This makes it so that we don't need to pass the ContentType from Nim anymore, so I removed that param from the code.
Fixes#16688
Fixes the issue by adding a version to the URL on the status-go side. No extra code needed on our side.
The only change is that we no longer need the `addTimestampToURL` hack for the community now.
* fix(badge): fix missing badge on the Chat section
* fix(unread): fix unread count not incrementing when the chat is active but app is unfocused
Fixes#16098
The problem was that we were marking the message as read because the chat kept scrolling, even if the app was in the background.
I fixed that by only marking as read if the app is active. I added a Connections to the active property of the Applicaiton too to mark as read when the app comes back active.
I also removed a condition that prevented the Unread bar appearing in that condition.
Now, when a message is sent to the active chat, but the app is not in focus, the red dot appears, as well as the badges. Then when the app comes active, it is marked as read, but the unread messages line is shown to show when is the last time the user saw messages. This is similar to what Discord has.
closes#16831
Moving the dapp popups to the global scope in order for them to be triggered on any view.
There are a few changes required for this:
1. DAppsWorkflow has been split. Previously all popups were declared in the `DappsComboBox`. Now the DAppsWorkflow inherits the QObject instead and the `DappsComboBox` is used as is in the wallet header.
2. The DAppsWorkflow has been moved to AppMain. The DAppsWorkflow will be constructed in the scope of DAppsService and connected directly to the service signals
3. Updated tests and storybook with the new structure
4. Removed the `dAppsService` from `Global`. There's no reason to keep the `dAppsService` instance in the `Global` singleton.
* 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>