Fixes: #3564.
Several UI bug fixes have been made for the gif widget:
1. Star now only appears once the gif is hovered
2. Default hover star colour is “grey”
3. Once the star is hovered, the star turns yellow
4. If the gif is favourited, the star fills in yellow
5. Removed square border around the gif
6. Added invisible padding around the star to increase the mouse surface area for hover/click
7. Added tooltip to the star for adding/removing from favourites
NOTE:
1. An initial attempt at changing star state based on gif thumb hover and star hover proved unsuccessful. Changing visibility of the star had to depend on both the hover state of the thumb AND the star — relying on only the thumb hover caused a flicker.
2. Relying on the local hover state of the star and the thumb hover state caused inconsistencies where the hover state of the star would become true after not being hovered. I’m still unsure as to why this was happening. A workaround was to create a signal to a HOC as to the last hovered gif id. From there, we could rely on matching `model.id` to the last hovered gif id in the HOC.
This feature works for MacOs only, for now.
On login, whether new or already created user may select between options:
"Store" - store password to the Keychain
"Not now" - don't store it now, but ask next time again
"Never" - don't store them ever and don't ask again
Selected preference may be changed later in:
`ProfileSettings > Privacy and security > Store pass to Keychain`
On the next app run, if `Store` was selected, a user will be asked to confirm
his identity using Touch Id in order to log in the app. If any error happens
he will be able to login using password.
Fixes: #2675
This commit enables users to enter fully qualified ENS names manually
and marking them as mentions, which are then later being replaced with
pubkeys.
The changes do not prevent users from entering ENS names that don't exist.
There's also a fix that ensure prepended "@" signs are removed from the
items selected in the suggestions box.
Closes#3149
Qt's Menu closes the menu when action is triggered and to overcome this default behaviour added a custom event to be called when action is clicked.
Fixed some formatting related bugs.
fixes#2349
Removed all computation of suggestion from qml
Reuse user list in order to populate the suggestion box
As a side effect, the suggestion are not serialized from qml to
nim
Remove InputArea which seems not used anymore
Added code so that in the backup seed phrase modal all actions can be performed with the enter key.
Also added logic for default focus on the confirm button in the ConfirmationDialog.
fixes#2359
Bug is easily reproducible if you try to buy some stickers, in that case suggestion text
overlaps divider and buttons, and if you don't enough balance warning about that will overlap
all that also.
Fixed by increasing hight of the appropriate modal.
Fixes: #2994
Fixes#2434. Modals that were affected by this issue were
- RegisterENSModal (for registeing an ens username)
- SetPubKeyModal (for changing the contact code of an already owned ens)
- StatusStickerPackPurchaseModal (for acquiring a sticker pack)
Toast message is added when user access an existing community using community's private key. Toast
message with message that importing community is in progress is displayed while community is being
imported and once it is imported toast is closed and new one, which will be closed in 4 seconds,
with message that community is imported is displayed.
Fixes: #2467
* Text copied from clipboard that included images
and other rich content was not visible in text
box when pasted, modified to keep only plain
text instead and removed unnecessary funtions
* Also removed unecessary Rectangle in Input
Closes#2650
This commit replaces the `TopBar` components with StatusQ's `StatusChatToolBar`
and touches a few other things as part of this refactoring, namely:
1. `ChannelContextMenu` has been renamed to `ChatContextMenu` and is now a `StatusPopupMenu`
2. Leftover components have been removed: `StatusChatInfo`, `StatusChatInfoButton` and `TopBar`
3 `ActivityCenter` has been moved into `ChatColumn.qml` because `StatusChatToolBar` doesn't provide it
4. `Share chat` option in `ChatContextMenu` has been removed as it wasn't doing anything.
Closes#2746
Validation check is updated, so user cannot enter zero or less than zero value for "gas amount limit" or "per-gas overall limit".
In gas.nim a crash prevention check is added.
Fixes: #2753
Validation check is updated, so user cannot enter zero or less than zero value in amount input field.
Also in utils.nim a crash prevention check is added so if we try to convert a less than zero float number to an unsigned number, app won't crash any more, but that casting will return a zero as unsigned int number.
Fixes: #2755
add getSettings methods to src/status
fix issue with calling getSettings; document issue
remove most direct references to libstatus; document some common issues
remove most references to libstatus wallet
add mailserver layer to status lib; remove references to libstatus mailservers
remove libstatus accounts references
move types out of libstatus; remove libstatus types references
remove libstatus browser references
refactor libstatus utils references
remove more references to libstatus stickers
remove references to libstatus constants from src/app
remove more libstatus references from src/app
refactor token_list usage of libstatus
refactor stickers usage of libstatus
refactor chat usage of libstatus
remove libstatus references from the wallet view
remove logic from ens manager view
fix issue with import & namespace conflict
remove unnecessary imports
refactor provider view to not depend on libstatus
refactor provider view
refactor: move accounts specific code to its own section
fix account selection
move collectibles to their own module
update references to wallet transactions
refactor: move gas methods to their own file
refactor: extract tokens into their own file
refactor: extract ens to its own file
refactor: extract dappbrowser code to its own file
refactor: extract history related code to its own file
refactor: extract balance to its own file
refactor: extract utils to its own file
clean up wallet imports
fix: identicon for transaction commands
Fixes#2533
Closes#2344.
Add ability to edit name, description, and private fields of a community channel.
feat: Display community channel description
Ensure the width of the description does not surpass the context menu and instead wraps to the next line.
feat: After channel is created, set it as the active channel
When inviting contacts to a community, Status Desktop suggests a list of
all contacts, even if contacts of that list are already members of the community.
This commit introduces a new flag to `ExistingContacts` component that
allows for configuring whether community members should be hidden or not
Fixes#2502
Due to historic reasons, conditionally assign a font size for the letter
identicon, based on whether or not the app's compact mode is active.
Compact mode has become the new default a while back and the component's
`isCompact` property isn't set anywhere in throughout the application,
resulting in `letterSize` to always be `21`, which is too big.
This commit removes the condition, defaulting to always having a letter size
of 15 pixels as designed.
Fixes#2448.
Currently, if a wrong password is entered when generating a wallet account, the app will crash due to attempting to decode a `GeneratedAccount ` from an rpc response containing only an error.
With this PR, we are detecting if an error is returned in the response, and if so, raising a StatusGoException. This exception is caught in the call chain, and translated in to a `StatusGoError` which is serialised and sent to the QML view, where it is parsed and displayed as an invalid password error in the input box.
refactor: remove string return values as error messages in wallet model
In the wallet model, we were passing back empty strings for no error, or an error as a string. This is not only confusing, but does not benefit from leaning on the compiler and strong types. One has to read the entire code to understand if a string result is returned when there is no error instead of implicitly being able to understand there is no return type.
To alleviate this, account creation fundtions that do not need to return a value have been changed to a void return type, and raise `StatusGoException` if there is an error encountered. This can be caught in the call chain and used as necessary (ie to pass to QML).
refactor: move invalid password string detection to Utils
Currently, we are reading returned view model values and checking to see if they include a known string from Status Go that means there was an invalid password used. This string was placed in the codebased in mulitple locations.
This PR moves the string check to a Utils function and updates all the references to use the function in Utils.
Fixes#2419
Makes it so the private key is elided by default so you can see it all from the get-go. If you focus the field, the key will "unfurl" and you can copy it manually.
Otherwise. the Copy button will always copy the whole key
Fixes: #2257.
If a user had selected a watch-only address in the wallet, the backend `walletModel.currentAccount` property would also change. When loading a transaction modal, this property was used to set the `selectedAccount` value for the “from” `AccountSelector`, regardless if the account was a watch-only address.
This PR updates the logic for `selectedAccount` such that it will only allow the account to be selected if it is not a watch-only account.
A `StatusIcon` that rotates infinitely and can be used for indicating
pending states.
Usage:
```
StatusLoadingIndicator {
width: 24 // default: 17
height: 24 // default: 17
color: "red" // default: loading asset color
}
```
This also removes `LoadingImage` component from `ui/shared`.
Closes#2360
This introduces a new `StatusIcon` component to the component library,
including various icon assets.
The component can be used to render icons in different colors and rotations.
It's also one of the atomic components that can be used to build other
more complex components like icon buttons.
Usage:
```
StatusIcon {
icon: "arrow-right" // name of asset file in `ui/shared/status/assets/img/icons
width: 24 // default: 24
height 24 // default: 24
color: "red" // default: asset file color
rotation: 0 // default: 0
}
```
Closes#2330
Fixes#2050.
This PR contains changes to fix the name validation for new communities and new channels in communities. In the process of updating this, better validation was also added to both popups (create community and create channel), including the prevention of the "Create" button from being enabled until all form fields were valid.
During this process, it was noticed that the community image cropper was not actually cropping the image *in the preview*. Once the community was created, status-go was successfully cropping the image as the user intended. However, the preview thumbnail prior to creation was not accurately showing the cropped image preview and showing the entire image centred instead. *This is still yet to be fixed.* One solution is to upgrade Qt to `5.15` to take advantage of Image QML's `sourceClipRect`.
When contract addresses that are not ERC-20 or ERC-721 were input, the token would be allowed to be added and would crash the app.
In addition, when an ERC-20 contract was deployed without a name and symbol, “Invalid ERC-20 address” would appear.
This PR adds error checking from the token detail lookup and reports the error back to the user in the modal. This prevents non-ERC-20/721 contracts from being able to be added to the app and prevents a crash.
There was a UI bug in the StatusChatInput where, only in the timeline view,
the scrollview wrapping the textarea would have a weird behaviour in which
it would render the visible text(placeholder) *lower* than how it's actually
positioned. Once the textarea is clicked, it would re-adjust with a smooth
scroll.
Obviously this is undesired behaviour as the text should always render in the
correct position.
This commit finally fixes this weird behaviour by moving the dynamic height
calculation to the wrapping Rectangle and changing the textarea's top- and
bottom paddings dynamically.
Fixes#2018
There were cases in which this component was used and its `checked` state wasn't
properly emitted to the underlying component.
This commit fixes that by ensuring the `MouseArea` only alters the radio button's
`checked` state and let the radio button handle the event propagation.
This was a regression introduced in https://github.com/status-im/status-desktop/pull/2065.
The new wrapping Rectangle would get the color that is possibily passed down
to Separator. Instead it should get properly bound to the actual separator.
We've been implementing such a button in various ways throughout the
application. Sometimes using SVG icons and rectangles, sometimes highjacking
`StyledText` components (which was clever though).
Obviously this resulted in inconsistencies, so this commit introduces
a new dedicated component to render the three-dots button for context menus.
Sometimes, `Separator` is used inside context menus to separate groups
of actions that belong together. The separator in itself doesn't have any
padding or margins in this case because the just gets transcluded as is
in the context menu, between menu items.
There are cases in the design where a padding/margin is desired though.
This change makes that possible by wrapping the separator `Rectangle` with
another `Rectangle` which controls a custom height (if desired). The inner
rectangle is then just always vertically center.
In practice this means, existing usages of `Separator` behave exactly the same,
they don't break. In addtion one can set `Separator { height: x }` while maintaining
a 1px separator line.