Commit Graph

1039 Commits

Author SHA1 Message Date
Jonathan Rainville fe8a58c5db fix(badges): fix muted chat not being marked as read
Fixes #11041

Fixes the bug where going to a muted channel with a mention doesn't mark it as read. This was because the QML doesn't call mark as read when a channel doesn't have unviewed messages. That was because our Nim code put 0 as unviewedMessageCount when a channel is muted.

I changed it so that channels always have the value from status-go. No more conditions on the Nim side. Now the condition is on the QML side. So we hide the badge in QML instead. That also means that showing the number of unviewed message, even in a muted channel works.

I also fixed a bug where we counted muted messages on app restart for the normal badge. Usually it didn't cause issues, because it's rare that you had messages in a muted channel and nothing else. You'd also have unread messages in an unmuted channel. so you'd go there, read it, and it would then update the parent badge. 
While testing this issue, I discovered that we in fact count muted channels for the parent badge.
So i fixed it in this one too.
So while chats don't have any Nim code for muted chats, sections do, because status-go doesn't really give us that information.
2023-06-16 15:12:12 -04:00
Lukáš Tinkl 045dfe60a0 fix: Channel picker doesn't render 1-1 chats correctly
- expose `colorId` and `colorHash`, the latter only for non-ENS verified
users
- use them in the results :)

Fixes #11086
2023-06-15 11:13:36 +02:00
Igor Sirotin 11bd51fc27
fix(SyncingView): only suggest to sync non-synced devices (#11083) 2023-06-15 11:53:35 +03:00
Michał Cieślak 8b44e686f4 feat(CommunityAirdrops): Fees popup with multiple entries for airdrops
Closes: #10484
2023-06-14 12:59:05 +02:00
Jonathan Rainville 125593369f fix(CodeScanner): fix QrCode Scanner not working on Linux
Fixes #10101

The problem was quite weird. The camera worked, but only when not **directly** in a Loader.

So I fixed by moving the Loader outside of StatusQrCodeScanner and into its parent SyncDeviceFromMobile.

The bahaviour is the same. We get a button asking to enable the camera, then we load the Scanner component. Before the Loader contained only the Camera component.
2023-06-13 12:49:55 -04:00
Lukáš Tinkl 2cb2f8354d fix: invalid width for items chat list
- simplify StatusChatListAndCategories, and propagate the width
- set the correct width in StatusChatList's actions (using
`Layout.fillWidth: true`)
- add a width slider to the storybook page to be able experiment with
the whole component width

Fixes #11047
2023-06-13 16:12:26 +02:00
Michał Cieślak d479077e60 feat(StatusQ): StatusSortableColumnHeader component added 2023-06-13 12:37:10 +02:00
Cuteivist a4731517d6
feat(@desktop/wallet): Add copy details and repeat transaction buttons (#10904)
closes #10776
2023-06-13 10:18:53 +02:00
Lukáš Tinkl c21c7cf705 feat: Add support for "locked" icons in chat list items
- introduce 2 new bool properties: `requiresPermissions` and `locked`
- import the new icons
- add a respective storybook to play around with the StatusChatListItem
properties

Fixes #11012
2023-06-12 16:57:39 +02:00
Lukáš Tinkl 0b94c2b541 fix: revert to not destroy popups on close by default
- 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)
2023-06-09 00:44:27 +02:00
Lukáš Tinkl 0cf01871b4 fix(Chat): Quoted message in a reply is not clickable
wrap the reply contents area (excluding the profile header) in a
ColumnLayout and move the MouseArea that handles the `messageClicked()`
signal there, thus avoiding the collisions between the two

