Commit Graph

225 Commits

Author SHA1 Message Date
Lukáš Tinkl bfe44ca4a8 fix(StatusStickerList): add scrollbar to the grid view
and remove unused properties
2023-04-18 13:45:38 +02:00
Lukáš Tinkl 70fa0bf3b2 chore(StatusStickerMarket): add scroll bar
and extract the buyPopup component out of the delegate
2023-04-18 13:45:38 +02:00
Lukáš Tinkl e506bbfd6b fix(StatusStickerPackClickPopup): fix crash
the button to (un)install would be either greyed out or result in a crash:
- we were passing the popup a wrong store (w/o networkConnectionStore)
- the condition to `greyedOut` was inverted
2023-04-18 13:45:38 +02:00
Lukáš Tinkl 86a58d3298 chore(StatusStickersPopup): unify the footer height
and fix spacing
2023-04-18 13:45:38 +02:00
Lukáš Tinkl b2f5cd2b35 fix(StatusStickersPopup): prevent overlapping load error
Fixes: when the Mainnet is unavailable you see overlap between error and
the downloaded sticker packs
2023-04-18 13:45:38 +02:00
Lukáš Tinkl 0cd7e3650a fix(StatusStickerMarket): do not confirm enabling wallet
wallet is already enabled by default for users and there's no way to
enable it if it gets disabled by using an env var
2023-04-18 13:45:38 +02:00
Lukáš Tinkl 8d322092cf fix: `packId` is a string in NIM backend
fixes the currently selected sticker pack not being highlighted in the
popup footer

The strict equality operator would no longer yield true here:
```
property int selectedPackId
...
selected: stickerPackListView.selectedPackId === packId
```
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
Jonathan Rainville fe64d0eb04 fix(mentions): fix @everyone inserting incorrectly sometimes
Fixes #10212

The problem was that we were detecting that the name was empty string and comparing to another empty string and inserting that, which is incorrect.

There was also a problem with the detection of the name being completely written. onKeyPressed didn't take into account the new letter added, onKeyReleased does.
2023-04-11 09:30:20 -04:00
Lukáš Tinkl 3f66e41929 fix: don't trigger emoji replacement prematurely
... and support all emoji ASCII aliases

- previously we used to trigger the emoji replacement immediately which
led to various bugs like being unable to get the `🍻` emoji ;)
- we now trigger the emoji replacement after typing a certain sequence
followed by a space and then check that word for a possible emoji match
- as a result, we now fully support ASCII aliases, not only those having
a length of 2 (e.g. `:D`) but all the longer ones, like `O_O`, `:-#` or
even `-___-`
2023-04-07 20:40:56 +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
Lukáš Tinkl 05b28e6f6c fix: unbreak handling "up" key event in multiline text
pressing the "down" key was working fine, the "up" key to move the
cursor to the previous line was broken

don't force the focus if it already has it and let the parent TextEdit
internals handle the event if we are not interested in it
2023-04-07 20:40:56 +02:00
Lukáš Tinkl c8877aaf97 fix: speed up emoji parsing and replacements
extract the invariant/const parts out of the inner loop
(`emojiJSON.emoji_json.filter`); greatly speeds up typing speed
2023-04-07 20:40:56 +02:00
Lukáš Tinkl 5dbc08dca3 chore: speedup channel switching
Correctly clear the chat input

We enable/disable the chat input on various occasions (switching
channels, communities, checking for the person being a contact, etc.).
When we do so, we clear the text of the input which causes all sorts of
internal handlers to get fired, namely the `onTextChanged` part which
parses the text, emojis etc... which is very time consuming. More fixes
here in the followup commits; but by using `clear()` it's much faster,
resets correctly the internal state and also doesn't fire when the input
had been empty already before. Found with QML profiler
2023-04-07 20:40:56 +02:00
Lukáš Tinkl 6385afebaf fix "Unblock" chat button
the `AbstractButton::clicked()` signal has no params; that's a leftover
from previous implementation
2023-04-07 20:40:56 +02:00
Khushboo Mehta 98a2328517 fix(@desktop/wallet): Browser: can't do transactions in simpledapp
fixes #10192
2023-04-07 14:10:46 +02:00
Khushboo Mehta 2501520dda fix(@desktop/wallet): Handle errors in ENS and stickers views. Disbale action and show tooltip.
fixes #8597, #10034
2023-04-05 19:05:54 +02:00
Jonathan Rainville e5ff0b4a6a fix(images): fix second pasted image replaces the first one
Fixes #9966

Uses the validate function to paste images so that it concatenates the previous images.
FIxes the validate function to also accept data images.
Moves the size validation function to Utils to reuse the data path prefix constant and fix the possible crash when we try to get the size of a data image.
2023-03-28 13:48:10 -04:00
MishkaRogachev 1f54d96f5f feat(Chat): Disable chat actions for non-contacts 2023-03-28 11:05:07 -04:00
MishkaRogachev ad4838e4f8 feat(Chat): Disable sending messages for non contacts
Close #9899
2023-03-28 11:05:07 -04:00
Jonathan Rainville 2f3f8f4e03 refactor(gifs): lazy load tenor api key + make search async
Fixes #9949

Only calls `setTenorAPIKey` once we need it (when doing a search or getting trending). 
Also caches the trending gifs so that they are only fetched once.
Makes the search and trending calls async by create an async tenor query async task.
2023-03-23 13:20:07 -04:00
Ivan Belyakov 02ebc8744c feat(@desktop/wallet): remove isWalletEnabled from local settings and
use ENABLE_WALLET env instead
2023-03-22 10:39:59 +03:00
Alexandra Betouni c31903d281 [StatusChatInput]: fixed focus and reply component lost
- Fixed reply message is gone when adding image
- Fixed pressing up arrow key when editing loses the cursor

