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.
- 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
Also:
test(suite_communities): Fixed community related tests
- A new intermediate popup is now displayed when user clicks on `Create New Community` button from `Community Portal`.
- Reformulated `tst_communityPermissions` since now it is a default option without the need of activating it from experimental feature's section.
Closes#10115
the StatusChatInput (among other things) was disabled due to wrong
`activeChatType` being passed down to `ChatContentView` which does all
sorts of checks whether we are allowed to chat with that contact
The `root.activeChatType` no longer reflects the chat that we are going
to activate (probably due to the extensive use of `Loader`s)
(plus remove some dead code)
Fixes: #10463
for everything that's not a user interface element, esp. for static/big
images or chat/message elements which get served from locally anyway from
status-go
Iterates #10339
- move the add/edit FAB icon to the topright corner as designed
- prepare UI changes for being able to delete banner/logo (missing impl
in status-go)
Fixes: #9680
Fixes#10384
The problem was that doing the sort inside the insertRows messed up the model.
I removed it and it fixed the issues. However, it created an other issue with ordering.
The problem this time is that when populating the model at the start, we do not get the chats in order, so calculating the right position to insert a chat is difficult.
Instead, I use a setData function to just put all the chats in the items list, sort it and call it done, using the resetModel function.
I also did some clean ups.
Please note that this solution serves as a temporary workaround and
comes with variety of limitations, particulary concerning the chat
input state. For instance, the reply area is not retained when switching
between chats.
Ideally the root cause, which is the high memory consumption of both
`StatusChatInput` and `MessageContextMenuView`, should be fixed. Once
this issue is addressed, the current workaround can be reverted.
fixes: #10378
Id removed from StatusBaseText used in default contentItem, what was
causing that default contentItem was instantiated even when overridden
by user. Radius and cursorShape properties exposed.
- expose "isEnsVerified" as model role
- fix returning "ensName" when the user is not ensVerified
- react to nickname updates correctly
- fix sorting in the user/member list view
Major changes:
- Don't allow empty network selection. End up using the nim model
directly instead because of individual row changes issues
encountered with nim models
- Made the clone model a generic implementation to be used in other
places where we need to clone a model: ReceiveModal,
AddEditSavedAddressPopup
- Use cloned model as alternative to NetworksExtraStoreProxy in
ReceiveModal
- Added tristate support to our generic checkbox control
- UX improvements as per design
- Fix save address tests naming and zero address issue
- Various fixes
Notes:
- Failed to make NetworkSelectPopup follow ground-truth: show partially
checked as user intention until the network is selected in the
source model. Got stuck on nim models not being stable models and
report wrong entry change when reset. Tried sorting and only updating
changes without reset but it didn't work.
- Moved grouped property SingleSelectionInfo to its own file from
an inline component after finding out that it fails to load on Linux
with error "Cannot assign to property of unknown type: "*".".
It works on MacOS as expected
Closes: #10119
It enables navigation from mint token page to airdrop page selecting a specific collectible to be airdropped.
It is now used `symbol` property as the identifier for a collectible but will be needed to update it to `key` once this key property is build in backend by hash(chainId + contractAddress).
Closes#10047
the button to (un)install would be either greyed out or result in a crash:
- we were passing the popup a wrong store (w/o networkConnectionStore)
- the condition to `greyedOut` was inverted
Implement the UI part of Profile/Settings/Showcase:
- Communities/Accounts/Collectibles/Assets tabs
- drag and drop of items between "hidden" and "in showcase" sections
- ability to set individual items' visibility
- persistency (showcase saved across restarts), not exposed yet due to
missing backend API
Closes#9936
Fixes#10212
The problem was that we were detecting that the name was empty string and comparing to another empty string and inserting that, which is incorrect.
There was also a problem with the detection of the name being completely written. onKeyPressed didn't take into account the new letter added, onKeyReleased does.
- use spacing as designed in Figma
- re-use StatusColorSelectorGrid title label component (not leaving extra
space behind whern empty)
- always use white text for the color previews (our color palette/picker
are designed for this)
- give Channel color dialog a title (as designed)
- use BE spelling (as designed, and to be consistent with the rest of the app)
Fixes: #9841
Adjust according to Figma design
- the asset size should be 40x40
- fix the listview's horizontal alignment
- fix the confirmation dialog(s!) title
Fixes#9887
Fixing https://github.com/status-im/status-desktop/issues/9766
The main change is that the model will now provide the image type, on top of the image source. The image type can be either icon or image. Icons will be coloured with the same colour as the text.
Fixing: https://github.com/status-im/status-desktop/issues/9763
Changes:
1. Use int to pass around the supply amount from one component to another
2. Transform the supply amount to localised string when it is displayed to the user.
Fixes#9973
The buttons didn't work because we weren't using the right model + the section model didn't expose the PendingMemberRequestsModel.
I also fixed the service to update the community correctly and send the event. It should feel snappy-er to approve someone now.
There's a bug that all requests to join a community require the user to
authenticate themselves. This should only be needed for community that
are token permissioned.
This commit fixes it by only performing auth when requesting from the
tokengated community view.
Fixes#10010
- Added default no data information message for assets and collectibles.
- Added specific no data information message for airdrop functionality.
- Hidden searcher when there is no data available.
Part of #9938