Commit Graph

90 Commits

Author SHA1 Message Date
Igor Sirotin fc09027fcd
fix(LinkPreviewMiniCard): dark theme background color (#12733) 2023-11-15 08:00:25 +00:00
Igor Sirotin 52dd0abbce
feature: live status link previews (#12613)
* feat: live received status link previews
* link preview cards: active members count
* update `requestCommunityInfo` to new backend. Add `requiredTimeSinceLastRequest` arg
2023-11-06 19:26:44 +00:00
Alex Jbanca 4a30d13bdc
feat(LinkPreviews): Integrate Link previews with the backend (#12523)
* 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
2023-10-25 18:20:02 +03:00
Alex Jbanca 337a81fc49 fix: Update link preview border to match the new design
+ fix link preview highlighting
2023-10-23 18:53:34 +03:00
Michał Cieślak ce18a52171 chore(StatusChatInput): Move inline LinkPreviewSettingsCard's menu to separate file
Because of https://bugreports.qt.io/browse/QTBUG-90740 inline context menu causes tests for StatusChatInput crashing (stack overflow) on 5.15.2 (this version is used on CI). The easiest option to solve that problem is moving inline component to a separate file.

Closes: #12435
2023-10-13 16:20:09 +02:00
Igor Sirotin 520d34240a
feature: support unfurled Status links (contact/community/channel) (#12303)
* chore: move `LinkPreviewThumbnail` to a separate file
2023-10-13 14:36:07 +01:00
Alex Jbanca 331f27b52a feat: highlight the hovered hyperlink and link preview 2023-10-12 15:46:20 +03:00
Alex Jbanca fcd9567677 feat: Add settings card to control link previews settings in chat input
This commit adds the link preview settings card in the chat input area and connects the settings to the controller.

Not included in this commit: Backend for the preserving the settings, syncing the settings and enforcing the settings on the backend side.

Whenever an url is detected in the chat input area, the link preview settings card is presented. This card enables the user to choose one of the following options:

1. `Show for this message` - All the link previews in the current message will be loaded without asking again. The current message can be defined as the message currently typed/pasted in the chat input. Deleting or sending the current content is resetting this setting and the link preview settings card will be presented again when a new url is detected.
2. `Always show previews` - All the link previews will be loaded automatically. The link preview settings card will not be presented again (in the current state, this settings is enabled for the lifetime of the controller. This will change once the settings are preserved and synced)
3. `Never show previews` - No link preview will be loaded. Same as the `Always show previews` option, this will be preserved for the lifetime of the controller for now.
4. Dismiss (x button) - The link preview settings card will be dismissed. It will be loaded again when a new link preview is detected

The same options can be loaded as a context menu on the link preview card.

Changes:
1. Adding `LinkPreviewSettingsCard`
2. Adding the settings context menu to `LinkPreviewSettingsCard` and `LinkPreviewMiniCard`
3. Connect settings events to the nim controller
4. Adding the controller logic for settings change
5. Adding the link preview dismiss settings flag to the preserverd properties and use it as a condition to load the settings.
6. Adding/Updating corresponding storybook pages
2023-10-12 15:40:01 +03:00
Alex Jbanca 422bb2c064 feat: Generate link previews in StatusChatInput - Small updates + Add basic zoom to Storybook InspectionWindow 2023-10-12 14:08:28 +03:00
Alex Jbanca 3ce9d66d25 feat: Generate link previews in StatusChatInput - introduce ChatInputLinksPreviewArea
This component is a wrapper for LinkPreviewMiniCard and StatusChatInputImageArea. The purpose of this component is to arrange the cards in a row layout and provide scrolling behaviour. This component also has an opacity mask that will provide a fade out appearance when the items are scrolled out of view.

+ adding storybook page
+ integrate ChatInputLinksPreviewArea in StatusChatInput
2023-10-12 14:08:28 +03:00
Alex Jbanca 2c8ad61947 feat: Generate link previews in StatusChatInput - introduce LinkPreviewMiniCard
Adding LinkPreviewMiniCard component based on Figma designs. This component is similar to LinkPreviewCard, but has less info and a different format.

There is also some additional functionality attached to this card: close button, reload button and hovered state. The LinkPreviewMiniCard can have multiple states, based on content type and loading state.

+ Adding storybook page

Figma design: https://www.figma.com/file/Mr3rqxxgKJ2zMQ06UAKiWL/💬-Chat⎜Desktop?type=design&node-id=22341-184809&mode=design&t=151TjdzkzI7flR4P-0
2023-10-12 14:08:28 +03:00
Lukáš Tinkl 78b4fee587 fix: Add Copy/Open Link as context menu actions on GIF message previews
also fix the issue of not having the respective image context menu for
the new unfurled links component

Fixes #12183
2023-10-10 12:27:46 +02:00
Alex Jbanca 7c8436f492 feat: Adding new user profile cards for link previews 2023-09-20 19:56:18 +03:00
Alex Jbanca a072286675 Update ui/imports/shared/controls/chat/LinkPreviewCard.qml
Co-authored-by: Igor Sirotin <sirotin@status.im>
2023-09-18 09:28:22 +03:00
Alex Jbanca 7b6281a6c6 feat: Implement the new Link Preview cards
Implementing the new design for the following preview types:
 - Community and channel
 - General link previews (Youtube, github etc)
 - Image link preview

The storybook implementation has all these links available for testing.
Missing features in the app:
 - Logo (favicon)
 - Community card
 - Image preview details (title, domain name)
2023-09-18 09:28:22 +03:00
Khushboo Mehta 1d99d8ae97 chire(@desktop/wallet): Streamline send modal folder structure
fixes #12140
2023-09-15 13:43:59 +02:00
Lukáš Tinkl 620c7a746d feat(Settings/Communities): implement new communities list
Closes #11145
2023-06-23 16:48:26 +02:00
Alex Jbanca ef837a9c9c fix(StatusQ): Dynamic width calculation for StatusMenu 2023-06-21 14:42:00 +03:00
Boris Melnik 91bdb5824b feat(mute): Adds intervals for muting channels and chats
Part of: #9369
2023-05-30 16:43:48 +03:00
Igor Sirotin 5ff4b5a435
fix(MessageContextMenu): Cleanup. Separate menu for profile. (#10729) 2023-05-19 19:07:50 +03: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
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
Igor Sirotin 7ebfcd0183
fix(SendContactRequestModal): Implemented contact info request and loading UI (#10177) 2023-04-06 10:56:50 +03:00
Igor Sirotin 33d38a4081 fix: Device syncing
- Added local pairing signals
- Remove slash ending from keystorePath
- Implemented localPairingState. Fixed sync new device workflow. 
- Error message view design update 
- Moved local pairing status to devices service
- ConnectionString automatic validation
- Async inputConnectionString
- Added all installation properties to model. Minor renaming.
- Removed emoji and color customization
- Show display name, colorhash and color in device being synced
- Add timeout to pairing server
- Add device type
Fix `DeviceSyncingView` sizing. Fix `inputConnectionString` async task slot.
2023-03-16 00:27:21 +13:00
Lukáš Tinkl 1a96700bb8 fix(ProfileHeader): Settings/Profile/avatar design updates
- correct margins, spacing, position for the avatar image
- action button in the top right corner
- fixup the context menu

Fixes #9682
2023-03-07 11:27:03 +01:00
Anthony Laibe d9ed23b2d6 fix(@wallet): trim tx data 2023-02-23 14:53:45 +01:00
Alex Jbanca f9f860a215 fix(LinksMessageView): Refactor LinksMessageView to remove business logic from qml
LinksMessageView component will receive the urls from nim as string and it will only forward the string to getLinkPreviewData slot implemented in nim together with some settings (supported img extensions and unfurling preferences)
On nim side the urls will be parsed and validated using the settings received from qml.
Images are now validated before sending them to the UI using the HEAD request.
2023-02-14 08:55:24 +02:00
Lukáš Tinkl b2328d6643 chore: Consolidate date/time formatting
- simplify locale settings
- extract/fix datetime related functions into LocaleUtils
- port code to the new LocaleUtils

Closes #7230
2023-01-17 16:42:34 +01:00
Jonathan Rainville 67e0df17e1 test(contact): add a test that sends a contact request from the chat
Fixes #6883
2023-01-05 15:21:38 -05:00
Igor Sirotin e3bfdc0f09 fix(StatusPopupMenu): Refactoring 2022-12-02 10:30:50 +03:00
Lukáš Tinkl 9559789030 chore: reduce the number of (verification) RPC calls
- 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
2022-12-01 16:50:23 +01:00
Michał Cieślak 4de8c6c313 fix(MyProfileSettingsView): Temporary image cropped properly
Closes #8520
2022-12-01 16:11:40 +01:00
Michał Cieślak b64dcaa14f fix(general): removed not working code for cropping tmp profile image
It was a source of warnings in the app and storybook.

Closes: #8519
2022-12-01 15:13:46 +01:00
Boris Melnik 13acb5730d fix(profile-settings): Add usage dirty values for preview and load image profile on save
Closes: #7920 #7917
2022-11-14 14:59:46 +03:00
Khushboo Mehta aec7a30d03 feat(@desktop/wallet): Updated UI for bridge and multi routing support
fixes #7334
2022-10-26 18:48:30 +02:00
Alexandra Betouni e617c8981f fix(SendRequestModal): fixing spacing issues
Closes #6941
2022-10-24 17:28:17 +03:00
Lukáš Tinkl 7a407662e2 feat: New Profile Modal
Fixes: #7360
2022-10-17 12:05:54 +02:00
Pascal Precht bf14b06d55 feat(CreateCommunityPopup): add discord import progress panel and discord message handling
This adds the UI plus all necessary models and signal handling to render
discord import progress in the desktop application.

It also introduces message handling for discord chat message types.

Requires status-im/status-go#2826 to function

Co-authored with @caybro
2022-10-06 09:13:57 +02:00
Lukáš Tinkl a209d39881 fix: ENS name issues
- don't display identicon rings for contacts with an ENS name
- prefer the at-form (@foo-user) whenever possible, and don't display their
  username or pubkey unless they are locally given a nickname
- show compressed keys everywhere instead of the regular ones

Fixes: #7319
Fixes: #7515
2022-09-26 22:38:02 +02:00
Alexandra Betouni e1c548696f feat(Desktop)!: Updating desktop app due to IconSettings refactor
As part of https://github.com/status-im/StatusQ/issues/781
2022-09-02 18:41:21 +03:00
Igor Sirotin 5c909cae6c fix(Profile): Added menu to remove profile image 2022-09-01 15:48:22 +03:00
Igor Sirotin 66b79fbda8 tests: Can change own display name in ProfilePopup 2022-09-01 15:31:50 +03:00
Khushboo Mehta 8eb328bae7 fix(@desktop/sugnup): Profile omage chosen during signup sould be saved for the user and squish test for the same
fixes #6861
2022-08-24 11:21:16 +02:00
Igor Sirotin 42a1cf995c fix(ChatMessagesView): Usage of `StatusMessage` WIP 2022-08-20 03:02:41 +03:00
Alexandra Betouni ffbe16da3e fix(Chat/UserImage): corrected user image dimensions
Closes #6852
2022-08-16 19:37:19 +03:00
Alexandra Betouni 504b4f5947 fix(Chat): big space between username and time
Closes #6832
2022-08-16 18:36:20 +03:00
Jonathan Rainville 739437df56 Revert "fix(Profile): Added menu to remove profile image"
This reverts commit f60dacc45d.
2022-08-09 15:09:45 -04:00
Igor Sirotin f60dacc45d fix(Profile): Added menu to remove profile image 2022-08-09 10:46:31 +03:00
Kamil K ea00d4c46d fix(@desktop): reduce emoji hash icon size
fixes: #6300
2022-07-24 12:30:50 -04:00
Lukáš Tinkl 89f42c9fc3 fix(MessageContextMenuView): popup menu's fixes
- add the (Un)Mark as Untrustworthy action to the menu
- fix the placement and visuals of the (Un)Block menu item
- add a missing separator above these
- store the blocked and trust details in `d.contactDetails` and properly
  refresh it upon opening the menu
- some other smaller UI fixes to align the menu to the design

Closes #6538: Stranger's (untrustworthy) menu doesn't match the Design

Closes #6535: The stranger's card doesn't match the Design
2022-07-21 15:55:55 -04:00