Commit Graph

1562 Commits

Author SHA1 Message Date
Lukáš Tinkl 0c8231a6b6 fix: can't join an encrypted community
- fix the corner case and allow the user to join a community without an
explicitely stated "Member" permission
- enable/disable the Share/Join/Save buttons when the permission to join
check is ongoing, or when the permission check failed
- display tooltips over the disabled buttons explaining why it's disabled
- always display the eligibility button floating on top of the
(scrollable) contents

Fixes #14473
Fixes #14299
2024-04-26 10:50:26 +02:00
Michał Cieślak e8a78e21b8 StatusQ(SubmodelProxyModel): Submodel type fixed
There was inconsistency in qvariant type of submodels depending if it
was initial call for a given row (creating proxy) or further calls
(returning cached object). It led to subtle issues in views - view was
reporting type errors and failing assigning submodels properly when used
with submodel proxy with already initialized and cached proxy submodels.

Closes: #14507
2024-04-24 11:24:13 +02:00
Lukáš Tinkl bbd0e71fd6 chore(StoryBook): add Colors page
- gives an overview of all the `Theme.palette.foo` colors
- the color name/code can be copied to clipboard
- light/dark variant supported via storybook's "Dark mode" switch
- integrated search (both the color name and value)
2024-04-23 17:11:49 +02:00
Jonathan Rainville 1da3c26da1 feat(edit): enable editing the message in an image message
Fixes #13255

It seems like all our code already supported it, we just blocked it in QML just in case 🤷
2024-04-19 10:12:13 -04:00
Michał Cieślak 173a02f1fc feat(StatusQ/SubmodelProxyModel): persistent submodels proxies
So far submodel's proxies were created on the fly, on every data(...)
call. Now, once created the proxy is persistent and reused whenever
needed.

Closes: #14389
2024-04-18 14:44:10 +02:00
Lukáš Tinkl 5b242c6dd8 fix: do not display the thousands separator when editing
- teach `userInputLocale` about `Locale.OmitGroupSeparator` option which
discards the said thousands separator
- some more fixes to other inputs to do the same, and align what the
validators do
- StatusAmountInput: discard illegal characters, and reuse the same
locale for the validator
- StatusAmountInputPage: make it possible to select a different locale