Fixes #10950
2023-06-08 17:20:03 +02:00
Lukáš Tinkl b5a7df685a fix(QClipboardProxy): use more reliable clipboard/DND checks
- getFileSize: NIM version would crash on non-existing or remote files
- isValidImageUrl: properly detect file extensions when the URL contains
a query (eg "file.jpeg?width=1000&height=600")
2023-06-08 15:33:46 +02:00
Mikhail Rogachev 010640acd0
feat(Chat): display MutualStateUpdate system messages in 1-to-1 chats (#10847)
* feat(Chat): Display MutualStateUpdate system messages in 1-to-1 chats

* feat(ActivityCenter): Add AC notification when a user get removed by another contact

* fix: crutch fixing segfault on contact removal
2023-06-08 16:52:03 +04:00
Patryk Osmaczko dfbac49302 chore(qml): adapt assets to support mediaserver images 2023-06-08 13:09:59 +02:00
Igor Sirotin bc4492b53a
fix: Create only one instance of `StatusChatInput` (#10928)
* Chat input area preserved properties
* Fix emoji/gif/stickers popups open/close logic
2023-06-07 16:18:29 +03:00
Lukáš Tinkl 274fc98839 fix(StatusDateRangePicker): use StatusDatePicker for the range selection
- exchange the direct input with a calendar popup
- extend the validation of the range (so that from < to === true, etc)
- remove direct input components (Status[Base]DateInput.qml)

Fixes #10900
2023-06-07 10:54:44 +02:00
Khushboo Mehta 28654e0187 \chore(@desktop/wallet): Change customisation colours on desktop to match those used on mobile
fixes #10637
2023-06-02 19:48:19 +02:00
Patryk Osmaczko 35a2dd5244 [Popups]: added destroy() function in all popups by default
Also switched StatusModal to derive from StatusDialog instead
of Popup type

Closes #10149
2023-06-02 14:28:39 +03:00
Igor Sirotin 278654f694
fix: Use `StatusCursorDelegate` for password inputs (#10890) 2023-06-01 21:23:22 +03:00
Jonathan Rainville 500ee972ac go back to old model with SortProxyModel 2023-06-01 09:45:18 -04:00
Lukáš Tinkl c3b1a5f2ab feat: New date picker for Status desktop
- aligns the StatusDatePicker component with the latest UI/UX
- adds a storybook page to explore the options

Closes #10862
2023-06-01 09:43:38 -04:00
Igor Sirotin 7eed470829
fix(StatusScrollView): Change implementation to inherit ScrollView (#10789) 2023-05-31 23:58:23 +03:00
Jonathan Rainville d04e121ab5 chore: update deep link to status-app on Windows 2023-05-31 10:36:08 -04:00
Khushboo Mehta 5678d86a54 fix(@desktop/wallet): Simple Custom Date range date picker
fixes #10796
2023-05-31 14:28:22 +02:00
Cuteivist 7caa89b050
feat(@desktop/wallet): Transaction activity summary (#10809)
closes #10751
2023-05-31 11:25:16 +02:00
Cuteivist fb85c46727
fix(@desktop/wallet): Small navigation fixes (#10839) 2023-05-31 09:47:52 +02:00
Boris Melnik 91bdb5824b feat(mute): Adds intervals for muting channels and chats
Part of: #9369
2023-05-30 16:43:48 +03:00
Lukáš Tinkl 130976957f fix: blurry icons in Network Filter combobox
- detect SVG images and apply the same fix as we do in StatusIcon
- do not load a lowres (tiny) variant

Fixes #9853
2023-05-30 11:39:00 +02:00
Lukáš Tinkl 8ae48d9181 feat(StatusRoundIcon): allow loading a rounded icon from "source"
the same way it's already implemented in the underlying StatusIcon
2023-05-30 11:39:00 +02:00
Lukáš Tinkl a0020761eb fix(NavBar) right clicking on Wallet, Community Portal and Settings highlight them
check if there indeed is a popup menu

Fixes #10824
2023-05-30 11:25:45 +02:00
Sale Djenic 0b9d7e1962 fix(@desktop/keycard): updated information for listed keypairs for migration to a keycard
Fixes: #10808
2023-05-26 10:54:12 +02:00
Lukáš Tinkl bf6758b68e fix(ShowcaseDelegate): community icon is not rounded
- this needs proper bg color (transparent) and a `border.width: 0` to
work properly with the

Fixes #10754
2023-05-25 16:30:10 +02:00
Jonathan Rainville 4dd383ffb5 refactor(DnD): improve chat reorder by passing destination directly 2023-05-25 09:27:14 -04:00
Jonathan Rainville a69b8de3c3 feat(category): hook category Drag and Drop to backend correctly
Fixes #10733
2023-05-25 09:27:14 -04:00
Noelia 0862273baf feat(SQ/StatusInput): Added new property to override char limit label
Added `charLimitLabel`. If it is set, the default char limit label will be overriden.
2023-05-25 11:11:44 +02:00
Igor Sirotin 5ff4b5a435
fix(MessageContextMenu): Cleanup. Separate menu for profile. (#10729) 2023-05-19 19:07:50 +03:00
Cuteivist f7e75208a5
feat(@desktop/wallet): Added transaction address component (#10665)
closes #10583
2023-05-19 11:51:47 +02:00
Noelia 7aaf8fcec2 feat(MintToken/RemoteDestruct): Review and update remote self destruct flow
Updated strings and renamed files.

Part of #10603
2023-05-18 15:28:44 +02:00
Khushboo Mehta 3ac9edbe96 feat(@desktop/wallet): Activity Details Progress bar
fixes #10639
2023-05-18 09:26:37 -04:00
Igor Sirotin 63bbc72b54
fix(StatusMessageReply): Fix clicking on sender (#10717) 2023-05-16 18:06:38 +03:00
Michał Cieślak f3a50ebf65 fix(StatusDropdown): added to Binding to avoid warning (QTBUG-81787) 2023-05-15 12:52:17 +02:00
Michał Cieślak 79789e50d2 feat(StatusQ/Utils): ClippingWrapper component for convenient clipping with margins 2023-05-12 20:14:02 +02:00
Michał Cieślak 3b2a5995aa fix(StatusDropdown): Add workaround for QTBUG-87804
The workaround has no known side-effects and it doesn't break
any bindings.
2023-05-12 16:38:15 +02:00
Khushboo Mehta 43bd5631de feat(@desktop/wallet): Header Gradient
fixes #10333
2023-05-12 11:39:03 +02:00
Khushboo Mehta 47d971a3dd feat(@desktop/wallet): Handle large numbers in the desktop as per new design
1. Support upto numbers 999B
2. No decimal points after 1M

fixes #10590
2023-05-11 17:54:13 +02:00
Khushboo Mehta a57c0b414b feat(@desktop/wallet): New Account header
fixes #10330
2023-05-10 16:02:37 +02:00
Cuteivist ec04b8668f
Feat/10473 Updated activity list delegate and activity details header (#10580)
closes #10473
closes #10542
fixes #10408
2023-05-10 13:54:06 +02:00
Michał Cieślak 27aac8d83a feat(CommunityNewAirdropView): design-compliant token airdrop flow for collectibles 2023-05-08 11:44:10 +02:00
Alex Jbanca a674ec57a8 fix(blockChat): Disable chat input when minimal conditions are not met 2023-05-05 19:44:39 +03:00
Igor Sirotin 88cd44c302
fix(StatusMessage): Highlight rectangle size matches the background (#10553) 2023-05-04 18:37:33 +03:00
Patryk Osmaczko 606598735e fix(StatusQ/StatusBaseButton): use `Layout.*` properties properly
fixes: #10480
2023-05-04 13:31:03 +02:00
Khushboo Mehta 2401bb52bb feat(@desktop/wallet): New floating header as a drop down list
fixes #10392
2023-05-03 18:52:19 +02:00
Lukáš Tinkl b07ba7fb2d fix: personal chat item wrong width
- 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
2023-05-03 16:39:33 +02:00
Lukáš Tinkl f14fb65e44 fix(StatusChatListCategoryItem): fix flicker on hover over add channel button
do not fight with the child MouseAreas, use a TapHandler above the whole
element

Fixes #10380
2023-05-03 16:39:33 +02:00
Igor Sirotin 98d8a70572 fix: Added `SystemMessagePinnedMessage` contentType 2023-05-02 17:00:54 -04:00
Boris Melnik df88984b45 feat(image-album): Display album of images in replies
Fixes: #9957
2023-05-02 11:24:48 +03:00
Igor Sirotin abf58b008f
fix(Pairing): Added installation info to pairing results (#10418) 2023-04-29 13:33:08 +03:00
Noelia 8ccd091ebc feat(CommunityPortal/StatusCommunityCard): Prepared `StatusCommunityCard` to display permissions row
- `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
2023-04-27 16:10:20 +02:00
Noelia 3400f5e276 feat(CommunityPermissionsRow): Created new component
Permissions tags row created.

Closes #8018
2023-04-27 16:10:20 +02:00
Noelia 87fa7cfe5a feat(SQ/StatusRoundedImage): Added border
If border is specified, the image has the same margin as the border, so the component embeds a border around the image.
2023-04-27 16:10:20 +02:00
Lukáš Tinkl 9aebf588a1 fix: reduce Image cache
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
2023-04-27 13:56:39 +02:00
Cuteivist 75d17b4a07
Fix/wallet small fixes (#10427)
* fix(wallet): back button #10374

* fix(wallet): Bottom bar missing #10394

* fix(Wallet): Remove WalletFooter flickering

* fix(@desktop/wallet): Added footer for section layout
2023-04-26 19:31:34 +02:00
Boris Melnik 22ee49c551 feat(edit-message): Edit image messages
Fixes: #10072
2023-04-26 14:47:03 +03:00
Lukáš Tinkl 7d6a2bae5f fix: community logo/banner edit icon fixes
- 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
2023-04-25 21:42:03 +02:00
Igor Sirotin 70e8370aae
fix(Makefile): Bugfixes and minor improvements (#10423) 2023-04-25 18:01:19 +03:00
Lukáš Tinkl 0009ebd68f fix: device sync timestamp is wrong
- prevent QML `int` overflow
- use `LocaleUtils.formatRelativeTimestamp()` to perform the timestamp
formatting

Fixes #10412
2023-04-25 13:24:17 +02:00
Lukáš Tinkl e170af5115 chore: use the "next" icon consistently
instead of variations of "chevron-*" and rotation
2023-04-25 13:24:17 +02:00
Khushboo Mehta c94997ddec feat(@desktop/wallet): Wallet -> Send: polish Send/Bridge Modals
fixes #10344, #10321, #10320
2023-04-24 22:07:22 +02:00
Lukáš Tinkl 1fa8dffe3a fix(StatusChatListItem): fix mute icon overlapping badges 2023-04-21 17:36:52 +02:00
Michał Cieślak fb60d019b6 chore(StatusItemDelegate): api extended, internals improved
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.
2023-04-21 10:26:00 +02:00
Lukáš Tinkl 038ab08765 fix: do not display ENS name when not ENS verified
- 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
2023-04-21 00:24:32 +02:00
Lukáš Tinkl c209e7c282 fix(ActivityNotificationMessage): use ProfileUtils.displayName()
to compose the primary/secondary user names, just like we do in the
message views, or the Profile dialog
2023-04-21 00:24:32 +02:00
Stefan 691de11211 fix(Wallet) network selection and unify network implementations
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
2023-04-20 19:34:24 +02:00
Jonathan Rainville 2aa759adcf refactor(section-model): change model to be sorted to fix reorder
Part of #3364

To make the drag and drop reorder work correctly on channels, we needed to change the model again so that it was sorted in the model itself.
That is because the drag and drop gives us the value of the position it is dropped to as a single list, so dragging the second item of the second category would mean from position 5 to position to position 4, but what the backend wants is moving the item 2 to position 1.
Sorting the model enables us to get the category that is the parent of that position and call the service with the right positions and id.
It also enables us to reorder the channel in and out of the category.
See the module code to see how the calculation is done with an explanatory comment.
The model needed some changes to support that. Some of the function where changed from dataChange calls to resetModel calls, since we need to re-sort the model.
I tried using beginMove, but it would crash. Maybe there is a bug in NimQML or I used it badly, I'm not sure.
2023-04-19 12:26:15 -04:00
Alexandra Betouni f507e33cba feat(StatusChatList): adding drag n drop functionality
Closes #3364
2023-04-19 12:26:15 -04:00
Dario Gabriel Lipicar da1839fbbb feat(@desktop/wallet) reduce number of digits shown for large currency amounts
Fixes #8917
2023-04-18 10:11:18 -03:00
Lukáš Tinkl 7a5dbbd952 chore(StatusStickerButton): refactor to use StatusButton
- make it possible for StatusBaseButton to be icon-only (ie just icon, no
text, rounded if needed)
2023-04-18 13:45:38 +02:00
Igor Sirotin aefa2b9f48
fix(StatusQ): StatusQ is QML module (#10207)
* StatusQ QML module
* qzxing is static lib again
* updated StatusQ resources
* fixed Emoji lookup
* added display to tests-imports ci
2023-04-14 11:18:56 +03:00
Sale Djenic 06ba89661b chore(@desktop/wallet): object names added to wallet account related qml components 2023-04-13 19:51:10 +02:00
Lukáš Tinkl a8eed304c0 feat: implement ProfileShowcase settings
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
2023-04-12 11:39:37 +02:00
Lukáš Tinkl d180001f84 feat(StatusMenuItem): add support for "checked" indicator
- it is displayed on the trailing edge, next to the main text, iff the
item/action is `checked`
- fix the text elide (must have a width set)
- fix for setting the icon name/source/color if we directly use a
(Status)MenuItem (as opposed to going via (Status)Action)
2023-04-12 11:39:37 +02:00
Dario Gabriel Lipicar ed6ea5d90c feat(@desktop/wallet): add support for more NFTs media types
Fixes #9836
2023-04-11 12:40:38 -03:00
Noelia 7882147eaf feat(SQ/StatusItemDelegate): Added property to customize text horizontal alignment
Added property `textHorizontalAligment` to customize text horizontal alignment
2023-04-11 16:19:30 +02:00
Patryk Osmaczko f9250e7dd4 feat(storybook): add ChatAnchorButtonsPanel
iterates: #9069
2023-04-11 13:35:04 +02:00
Lukáš Tinkl 19e7c42cc2 chore: extract input cursor delegate into StatusCursorDelegate
- unified UI/UX; no code changes, just reduces code duplication
- use the correct OS/platform blink interval with
  `Qt.styleHints.cursorFlashTime`
2023-04-07 20:40:56 +02:00
Alexandra Betouni e35086f448 [StatusChatList]: added marks indicating unread msg and mentions
Closes #8265
2023-04-07 17:21:11 +03:00
Boris Melnik cbdc3e61b5 fix(images): Display image placeholder when image from album not loaded
Fixes: #9990
2023-04-07 15:42:12 +03:00
Alex Jbanca 731846c54c fix(StatusPasswordInput): Fix background image and content colors 2023-04-05 22:14:03 +03:00
Dario Gabriel Lipicar 6d7fda53f6 fix(@desktop): only allow dot as decimal separator for user input
Fixes #10125
2023-04-05 11:11:36 -03:00
Alexandra Betouni 840b9986dc fix(MembersListSelectro): tag item should be removed only when x is clicked
Closes #8259
2023-04-05 15:30:04 +03:00
Michał Cieślak 8dafdfceb8 feat(CommunityPermissions): Switch to enable/disable 'Who holds' section
Closes: #8498
2023-04-05 11:46:20 +02:00
Michał Cieślak 43196d9e31 feat(StatusGroupBox): Use StatusIcon to gray out label when disabled 2023-04-05 11:46:20 +02:00
Lukáš Tinkl c964e99b0c chore: make it possible to customize/remove the back button 2023-04-04 13:54:39 +02:00
Lukáš Tinkl 3252eaf340 fix: Excessive vertical spacing between subtitle and standard colour selector in all colour selectors
- 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
2023-04-04 11:32:55 +02:00
Lukáš Tinkl 7523b1a62b fix: draw the inner radio indicator border
... as designed/intended in Figma

plus fix a TODO, use HoverHandler instead of a MouseArea to chaneg the
mouse cursor shape
2023-04-04 11:32:55 +02:00
Lukáš Tinkl 0ebc5e4194 fix(StatusPasswordInput): enable mouse interaction
enables selecting text with mouse

Fixes: #9837
2023-04-03 21:24:46 +02:00
Sale Djenic ea53fce030 feat(@desktop/wallet): edit account reusing new "Add Account" popup
Closes: #9847
2023-04-03 14:13:53 +02:00
Sale Djenic d8b1e47984 feat(@desktop/wallet): right click context menu added for wallet accounts
Handled options from the context menu for wallet accounts:
- Copy address
- Add new account
- Add watch-only account
2023-04-03 14:13:53 +02:00
Stefan 81c3463816 feat(wallet): implement DerivationPathInput control
The enforcing of the derivation path editing rules is done in a structured
way by handling all the changes on the array of `Element` stored in
d.elements and then recomposing the HTML string to be displayed after
every change.

Main limitation is the workaround in `onTextChanged` that regenerates
the text in order to dismiss foreign characters introduced by pasting
which I couldn't find a way to disable without disabling also the ability
to copy content to clipboard.

Highlights:
- Implement DerivationPathInput control that intercepts the modifiable
keyboard events in order to edit the visible TextEdit.text while
respecting the requirements of the derivation path editing
- Implement a JS Controller that handles the logic of the
  decomposing and recomposing the derivation path string
- Add anew StatusQ with the TextEdit basic look and feel to be used
  in DerivationPathInput control without duplicating the style
- Allow passing modifiable events that are not generating characters in
  order to allow copy to clipboard
- Disable add account when control is in error state
- Limit to maximum 5 elements in the derivation path

Testing:
- Integrate the control with StoryBook for a quick preview of the
  control
- Add unit tests for the Controller basic functionality and regression
  for the main control Item
- Removed forcing x64 architecture on apple arm64 hardware from the
  storybook build configuration

Note: initially the implementation was suppose to be simple parse the
derivation path string edit elements and format it. However, I could not
find a quick way fix the circular dependency issue between editing the
text and reformatting it. The solution was to use a one way from the
structured data to the formatted string which complicates the
implementation logic.

Closes: #9890
2023-03-31 18:14:50 +04:00
Boris Melnik 3566d64f39 fix(images): Wrap text in image message
Fixes: #10044
2023-03-31 13:36:51 +03:00