- Added new role into ephemeral_notification_model: image.
- Added new view API to display ephemeral notifications with image and action.
- Added support to display asset or collectible image in a toast with different shape (circle or square).
- Default values assigned to the new parameters added in `CommunityTokensStore` meanwhile backend is not ready.
- Created page for `StatusToastMessage` in `storybook`.
Closes#13039
Show Qr popup is partially refactored because of the two things:
- to meet new UI requirements (introduced in the new saved addresses design)
- to make usage of that popup more generic, that it can be easily used from different places
Implemented:
- adding selection color section
- all input field validations
- interactions within the popup
- an ephemeral notification when adding an address
Closes#13089
- add the sort combobox to assets/collectibles main wallet view pages
- preserve the current view settings
- add the possibility to navigate/drill down into wallet settings
(sub)subsection
- some other minor changes/fixes
Note: currently assets can't be sorted by "1W change" and collectibles
by "Date added" due to missing backend for these
Fixes#12517Fixes#12518
This is required to control the resource consumption in case of no
usage of wallet connect
Hence we load the WebEngineView only if we have active pairings and
such that SDK events are expected from the paired dapps.
Also:
- Moved the generic WebEngineView communication bridge to StatusQ
- Added basic tests for WebEngineLoader
- Add a way to know when wallet is loaded (`walletReady`)
- Add storybook support for mock of nim sections as context properties
Updates: #12639
- It adds link to the corresponding tokens model in `EditCommunityTokenView`.
- It adds validation for `name` and `symbol`.
- It updates `storybook accordingly.`
Closes#12365
- display a customized floating bubble to save/apply the settings
- display a toast message on Apply with an action to jump to Wallet main
page
- add home/end/pgup/pgdown keyboard shortcuts to StatusScrollView to be
able to navigate more easily in long list views
- some smaller fixes and cleanups in wallet and settings related views
Fixes https://github.com/status-im/status-desktop/issues/12762
This is a first step to globalize how toasts are treated in the qml layer:
- Created `ToastsManager.qml` class to deal with all app toasts generation.
- Started moving community transfer ownership related toasts to the new manager class.
- Some small cleanup in `AppMain.qml`
Nim backend:
- Created new api method to deal with extended / action toasts.
- Updated needed model / item with new needed roles.
Closes of #12175
* feat: live received status link previews
* link preview cards: active members count
* update `requestCommunityInfo` to new backend. Add `requiredTimeSinceLastRequest` arg
Signing flow can be run globally (similar as authentication flow is run) emitting
`SIGNAL_SHARED_KEYCARD_MODULE_SIGN_DATA` from any part of the app
and listening for a signal `SIGNAL_SHARED_KEYCARD_MODULE_DATA_SIGNED`
to get corresponding result.
It creates new `TokensStore` that will provide all needed token models for all app sections:
- sourcesOfTokensModel
- flatTokensModel
- tokensBySymbolModel
* feat(StatusQ): Adding numberToLocaleStringInCompactForm function to LocaleUtils
This function will format the number in a compact form
E.g: 1000 -> 1K; 1000000 -> 1M; 1100000 -> 1.1M
+ adding tests
fix(statusQ): Update numberToLocaleStringInCompactForm to return the locale number when greter than 999T
fix(StatusQ): extend the test_numberToLocaleStringInCompactForm with new data
* feat(LinkPreviews): Update the link preview area in StatusChatInput to use the new model
Changes:
1. Create a new component `LinkPreviewMiniCardDelegate.qml` that filters the model data to properly fill the link preview card with the needed data based on the preview type
2. Update storybook pages
3. Small updates to LinkPreviewMiniCard
* feat(LinkPreviews): Update the link previews in message history to use the new backend
Changes:
1. Create delegate items for LinkPreviewCard and gif link preview to clean the LinksMessageView component and filter the model data based on the preview type
2. Remove UserProfileCard and reuse the LinkPreviewCard to display contacts link previews
3. Update LinkPreviewCard so that it can accommodate status link previews (communities, channels, contacts). The generic properties (title, description, footer) have been dropped and replaced with specialised properties for each preview type.
4. Fix LinkPreviewCard layout to better accommodate different content variants (missing properties, long/short title, missing description, missing icon)
5. Fixing the link preview context menu and click actions
fix: Move inline components to separate files
Fixing the linux builds using Qt 5.15.2 affected by this bug:
https://bugreports.qt.io/browse/QTBUG-89180
* fix: Align LinkPreviewMiniCard implementation with LinkPreviewCard and remove state based model filtering
- add a popup asking the user before clicking on an unfurled link
preview
- add a checkbox for the above popup to remember the trust for such
domain
- use local Settings to persist the "trust domain" locally; for
global persistence across devices, see
https://github.com/status-im/status-go/issues/4132Closes#12388
Enable user action to repeat a Send transaction from the activity view
(HistoryView) and details view (TransactionDetailView).
Extend AppMain send modal entry and SendModal API to allow for selecting
all the required parameters for repeating a transaction.
Optimize update of start timestamp for activity filter only when user
attempts to open the filter panel.
Closes#12122
- Updated `CollectibleDetailsView` to show owner and tMaster token collectible types with the correct design.
- Updated `CollectiblesView` to show owner and tMaster token collectible types with the correct design.
- Modified send footer option if collectible selected is an owner token.
- Added logic to wallet rootstore to handle selected collectible data.
- Reverted changes on property selectAccount in sendModal
Closes#12172
- Applied new design to transfer ownership popup.
- Added support in storybook.
- Added navigation to transfer ownership popup from community settings / owner token footer.
- Added navigation to transfer ownership popup from community settings / overview.
- Linked wallet send modal to the transactions popup with the needed pre-populated data.
Closes#12171
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
- labels changed in Figma, updated in the app
- `Show encrypted QR of keypairs on device` is displayed only if needed now,
for this I had to add account/keypair `operability` feature, so far it handles only
displaying a context menu option, later in a separate issue a proper functionality
will be added
- wallet related toast notifications moved to the proper place (`AppMain.qml`, where
actually all notifications should be handled), not in the place where they occurs, we
need to review other notifications as well and move them there
- 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#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.
- 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
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.
- do not hardcode width of child elements (impossible to propagate
setting the width from the toplevel/parent component)
- made both the community and non-community chat item look the same and
according to the Figma designs (including margins, scrollbar positions,
spacing etc)
- cleaned up some hardcoded values and dead code
Fixes#10469
- CommunitiesPortalLayout was the last piece still unconditionally loaded
on startup -> fixed
- extract the `communitiesStore` into AppMain to be able to reuse it from
other components
- move the import/create community dialogs to `Popups` (reusability)
- cleanup and remove some dead code, fix warnings
Iterates #6204
- `StatusCommunityCard` updated with a new hearder component.
- `CommunitiesGridView` updated to use `CommunityPermissionsRow` component inside card.
- Added needed models.
- Updated storybook.
Pending backend integration: Part of task #10410
Lazily load chat and community sections but do not unload them,
otherwise all temporary data such as scroll position, text input,
cursor position, etc., would vanish
iterates: #10286
the AC popup was being recreated on every click and never destroyed,
leading to:
- memory leaks
- slow operation on opening (it's not trivial to create)
Now we keep a reference the the created popup object, thus making it
faster to appear on every (second) click. It gets destroyed via its
parent at the application shutdown
- the goal of this PR is to get some bsais UI building blocks done for
the followup PRs
- the order of showcase tabs now is:
Communities/Accounts/Collectibles/Assets
- there will be further changes to accomodate for different types of
backend models as those get developed (for other users' profiles)
Fixes#9664
Prior to this change `ChatLayout` exposed `chatView` which let other
components access it, its properties and signals.
This is problematic as we need to be able to swap out the `ChatView`
with the `JoinCommunityView` for token gated communities, in which case
there won't be an instance of `chatView`.
This commit ensures that we rely purely on inputs and outputs of the
component, without exposing the component instance itself.
- Drag/drop images are available from all chat types (1:1 , group chats and community channels).
- In case of community settings views, it is disabled.
Fixes#9630
Closing #9470
Adding Did You Know Splash Screen that will be shown when AppMain is completed.
The SplashScreen runs for 30 seconds and will randomly iterate through `fun messages` every 5 seconds.
... doesn't work in the community section
Extract the `Chat.RootStore` as a toplevel/shared property and pass it
down to ChatLayouts, instead of cross referencing it between different
components. This was also problematic since the ChatLayouts now live
inside a Loader, so it's more appropriate to refer to the
`Chat.RootStore` directly, instead of
`personalChatLayoutLoader.item.rootStore`, since the
`personalChatLayoutLoader.item` might not be visible (due to it being
inside a Loader and a StackLayout) or it might even be a different
component (`loadingStateComponent` or `errorStateComponent`).
This also caused similar problems for other components, such as
ActivityCenterPopup or StatusStickersPopup.
Fixes#9513
- all remaining global popup components moved into a separate Popups
entity
- removed some static objects from the Global singleton (appMain,
pinnedMessagesPopup, communityProfilePopup, sounds); rationale:
singletons should not contain any state
- fixed support for popups in storybook
- fixed some warnings (most of them broke the popups in one way or the other)
Fixing QML Connections warnings due to deprecated onFoo handlers. Now we're using function onFoo(params).
Fixing QML compilation error due to js filename format.
Fixing cyclic dependencies between qml components.
- another bit on the road to reduce startup time and be more conservative
towards RAM usage
- remove more imperative JS code
- only preload/prepare the currently active community, not all of them on
startup
Fixes#8782
Fix a bunch of problems with handling sound/notifications related options
coming from the backend:
- `volume` and `notificationSoundsEnabled` live in a different settings
object; adjust the stores for that
- unbreak loading the actual wav/mp3 files (was never working on Linux
outside of AppImage!) -> use "qrc:/", same as the NIM backend does
- fix the volume scaling (backend has [1,100], QML is [0, 1])
- simplify our Audio QML item interface; no need for an extra property
and resolving the URL twice (which results in broken scenarios mentioned
above); we know which sounds we want to load
Closes#8668
- when calling `Utils.getColorHashAsJson()` we don't actually need to
issue ID verification requests at all and there might be situations when
we know beforehand that we don't need the ENS verification either
- change these helper functions' syntax and do early returns in that case
- in MessageContextMenuView, the "contact details" were duplicated, so
remove one
- remove dead code, fix some warnings
closed
Otherwise, the loader stays active, which requires users to hit CTRL-F
twice to reopen it again (because it'll first deactivate, then activate
again).
Fixes#7989
- wrap everything we can in AppMain with a (async) Loader
- do not access globals w/o a proper store
- drop some dead code
Although I wasn't able to completely fix the bug, the ~50% improvement in
startup time is still worth trying imho. On my machine, the startup time
went down from ~7s to under 4s.
Related: #7292