Env vars were read correctly and evaluated during the runtime, but then
assigned to a const evaluated during the compile time and that const was
used in the code, leading to ignoring a real env value.
Updating the `Undo` test that compares the `Undo` done in StatusChatInput with a standard TextEdit component.
Undo/Redo feature was changed by https://github.com/status-im/status-desktop/pull/12262. Now we're using a custom undo/redo logic and the undo is more granular as opposed to TextEdit.
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
- track the import progress manually as
`root.store.getCommunityDetails(key)` can optionally return `null`
immediately if the community is not known and launch an async task
- as an additional measure, since the above async call sometimes never
finishes, add a `Timer` that unsets the internal `loading` state
Fixes#12358
It will default to `true` for Linux builds except release ones.
This setting can always be overriden manually for any build.
Resolves:
https://github.com/status-im/status-desktop/issues/12412
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Because the environment variable name is far too generic and barely
means anything. It needs to clearly indicate that it's supposed to be
used at runtime and it changes how the Status app behaves.
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Use of TEST_ENVIRONMENT variable is just adding confusion, since that
variable is supposed to be used at runtime and not build time.
Signed-off-by: Jakub Sokołowski <jakub@status.im>
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
Introducing TextEditHyperlinksFormatter.qml. This component is attached to a text edit and will provide the hyperlinks formatting based on the urls detected in the text. The URL detection is implemented in the backend and this component will receive the urls as a model. The formatting is done using regular expressions and the hyperlinks are inserted automatically in the TextEdit component. The purpose of this component is to insert the hyperlinks, remove the hyperlinks and update the hyperlinks style when a specific hyperlink needs to be highlighted.
+ integrate in StatusChatInput
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
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
1. Updating the link preview model to allow remove URL data. This will discard the link preview data and mark the item as immutable. When an item is immutable it won't accept further updates.
2. Remove reset model when the model urls is changing. Use insert/update/remove rows to avoid any unnecessary UI updates and visual artefacts.
2. Add reload link API. It will request again the link preview
- 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/4132Closes#12388