Closes #9419
Closes #9139
2023-03-09 16:15:13 +02:00
Pascal Precht ce33c195cc refactor: make loading installed sticker packs asynchronous
This is a continuation of the effort to improve out app's startup time.
With these changes, installed stickers are only loaded when the sticker
popup is opened.

They are also loaded asynchronously to not block the main thread.

Closes #9435
2023-03-08 13:03:52 -05:00
Pascal Precht 433ea71d62 refactor: load recent stickers asynchronously
This postpones the loading of recently used stickers to the point
when a) the stickers popup is opened and the recent stickers tab was the
last visited one or b) when the sticker popup is open and one switches
to the recent stickers tab.

Partially closes #9435
2023-03-08 13:03:52 -05:00
Alexandra Betouni c560e9b960 fix(StatusChatInput): fixed invisible text when pasting text with emoji
Closes #3291
2023-03-01 15:25:19 +02:00
Anthony Laibe d9ed23b2d6 fix(@wallet): trim tx data 2023-02-23 14:53:45 +01:00
Lukáš Tinkl 31be818e0e fix: Pinning messages - tweaks to UI and interactions
... to help align with original design intent

- dropped date breaks before msg groups
- show full date/timestamp in the msg header
- floating "Unpin" button on mouse hover
- no padding/spacing between messages
- some smaller code cleanups and dead code removals

Fixes #9396
2023-02-17 11:22:21 +01:00
Lukáš Tinkl 42445d4b73 fix: App crashes on uploading an image containing "+" in its name
as we're dealing with local file URLs only here, we don't want to turn
the plus signs (`+`) into spaces (leads to failing to open the file,
emits an exception, crashes later on in our JS code)

Fixes #9538
2023-02-16 16:09:53 +01:00
Alexandra Betouni bb23131f0e fix(statusChatInput): do not replace text with emojis on links
Closes #8478
2023-02-16 13:20:54 +02: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
Michał Cieślak f43c3e2f2b chore(general): Move StatusSyntaxHighlighter to StatusQ, remove mock from Storybook 2023-02-09 12:48:11 +01:00
Michał Cieślak 8f25b93f96 chore(general): Move QClipboardProxy to StatusQ 2023-02-09 12:48:11 +01:00
Alexandra Betouni b037d724ed fix(StatusMessage): updated GIFs behavior
Closes #7518
2023-02-03 16:31:56 +02:00
Alex Jbanca 81a4d70932 chore(Qt5.15): Fix qml warnings after qt 5.15 migration
Fixing QML Connections warnings due to deprecated onFoo handlers. Now we're using function onFoo(params).
Fixing QML compilation error due to js filename format.
Fixing cyclic dependencies between qml components.
2023-01-31 20:39:19 +02:00
Alexandra Betouni 9a2ffc0fc7 Fix(desktopapp): adding scrollview to storybook
Cleaned up binding loop warnings related to
ScrollView and added StatusScrollView in
storybook

As part of #8864
2023-01-31 18:45:51 +02:00
Lukáš Tinkl 9cb850f67f fix(StatusChatInput): don't insert control characters
@mentions have a special `onRelease()` key handler that makes sure a
space is inserted around the mention when needed. Fix the `onRelease()`
handler to prevent control or otherwise unprintable characters being
inserted as text.

Fixes: #7685
2023-01-26 13:31:06 +01:00
Lukáš Tinkl 9eb515e3e3 chore(StatusChatInput): fixup indentation 2023-01-26 13:31:06 +01:00
Jonathan Rainville fdc0dce782 chore: remove public chat functionnalities
Fixes #8504

Removes the ability to create public chats, see public chats and even leaves previously active public chats
2023-01-25 10:05:55 -05:00
Alexandra Betouni 7f2563edf4 fix(message): removed extra markup when typing before mention
Closes #8495
2023-01-23 16:17:36 +02:00
Alex Jbanca 4e3e245675 perf(chatScroll): Fix connection warnings 2023-01-19 19:24:18 +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
Michal Iskierko 0cd2419f59 fix(@desktop/chat): Improve installing stickers code to handle disconnected state better
Use async task to install stickers

Issue #6567
2023-01-13 12:33:08 +01:00
Pascal Precht c26035e245 fix(StatusChatInput): turn off reply mode after replying with gif message
Closes #8638
2023-01-13 09:03:02 +01:00
Alexandra Betouni 985ef830df fix(StatusChatInput): fixed paste action doesn't work
Closes #7600
2023-01-12 11:24:01 +02:00
Jonathan Rainville 3a542cacf8 fix(StatusStickersPopup): fix stick pack list not scrollable
Fixes #8989
2023-01-11 16:20:19 -05:00
mprakhov 52d336b5a6 fix(@desktop/chat): allow to send attached image without text input 2023-01-11 18:27:31 +02:00
Lukáš Tinkl 6f1ecb9c8c fix(StatusChatInput): improve code highlighting in code snippet/blocks
- make the bg/fg color follow our current Style/Theme colors

Fixes: #8649
2023-01-10 15:21:45 +01:00
Lukáš Tinkl db97fbf3eb fix(StatusChatInput): return correct mention suggestions
- follow the order of properties that `ProfileUtils.displayName()` uses
elsewhere in the application
- prefer nickname or ensName over displayName if the user has them

Fixes: #8691
2023-01-09 16:41:51 +01:00
Lukáš Tinkl e947f81cd2 fix: Chat input: can't send html text from the clipboard
We always take the plain text from the clipboard but even the plaintext
can contain HTML tags, so escape those and wrap the result in a `<div
style='white-space: pre-wrap'>foo</div>` container. That way we preserve
not only the linebreaks but also any whitespace or tags.

Fixes #8919
2023-01-05 12:32:53 +01:00