Commit Graph

116 Commits

Author SHA1 Message Date
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
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
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
Alexandra Betouni c560e9b960 fix(StatusChatInput): fixed invisible text when pasting text with emoji
Closes #3291
2023-03-01 15:25:19 +02:00
Alexandra Betouni bb23131f0e fix(statusChatInput): do not replace text with emojis on links
Closes #8478
2023-02-16 13:20:54 +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
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
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
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
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
mprakhov e378cb4fd9 fix(@desktop/chat): Do not allow send empty message 2022-12-22 16:23:44 -05:00
Pascal Precht f3eb29bfea feat(chat): allow for editing last user message using arrow-up key 2022-12-22 17:31:32 +01:00
Alex Jbanca 6cba8810e0 Fix Mentions in statusChatInput
1. Don't allow mention invalidation by altering mention with mouse or keyboard
2. Don't allow mention duplication on the same position
3. Clean mentions after text with mentions changes
4. Fix mention selection
5. Make sure mention is separated by text with valid separators (we're using only space)
6. Cursor will consider the mention as an object and will jump over it as it would be a single character (placing cursor inside leaves room for mention invalidation)
2022-12-21 12:23:39 +02:00
Tanguy 473da3790b fix(chat-input): Colon detection for foreign keyboard layout 2022-12-16 10:28:24 +01:00
Boris Melnik f35468963c fix(warnings): Rid off warnings
Fixes: #8293
2022-12-15 19:31:18 +03:00
Jonathan Rainville abd992b3ea fix(chat-input): fix sending images from dialog by using right prop
Fixes #8747
2022-12-12 13:48:44 -05:00
Pascal Precht 213924f6e9 feat(chat): support copy & pasting images into chat input
This adds support for receiving copied images from the clipboard
and pasting it into the chat input.

After pasting, chat input will recognize the image and render a preview
similar to how it would do it when selecting images via the file dialog.

**Also important to note**:

At the time of this PR, it seems that desktop only supports sending
jpegs to status-go. I'm not sure if this was deliberately done this way
because the protocol says it supports jpg, png, webp and gif.

Because of this, pasting for example pngs will work, however
transparency will be lost (which is also most likely the cause of #8820)

This PR operates on that assumption. So while it adds support for
copy/pasting images, it does not address the lack of file type support.

Closes #3395
2022-11-29 12:31:18 +01:00
Lukáš Tinkl 6b7eea8db9 fix: unbreak suggestions for emojis containing an underscore
- don't consider `_` as a "punct" or invalid character, some emojis like
flags do contain it in their name

Fixes: #8446
2022-11-28 12:11:23 +01:00
alexjba f8293a12f4 StatusChatInput.qml - Fixing emoij suggestion keyNav
Fixing up/down key handler when emojiSuggestions are visible
2022-11-23 16:21:31 +02:00
Jonathan Rainville 312dd72955 fix(windows): fix windows chat list empty because of popup overflow
Fixes #7906
2022-11-16 15:41:32 -05:00
Lukáš Tinkl bab0fee0ee chore(StatusChatInput): add Esc handler to close reply area
similar to what pressing Esc does when editing a message
2022-11-16 09:58:19 +01:00
Lukáš Tinkl c7efcdd09f fix(StatusChatInput) unbreak upload image shortcut
fixes shortcut Ctrl+U being broken when trying to upload an image
2022-11-16 09:58:19 +01:00
Alexandra Betouni 6fa4553d08 fix(DragnDrop): re-enabled drag and drop
Closes #7484
2022-10-12 10:34:46 -04:00
Michał Cieślak 62b0269fff fix(StatusChatInput): paste mentions without changing msg content
Closes: #7109
2022-10-12 10:24:20 -04:00
PavelS c74d1086c0 fix(@desktop/chat): update paste logic
Fixes #7772
2022-10-06 12:40:00 +02:00
PavelS 8bd194eb48 fix(@desktop/chat): add cut mention handle
Add mentions copy logic with pasting mentions with pubKey information

Fixes #7110
2022-10-06 11:44:30 +02:00
Boris Melnik 81e5aefbca fix(StatusChatInput): Move formatting menu from scroll
Closes: #7751
2022-10-05 13:51:40 -04:00
Lukáš Tinkl 99272c580c fix(ChatMessagesView): Loading spinner and scroll to bottom button overlap
- remove the extra spinner (ok'ed by John and Benj)
- use the more modern StatusIcon, w/o the unconditional ColorOverlay
- some minor cleanup

Closes: #7645
2022-10-05 02:59:37 +02:00
PavelS c931f716e8 fix(@desktop/chat): adjust chat input logic to allow emojis
Fixes #7622
2022-09-28 15:02:50 -04:00
PavelS 6a96bc93b3 fix(@desktop/chat): handle same name mentions
Fixes #7220
2022-09-22 15:01:55 +03:00
Michał Cieślak f900e7c00e fix(general): buttons font fixed, font loading refactored
Fixes: #7389
2022-09-19 22:10:25 +02:00
PavelS abb2254e59 fix(@desktop/chat): adjust message length check condition
Fixes #7131
2022-09-12 13:02:03 +03:00
PavelS cdfbb4ac87 fix(@desktop/chat): adjust mentions handing logic
Fixes #7099
2022-09-09 18:15:13 +03:00
PavelS ad484d7d01 fix(@desktop/chat): adjust emoji popup behaviour
Fixes #7094
2022-09-02 17:22:00 +03:00
Lukáš Tinkl 2606de5ccb fix(StatusEmojiPopup): fix emoji popup "y" position
it was off by `Style.current.halfPadding`
2022-09-01 19:28:21 +02:00
PavelS a01e0822b7 feat(@desktop/chat): add textformat quote option functionality
Adjust text format popup position

Fixes #6988

Requires https://github.com/status-im/StatusQ/pull/876
2022-09-01 12:45:45 +03:00
PavelS 8de1e42a0f fix(@desktop/chat): add autoscroll to cursor in chat input
Requires https://github.com/status-im/StatusQ/pull/868

Fixes #7093
Fixes #7171
2022-08-31 12:02:44 +03:00