Commit Graph

4202 Commits

Author SHA1 Message Date
Khushboo Mehta 9a0ce98d1b fix(@desktop/wallet): Fix for Token details view showing Dummy data. 2023-12-11 20:05:52 +05:30
Sale Djenic d587552c40 chore(walletconnect): improvements identifying pairings and sessions 2023-12-11 09:04:20 +01:00
Anthony Laibe f1c090a765 fix(@wallet): Rename edit watch address
fixes #12623
2023-12-09 10:11:09 +01:00
Anthony Laibe 693457a8bc fix(@wallet): period filter for this week/this month
fixes #12752
2023-12-07 16:54:15 +01:00
Alex Jbanca c241154337 fix(StatusChatInput): Request link previews only when the StatusChatInput text is actually changing
The `onTextChanged` event is triggered by the StatusSynthaxHighlighter whenever the text style changes even if the text string doesn't.
This event needs to be filtered before notifying the backend about the text change.
2023-12-07 14:35:50 +02:00
Michal Iskierko c96ac76103 fix(@desktop/community): Fix owner token cion display
Fix #12886
2023-12-07 09:51:27 +01:00
Sale Djenic 3854920f54 feat(walletconnect): support for auth request 2023-12-06 20:01:04 +01:00
Roman Volosovskyi b819bdb574
Mark mnemonic as shown on revealing it to the user (#12947) 2023-12-06 16:24:10 +01:00
Alexandra Betouni 7ee3b0bb57 fix(ActivityCenter): Notification title is cut when long
* Added wrapMode in Text

Closes #12870
2023-12-06 17:07:35 +02:00
Cuteivist 0b26070833
chore(@desktop/wallet): Show wallet activity (#12946) 2023-12-06 11:59:32 +01:00
Lukáš Tinkl d7614beb99 feat(token mgmt): update main wallet view layout with community assets
- update the CollectiblesView.qml view and delegates according to the
latest design
- add CollectiblesView to Storybook
- add new section for Community Collectibles
- (re)use the community badge with tooltip and link action to take the
user to the respective community
- add Community Collectibles info icon + popup
- create context menu for token delegates with actions
(Send/Receive/Manage tokens/Hide)
- add confirmation popups when hiding a single or all community tokens
- emit a toast bubble after hiding the token(s)
- fix eliding the community name inside ManageTokensCommunityTag
- some smaller fixes/cleanups

Fixes #12519
2023-12-06 11:18:36 +01:00
Mykhailo Prakhov 02589421bb
feat(desktop/communities): show community users which will be automatically joined after the ownership change in the All Members tab (#12928) 2023-12-04 20:14:13 +01:00
Cuteivist e552a01d2b
fix(@desktop/wallet): Use second chain activity details data (#12705) 2023-12-01 15:31:47 +01:00
Andrea Maria Piana 94159746ea
Add fetch messages button
This commit adds a fetch messages option in the chat.
If clicked it will re-fetch messages for that chat for 1 month.

It's disabled in production since that's not something we want to go
live with, but it's very helpful for dogfooding/debugging while message
reliability has still some issues.
2023-11-30 14:26:41 +00:00
Stefan 17c7e46917 feat(wallet) Wallet Connect: process delete_session
Requires the specific status-go changes that brings WCChangePairingState

Process delete session and update internal pairing history state

Updated testing while fighting for the issue of not deleting the session
Found out that the client requests a different topic in the delete
session request.

Also:

- update debugging UX to support session events
- update storybook to support mocking session events
- fix go test utility to account for refactoring

Updates #12858
2023-11-30 10:47:41 +01:00
Boris Melnik 82a829de0c fix(contacts): Fix new url format validation in contact request dialog from settings
Fixes: #12829
2023-11-30 01:51:24 +03:00
Lukáš Tinkl 3b60506460 feat(token mgmt): update main wallet view layout with community assets
- update the AssetsView.qml view and delegates according to the latest
design
- add AssetsView to Storybook
- add new section for Community Assets
- (re)use the community badge with tooltip and link action to take the
user to the respective community
- add Community Assets info icon + popup
- create context menu for token delegates with actions
(Send/Receive/Manage tokens/Hide)
- add confirmation popups when hiding a single or all community tokens
- emit a toast bubble after hiding the token(s)
- plus related controller/backend methods for handling the
settings-related actions
- some smaller fixes/cleanups

Fixes #12369
Fixes #12372
2023-11-29 16:13:08 +01:00
Cuteivist 8e0db2e666
fix(@desktop/wallet): Display balance for all accounts (#12632) 2023-11-29 12:19:59 +01:00
Mykhailo Prakhov 3af73a44a5
feat: show activity center notification if user must reveal addressed to join/rejoin the community (#12856) 2023-11-28 14:41:11 +01:00
Stefan 5b9e4faa8a feat(wallet) run WebEngineView as a service in background
This is required to control the resource consumption in case of no
usage of wallet connect
Hence we load the WebEngineView only if we have active pairings and
such that SDK events are expected from the paired dapps.

Also:

- Moved the generic WebEngineView communication bridge to StatusQ
- Added basic tests for WebEngineLoader
- Add a way to know when wallet is loaded (`walletReady`)
- Add storybook support for mock of nim sections as context properties

Updates: #12639
2023-11-27 22:54:11 +01:00
Sale Djenic ce0dbe533b feat(@desktop/walletconnect): aligning namespaces with WalletConnect v2.0 protocol
Closes: #12825
2023-11-27 18:15:57 +01:00
Mykhailo Prakhov 4225873cf4
fix: show info about control node offline, during rejoin to the community after the ownership change (#12869) 2023-11-27 10:53:37 +01:00
Mykhailo Prakhov fae038df3b
fix: quit from community settings in UI if member privileged role changed (#12846) 2023-11-24 16:39:09 +01:00
Jonathan Rainville d66540d74f feat(messages): add deleted system message that tells who deleted
Fixes #11712
2023-11-23 16:14:54 -05:00
Noelia 743ba6929c feat(MintToken): Validation on name / symbol if exists in standard token list
- It adds link to the corresponding tokens model in `EditCommunityTokenView`.
- It adds validation for `name` and `symbol`.
- It updates `storybook accordingly.`

Closes #12365
2023-11-23 12:07:46 +01:00
Godfrain Jacques aaa759f70c
Fix(@message) Album of images disappears from reply after reloading the application (#12806)
Fixes #10986

This PR contains 2 changes :

1- Adding of properties for the quotedMessage
2- Update of the view with the properties with Qml binding
2023-11-22 14:32:50 -08:00
Lukáš Tinkl 8791d028e6 feat: Integrate the new manage assets/collectibles panels into Settings
- display a customized floating bubble to save/apply the settings
- display a toast message on Apply with an action to jump to Wallet main
page
- add home/end/pgup/pgdown keyboard shortcuts to StatusScrollView to be
able to navigate more easily in long list views
- some smaller fixes and cleanups in wallet and settings related views

Fixes https://github.com/status-im/status-desktop/issues/12762
2023-11-22 18:29:31 +01:00
Alexandra Betouni 3d6bb8f52e fix(CommunityIntroDialog): Unable to join token gated community
Closes #12678
2023-11-22 17:09:22 +02:00
Sale Djenic 132e05a8c6 feat(@desktop/walletconnect): signing tx or personal sign via keycard
Closes: #12730
2023-11-22 11:11:19 +01:00
Khushboo Mehta 26f29a4fe6 chore(@desktop/wallet): Unifying the various "TokensTypes" across the app
fixes #12501
2023-11-21 13:02:26 +01:00
Stefan 0d10d30b30 feat(wallet): WalletConnect web engine view runs SDK in background
Validated that WebEngineView runs SDK in background and can be hidden
from view.

Closes: #12639
2023-11-21 08:08:33 +01:00
Khushboo Mehta 961babc65a fix(@desktop/wallet): Wallet TEST_MODE: account ordering is buggy when in test mode
fixes #12777
2023-11-20 19:41:22 +01:00
Alexandra Betouni 9665e07146 fix(CommunitySettings/Tokens): Updated page title
Closes #12648
2023-11-20 15:37:22 +02:00
Mikhail Rogachev 7830310591
fix(ActivityCenter): Simplify and fix AC notifications read/unread states (#12753)
* fix(ActivityCenter): Simplify and fix AC notifications read/unread states

* fix: review fixes
2023-11-20 12:53:34 +04:00
Lukáš Tinkl ba30afd202 feat: Manage Collectibles panel UI component & model
- implements a QML panel to organize collectibles
- factors out the delegates to separate files to be reusable with the
Assets tab
- adds QML tests to assess the UI functionality (move, show/hide, save/load)
- does not cover the problematic "Arrange by collection" switch (TBD
later)

Fixes: https://github.com/status-im/status-desktop/issues/12379
2023-11-17 14:12:48 +01:00
Sale Djenic 48c9e372dc chore(@desktop/walletconnect): communication between qt desktop app and loaded wallet connect sdk is made via web channel 2023-11-17 13:55:20 +01:00
Jonathan Rainville d66c1f7b0d feat(sharding): add shard info args to requestCommunityInfo calls
Fixes #12015
2023-11-16 13:32:48 -05:00
Anastasiya Semenkevich c7e5dc75bc chore: object name in ProfileLayout.qml 2023-11-16 13:17:53 +03:00
Stefan 783a755230 feat(wallet) integrate Wallet Connect sign APIs
Bump status-go that brings the sign APIs support for send transaction
and personal sign

Extend SDK

- simple SDK event handling in QML
- support session request response APIs
- pairing management

Closes #12637
2023-11-15 17:21:27 +01:00
Godfrain Jacques 9743fb2537
fix(Onboarding): Apply 2 line constraint for create password description text (#12628) 2023-11-15 07:50:27 -08:00
Noelia 611598ec71 fix(TokensStore): Warnings cleanup
Warnings cleanup
2023-11-15 16:13:15 +01:00
Stefan bcf5b64298 feat(wallet) Wallet Connect Pair integration
Implement Controller to forward requests between status-go and SDK
implementation in QML.

Other changes:

- Source Wallet Connect projectId from env vars
- Mock controller in storybook

Updates #12551
2023-11-15 15:51:50 +01:00
Mikhail Rogachev 53d19b0e5e
feat(ActivityCenter): load new notifications on scroll to bottom (#12712)
Close #9637
2023-11-15 15:29:03 +04:00
Khushboo Mehta b315d8b9b8 chore(@desktop/wallet): Wallet: explore streamlining "all tokens model" spread across different sections
closes #12424
2023-11-15 10:40:36 +01:00
Cuteivist 90cfc0842a
bug(@desktop/wallet): Fix new transaction button visuals (#12589)
* Fixed duplicated wallet activity fetch request
* Fixed not resetting tab on wallet account add
2023-11-14 11:35:18 +01:00
Boris Melnik 69783e173b fix(discord): Process `delete channel & restart import` button
Fixes: #12684
2023-11-14 13:26:39 +03:00
Noelia 3b06ae5893 fix(FinaliseOwnership): Fixed ownership decline flow
Fixes ownership decline flow where finalise popup was not correctly closed.
2023-11-13 15:24:38 +01:00
Richard Ramos de68d250a6 feat: shards.test fleet 2023-11-13 09:09:47 -04:00
Noelia 8bede5e569 feat(TransferOwnershipToasts): Created new `ToastsManager.qml` class and new nim backend for special toasts visualization
This is a first step to globalize how toasts are treated in the qml layer:
- Created `ToastsManager.qml` class to deal with all app toasts generation.
- Started moving community transfer ownership related toasts to the new manager class.
- Some small cleanup in `AppMain.qml`

Nim backend:
- Created new api method to deal with extended / action toasts.
- Updated needed model / item with new needed roles.

Closes of #12175
2023-11-10 23:38:27 +01:00
Alex Jbanca 97da863d70 fix: Use StatusSynthaxHighlighter to format the hyperlinks in the chat input
1. Move the hyperlinks formatting from qml to c++ (StatusSynthaxHighlighter)
2. Update StatusChatInputPage
3. Update tests
2023-11-10 15:55:48 +02:00
Alexandra Betouni 7d9414ef93 fix(WarningBanners): updated show/hide as per design
Closes #10607
2023-11-10 14:07:22 +02:00
MishkaRogachev e2c3cebdb5 feat(Contacts): refresh profile on live data update, review fixes 2023-11-09 15:57:03 -05:00
MishkaRogachev 84f3626390 feat(Contacts): Show profile showcase data for contacts 2023-11-09 15:57:03 -05:00
Anastasiya Semenkevich c5e37382cd chore(@AccountView.qml): object name to interact with toggle 2023-11-09 14:29:58 +03:00
Lukáš Tinkl 7183621369 feat: Manage tokens panel UI component & model
- implements the UI component to manage regular & community tokens
(drag'n'drop or context menu to reorder, show/hide, group by community)
- implements a custom C++ QAIM model which acts as a fake proxy model
for the above QML panel (internally it does all the
sorting/grouping/hiding and preserves the custom sort order)
- adds and corrects support for cascading submenus in StatusAction, and
StatusMenu[Item]
- adds support for mirrored (horizontally flipped) StatusSwitch
- adds a new SortOrderComboBox.qml (this was being used in the first
Figma version, can be ignored now, will be used by the main wallet view
later)
- some minor fixes and cleanups in the used components

Iterates #12377
Closes #12587
2023-11-09 11:45:32 +01:00
Cuteivist d73c51d380
bug(@wallet/desktop): Show toast on account removal (#12597) 2023-11-09 11:26:09 +01:00
Noelia 88c09b3941 feat(@desktop/communtiies): Set signer flow
Setting signer logic and computing fees.
AC messages for different transfer ownership states.
Declining ownership logic.
Added `CommunityTokensStore.qml` stub.
Removed deprecated property.

Issue #11964
2023-11-08 14:35:51 +01:00
Noelia e8c0275137 feat(ActivityCenter): Transfer ownership messages
- It created all possible AC notification types and notification component for transfer ownership flow.
- It adds `storybook` support for the new component.
- It adds call from activity center to finalise ownership popup.

Part of #12175

a
2023-11-08 14:35:51 +01:00
Noelia f1d4462f69 feat(FinaliseOwnershipPopup): Moved to Popups
- Moved finalise ownership and decline ownership popups from `ChatLayout` to `Popups`.
- Removed instance from `ChatLayout`.

Part of #12175
2023-11-08 14:35:51 +01:00
Boris Melnik 3030a689d8 feat(discord): Process import cancelled event
Fixes: #12504
2023-11-07 16:43:30 +03:00
Boris Melnik 99712a076b feat(discord): Import single channel from discord
Fixes: #12238
2023-11-07 16:43:30 +03: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
Patryk Osmaczko 59048b2069 feat(communities): integrate community sharding
closes: #12408
2023-11-03 17:11:18 +01:00
Sale Djenic ad7774799a feat(@desktop/keycard): joining communities using addresses migrated to a keycard
Closes: #12170
2023-11-03 16:14:18 +01:00
Sale Djenic 0e16a4e2fb feat(@desktop/general): signing flow added globally
Signing flow can be run globally (similar as authentication flow is run) emitting
`SIGNAL_SHARED_KEYCARD_MODULE_SIGN_DATA` from any part of the app
and listening for a signal `SIGNAL_SHARED_KEYCARD_MODULE_DATA_SIGNED`
to get corresponding result.
2023-11-03 16:14:18 +01:00
Sale Djenic 37e35d143e chore(@desktop/community): unused code removed 2023-11-03 16:14:18 +01:00
Anthony Laibe 8cf2c3047b fix(@wallet): hide store section for watch only accounts
fixes #12582
2023-11-03 11:33:59 +01:00
Khushboo Mehta bcdb37b0c5 fix(@desktop/wallet): Use LeftJoinodel to link networks with chainId in various models such collectibles model, assets models.
fixes #8923
2023-11-01 20:11:43 +01:00
Anastasiya Semenkevich 63112545a8 chore(@AccountContexMenu.qml): make the context menu dynamic
Removed the predefined width to the new option of including/excluding from total balance is fully visible
2023-11-01 20:32:16 +03:00
Mikhail Rogachev c7c5ec340d
feat(Profile): Profile showcase backend (#12510)
* feat(Profile): simplified approach to reuse existing models with profile

* feat(Profile): adapt nim models for view actions (move and change visibility)

* feat(Profile): save profile showcasse model changes to the db

* feat(Profile): update profile showcase models on changes from status-go

* feat(Profile): Various bug fixes for profile showcase

* fix(Profile): Fixes storing profile order and review fixes

* chore(Profile): Rename and minimise signals for updating base model filters
2023-11-01 20:54:22 +04:00
Noelia 35ed0e5987 feat(WalletStore): Created new `TokensStore`
It creates new `TokensStore` that will provide all needed token models for all app sections:
- sourcesOfTokensModel
- flatTokensModel
- tokensBySymbolModel
2023-11-01 10:58:21 +01:00
Noelia e0179bb2b5 feat(WalletSettings): Display token list as well as popup to see each token in it
- It creates new component `SupportedTokensListsPanel`.
- It updates tokens list tab content with the expected one.
- It creates new component `TokenListPopup`.
- It adds support to new created components in `storybook`.

Closes #12374
2023-11-01 10:58:21 +01:00
Noelia d302bf4782 feat(WalletSettings): Add `Manage tokens` entry in wallet settings
Closes #12376
2023-11-01 10:58:21 +01:00
Mykhailo Prakhov b414d616a6
feat: info msg if owner is not awailable after community ownership change (#12560)
feat: info msg if the owner is not available after community ownership change
2023-10-31 18:55:41 +01:00
Anthony Laibe a5aba6e4e2 fix(@wallet): send to only operable account
fixes #12509
2023-10-31 10:28:28 +01:00
Stefan ccd8c5b65f feat(wallet) Wallet Connect integration prototype
Implement a prototype of integrating [WalletConnect Web SDK]()

- integrate WalletConnect Web SDK using Node.js and packing it using
  [webpack](https://webpack.js.org/guides/getting-started/)
  - this way, we achieve the same versioning strategy for the SDK
- add WalletConnectSDK view
  - it is used to load the web SDK via a WebView (validated working on
  Mac and Windows)
- add new app dependency of WebView QT
  - also update vendor packages `Dotherside` and `nimqml` to add
    required WebView::initialize API used to initialize the WebView
    integration at the app start
- add WalletConnectPage to Storybook for quick prototyping
  - Also add dependency for WebView Qt lib
- index.js is the wrapper used to provide a simple stateful interface
  with the WC SDK
- Entry in ui/generate-rcc.go ensures the node_modules cache is excluded
  from the resource file

Notes:

- Added `com.apple.security.cs.allow-jit` entitlement when signing the
app package. This allows Execution of JIT-compiled Code Entitlement
required by the fast-path of the JavaScriptCore framework on MacOS
platforms.
- Keep some debugging entries expected to help debugging Linux package
- Removed outdated `DerivationPathInputRegressionTests` qml test

Closes #12301
2023-10-30 09:29:33 +01:00
Anastasiya Semenkevich 113810e31a chore(@AccountView.qml): add object name for confirmation popup 2023-10-27 14:56:40 +03:00
Igor Sirotin a3239d9e2b
fix `ImportCommunityPopup` issues, remove private key importing (#12554)
* feat(Storybook): added "Always on top" setting
* fix(ImportCommunityPopup): show result, remove private key support
2023-10-27 11:25:27 +01:00
Igor Sirotin 9881c15f3c
Fix/issue 12356 no shared url data (#12557)
* refactor service `parseSharedUrl` functino
* drop unused RootStore functions
* refactor Utils shared urls functions
* fix(MembersSeectprView): ignore shared url data
* drop `openContactRequestPopupWithContactData`
* fix loading of data to popup
2023-10-26 14:58:05 +01:00
Cuteivist b1a8fd6260
fix(@desktop/wallet): Prevent nil conversion to qvariant (#12546) 2023-10-26 10:01:52 +02: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
Anastasiya Semenkevich 6046e781f1 chore(@AppMain.qml): add object name for toast message 2023-10-25 12:03:48 +03:00
Anastasiya Semenkevich 5a157c5f4e chore(@AppMain.qml): fix misspelling 2023-10-25 10:18:56 +03:00
Alex Jbanca 8ac6eb8916 fix(LinkPreviews): Fixing gif hyperlink detection in StatusChatInput
The link preview model can be filtered, but the hyperlink detection needs an unfiltered model to properly highlight all URLs. This brought in the need to separate the urls model and the link previews model.
2023-10-25 09:58:38 +03:00
Alex Jbanca 3050e97c9c feat: Link preview settings to Status chat input unfurling mode
Changes:
1. Update privacy controller to react to external unfurling settings change
2. Add handler to input controller and react to external unfurling settings change
3. Small other fixes
2023-10-24 17:35:07 +03:00
Anthony Laibe 0ba9ce9c8e fix(@wallet): token not always visible
fixes #12508
2023-10-23 16:05:19 +02:00
Alex Jbanca d7707a14a8 feat: Show toast notifications when the link preview setting changes from chat input 2023-10-23 16:33:17 +03:00
Anastasiya Semenkevich 74cede573d chore(@AccountView.qml): adding object names for testing purposes 2023-10-20 13:57:20 +03:00
Anastasiya Semenkevich 1f8b44fbfb chore(@WalletKeyPairDelegate.qml): add object name for keypair delegate item 2023-10-18 16:14:21 +03:00
Igor Sirotin e5b68e8823
fix: messaging settings and url unfurling fixes (#12457)
* remove browser selection setting
* remove main whitelist settings. replace tenorGif setting with gifUnfurlingEnabled
* remove old unfurling
* move history nodes section
* disable outdated e2e tests step
* remove isGifWidgetEnabled setting
* fix: StatusMessage height when gif unfurling disabled

---------

Co-authored-by: Anastasiya Semenkevich <anastasija.ig@gmail.com>
2023-10-18 10:03:32 +01:00
Sale Djenic ae915b6036 feat(@desktop/wallet): align emoji with mobile
Closes: #12421
2023-10-17 13:21:26 +02:00
Stefan 7b24a398b0 fix(wallet) deconflict import of Utils in wallet.RootStore
Closes: #12427
2023-10-17 09:57:35 +02:00
Igor Sirotin 22ce35cf9c
feature: support url unfurling settings (#12441) 2023-10-16 17:05:55 +01:00
Lukáš Tinkl 6891c36cb6 fix: disable importing channel from discord
when another import is already in progress

Fixes #12239
2023-10-16 15:40:24 +02:00
Michal Iskierko 4bd3d672c6 fix(@desktop/communities): Fix enabling/disabling mint button
Fix #12370
2023-10-15 21:33:24 +02:00
Khushboo Mehta bc85bc8cd3 feat(@desktop/wallet): Include watch only per account
fixes #12305
2023-10-13 12:11:36 +02: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
Lukáš Tinkl 2abe0358fc feat: Add URL trust options when the user clicks on a link
- add a popup asking the user before clicking on an unfurled link
preview
- add a checkbox for the above popup to remember the trust for such
domain
- use local Settings to persist the "trust domain" locally; for
global persistence across devices, see
https://github.com/status-im/status-go/issues/4132

Closes #12388
2023-10-12 10:57:15 +02:00