Fixes #14165
2024-04-17 14:04:03 +02:00
Alex Jbanca a045ca36fe feat(ProfileShowcase): Sort and filter collectibles based on token management settings 2024-04-17 13:40:42 +03:00
Godfrain Jacques eccc9b3bd7
fix(category) Implement collapsed categories (#14135)
This PR implements the nim part for enabling having collapsed categories
that persist into the database
This fixes #13944
2024-04-15 11:34:44 -07:00
Stefan 8be1453fd0 fix(token-order): global has settings check that introduced side effects
The "settings exist" done via ManageTokensController::hasSettings() was
using the global store, hence not working user based. Therefore, after
an onboarding the previous user's settings presence was taken into account.
The fix now uses the order data that is loaded externally per user.

Closes #14383
2024-04-15 09:16:34 +02:00
Stefan 228622359d fix: warning while switching between accounts
The is image flag and source was not in sync due to sequential change
of source and isImage. This was causing the following warning:
`Warning: qrc:/StatusQ/Components/StatusRoundedImage.qml:27:5: QML StatusImage: Cannot open: qrc:/StatusQ/Components/help
2024-04-15 09:16:34 +02:00
Cuteivist 7cb59576a1
fix(wallet): Update amount to send decimal handling (#14399) 2024-04-15 07:28:29 +02:00
Stefan d3f037f93b fix(wallet): hidden groups are still loading from user local settings
Removed loading hidden groups from local settings and instead reload
them from the externally loaded settings.
Also move the local saving code from the controller to external,
therefore now it is implemented in storybook

Updates #14365
2024-04-14 10:59:08 +02:00
Michał Cieślak 5d4380e4d9 feat(StatusQ/ConcatModel): Proper handling of source models layout change
Whenever source model emits layoutAboutToBeChanged/layoutChanged,
persisten model are updated appropriately, also scenario when items are
removed is covered.

Closes: #14244
Closes: #14245
2024-04-12 11:05:08 +02:00
Michał Cieślak 598a389c3e feat(StatusQ/TestHelpers): Add method to test model removing items and emiting layoutChanged 2024-04-12 11:05:08 +02:00
Lukáš Tinkl 5d064368cf chore(ui): visually align different combo box instances
- extract common background and indicator subcomponents into
StatusQ.Components.private, and reuse it

Fixes #14121
2024-04-11 21:48:16 +02:00
Lukáš Tinkl 3e051fd79c chore(ModelUtils): small optimization for `get`
- do not call `roleByName` twice
2024-04-11 21:48:16 +02:00
Sale Djenic d4fa715c7e fix(wallet): changes in account order in settings are not applied in wallet
Fixed an issue with dropping a draggable item outside the bounds of the DropArea.

Fixes #13836
2024-04-09 11:27:15 +02:00
Stefan 473e2e273f feat(wallet) connect assets ordering with saving to DB backend
Also refactor the existing code based on the latest understanding.

Closes #13312
2024-04-09 09:34:52 +02:00
Michał Cieślak 0b47e6ff8a feat(StatusQ/LeftJoinModel): Add init check on componentComplete
Earier attempts to initialize proxy may fail bc left/right models
may be not ready when they are set. It may lead to a situation where
the model remains uninitialized and reporint 0 row count.
2024-04-05 14:58:06 +02:00
Michał Cieślak 0c34325841 feat(StatusQ/LeftJoinModel): Add possibility to explicitly define roles to be joined
The new property is added to allow indicating which roles from the right
model should be used. It prevents from unnecessary renamings.

Closes: #14298
2024-04-05 14:58:06 +02:00
Alexandra Betouni 53db09412a feat(ProfileShowcasePopup): Adding interactions in delegates
Closes #13702
2024-04-05 12:31:11 +03:00
Lukáš Tinkl 375de59cfa chore(SharedAddressesPermissionsPanel): optimize the speed
- don't use the expensive `ExpressionFoo` in SFPM, just use
`AnyOf/AllOf` combinations where possible
- in HoldingsSelectionModel, don't call the `getTokenByKey` twice to
construct the `text`, once is enough
- lastly, rewrite the JS helper `PermissionsHelpers.getTokenByKey` to
C++; this method gets called recursively way too often from many places

In the longterm, we should provide a specific C++ transformation model
for SharedAddressesPermissionsPanel to follow the UI requirements more
closely; that way we'd be able to fix the issues here for good

Fixes #14276
2024-04-04 16:59:26 +02:00
Stefan ee23cce575 fix(SendModal): fix various issues with SendModal
- Fix errors when switching between assets and collectibles tabs
  - Fix by controlling the order of instantiation between model and
    delegates not to mix models and delegates from different sources
- Fix size errors
- Various improvements

Updates: #14212
2024-04-03 16:23:32 +02:00
Michał Cieślak b91cf08066 feat(SharedAddressesAccountSelector): Support for collectibles in account's delegate tags
Closes: #14102
2024-04-02 12:18:36 +02:00
Cuteivist 7fa3771e4e
feat(wallet): Handle collectibles details unknown community (#14206) 2024-04-02 10:23:20 +02:00
Alexandra Betouni 4af2a97358 [ProfileShowcase] Updated delegates as per design + added web tab
Closes #13421
Closes #13606
2024-04-02 10:21:13 +03:00
Cuteivist 6dec612f5c
feat(wallet): Handled failed to load collectible image state (#14229) 2024-03-30 06:00:00 +01:00
Lukáš Tinkl b191caaec6 feat: Add missing eligible to join tag in CommunityMembershipSetupDialog
- implement the eligibility check in C++, returning the highest possible
role the user would be allowed to join under
- enable/disable the "Share" button based on the above permissions check
- remove all the locally placed components, access teh popup only via
Global/Popups
- calculate the `accessType` internally based on the permissions present
- update the eligibility as the async check for permissions is finished
- fix the permissions panel background color
- partially revert the share/finish/cancel buttons behavior; it must be
one button due to StatusStackModal limitations
- fix some other minor UI issues or differences to current Figma designs
- adjust SB, add the possibility to play around with different
permission models

Fixes #14100
2024-03-29 16:11:59 +01:00
Sale Djenic 9b8401b641 fix(communities): keycard authentication marked automatically as authenticated
Closes #14174
2024-03-28 07:38:42 +01:00
Stefan 26542970ee feat(wallet) save/load collectibles user handled state in DB
Add a separation layer for save/load/clear to ManageTokensModel
so that we can save/load from external sources.
The separate layer is composed of JSON as protocol, a set of signals
and slots for interface. The implementation forwards data to current
QSettings for storybook and nim controllers for the app.

Updates #13313, #13312
2024-03-27 20:26:15 +01:00
Stefan a09defbef7 feat(wallet) skip picking flags in the random emoji picker function
Also add a test to validate the knowledge of the emoji picker function
about flags position

Closes #13715
2024-03-20 11:56:03 +01:00
Valentina1133 a48b2532ae
chore: object names for activity center elements added (#14029) 2024-03-20 17:22:57 +07:00
Lukáš Tinkl 2d729668ba fix: Separate single/grouped sort position
- keep track of the grouped item kind (community vs. collection)
- when the "arrange by" mode is active, use it for sorting the tokens in
the main wallet view
- change the behavior to always sort by the number of tokens inside the
group when entering the grouped (arrange by...) mode + add tests
- expose the `backgroundColor` for token groups
- remove unused code dealing with handling of community IDs

Fixes #13276
2024-03-19 14:18:55 +01:00
Michał Iskierko 9ed38bddb7
13291 hide channels (#13876)
* feat(@desktop/communities): Hide channels if the user is not permitted to view and hideIfPermissionsNotMet is set

Extend chats model with channel permissions info and hideIfPermissionsNotMet.
Visibility of chat item is based on: member roles, channel permissions, hideIfPermissionsNotMet.
If all channels from category are hidden, category item is also hidden.
If all chats in community are hidden, infomration label is displayed.

Issue #13291

* chore(@desktop): Upgrade status-go

Issue #13291
2024-03-18 13:33:07 -04:00
Lukáš Tinkl 2487963323 fix(StatusMenuItem): use the correct checkmark icon
- has to be the tiny version
- cleanup `assetSettings` assignment, it was redefining (shadowing) the
original properties, therefore creating new ones

Fixes #13941
2024-03-14 18:00:27 +01:00
Lukáš Tinkl d25cefcc2e fix(StatusBaseButton): adapt to handle actions when it is disabled
- add an `interactive` property as a drop-in replacement for `enabled`;
the UI looks "disabled" but can still display e.g. a tooltip or some
loading animation
- add the ability to display a tooltip
- remove DisabledTooltipButton and replace it with a regular
`Status(Flat)Button`, using the above new features
- update storybook with the new `interactive` switch

Fixes #10185
2024-03-14 18:00:27 +01:00
Igor Sirotin ad7f39f91c
fix: category item style (#13975) 2024-03-14 15:46:28 +00:00
Alex Jbanca 3b17134451 fix(StatusTextMessage): Allow user to copy parts of a message containing URLs
The root cause of this issue is that the `TextEdit.text` was replaced on hover to add specific styling for the hovered state. As a result the selection was dropped.

To fix this I've moved the highlighted hyperlink style to the StatusSyntaxHighlighter.
2024-03-14 12:21:52 +02:00
Khushboo Mehta 2f0343f0e9 feat(@desktop/wallet): Main Collectible Detail View enhancements
fixes #13804
2024-03-13 11:46:49 +01:00
Alex Jbanca 4ef30a91a3 feat(ProfileShowcase): Create dirty state component for the web tab and integrate the UI 2024-03-13 10:02:30 +02:00
Lukáš Tinkl 666ba77051 fix[onboarding] Broken links to "Terms" and "Privacy"
- display the locally bundled privacy/terms of use texts in a popup
- add support for reading text files with both relative and absolute
files or URLs, useful for having the same file path in both storybook
and the app

Fixes #13877
2024-03-11 20:30:59 +01:00
Alex Jbanca e7a1f5e831 feat(ProfileShowcase): Sync dirty state with the source model
Whenever the source model becomes identical to the showcase dirty model, the dirty flag is removed
2024-03-11 20:58:55 +02:00
Alex Jbanca 204bfb30b6 feat(WritableProxyModel): Add syncedRemoval flag to allow source to remove edited rows 2024-03-11 20:58:55 +02:00
Dario Gabriel Lipicar af84d788ff feat(@desktop/wallet): display balance in collectibles view
Closes #12940
2024-03-11 09:10:01 -03:00
Andrey Bocharnikov 058b08d3c9
fix(ProfileShowcase): Fix blinking when hovering over an address (#13865)
#13681
2024-03-08 19:21:08 +04:00
Alex Jbanca 07ac4eb8a6 fix(StatusQ): Don't emit layoutChanged on source model reset in MovableModel
+ Update tests
2024-03-07 22:07:49 +02:00
Valentina1133 3e1a4f55cb
chore: object name added for status switch (#13871) 2024-03-07 15:05:39 +07:00
Alex Jbanca 4d6082e806 feat(ProfileShowcase): Updates based on comments 2024-03-06 14:49:54 +02:00
Alex Jbanca c916bfa84e feat(ProfileShowcase): Fixing MovableModel signal handling after the sync state changes
1. Fixing duplicate connections on source model
2. Update connections and indexes when the internal data gets reset
2024-03-06 14:49:54 +02:00
Alex Jbanca 07484cb15c feat(ProfileShowcase): Simplify ProfileShowcasePanel API and connect to the new models
1. Fix `EmptyShapeRectangleFooterListView` visibility and positioning after ListView items are animated out of view
2. Update `ShowcaseDelegate` to remove modelObject dependency. The UI properties needed will be received from parent
3. Update `ProfileShowcasePanel` to remove the previous logic involving rows move and visibility change. There is no need now for two specialised delegate components (one for in showcase and one for hidden). The delegate is still configured outside of this component because the model rolenames need to be mapped to the delegate properties. The common delegate logic is implemented in the `ProfileShowcasePanel` and only the model mapping is needed from parent component.
3. Update all `ProfileShowcase*Panel` to impement the new API
4. Remove all `*ShowcaseDelegate`. The delegate is simple enough to be configured at once in the Panel
2024-03-06 14:49:54 +02:00