Commit Graph

87 Commits

Author SHA1 Message Date
JC Brand
f2aa39e1c3 Identify media URLs during message parsing 2021-07-06 13:35:22 +02:00
JC Brand
01efb02f9e Make sure XEP-0363 urls are also OMEMO encrypted
by re-using `ChatBox.prototype.sendMessage`.

updates #1182
2021-07-03 00:22:03 +02:00
JC Brand
3d8852950d Add ability to let dropdown appear at the top, left-aligned
And use that for the last message in the chat history, otherwise the
dropdown is obscured.
2021-07-01 15:23:37 +02:00
JC Brand
6665bef76c Fix failing tests
Handle missing message model (happens during tests)
2021-06-29 16:00:10 +02:00
JC Brand
dff5f485c9 Split out MUC tests 2021-06-29 15:59:49 +02:00
JC Brand
335a491e0d Stop using the Jasmine "done" callback 2021-06-29 15:59:49 +02:00
JC Brand
14020125b9 Remove sinon and bump npm 2021-06-25 11:21:17 +02:00
JC Brand
7848d8cb2f Add support for decrypting XEP-0454 OMEMO media 2021-06-25 09:24:18 +02:00
JC Brand
92093d6d28 Further style tweaks for embedded media 2021-06-24 13:04:25 +02:00
JC Brand
e00bf3da36 Make sure unread messages are cleared when showing a chat 2021-06-23 17:18:32 +02:00
JC Brand
9e21813251 Move tests into new file 2021-06-23 17:11:13 +02:00
JC Brand
fb6bafdf6c Styling: Fix an offset bug
That caused empty inline code hints to be considered valid.

Also update the tests that were failing due to the changes in the
previous commit.
2021-06-22 16:54:05 +02:00
JC Brand
6dea5959cc Use API to get chat/room models in components 2021-06-22 14:47:35 +02:00
JC Brand
afd737f965 Fixes #2520 2021-06-22 12:50:50 +02:00
JC Brand
619fb538d7 Show video download URL 2021-06-17 15:50:10 +02:00
JC Brand
095d9b60cd Render audio from URLs in messages 2021-06-17 15:24:25 +02:00
JC Brand
33b426c79e Render videos from URLs in messages 2021-06-17 14:06:18 +02:00
JC Brand
2ac49fb9a5 Bugfix. Images being rendered when they shouldn't 2021-06-17 14:06:18 +02:00
JC Brand
b6f2662ad7 Set 'scrolled' flag on model.ui
This prevents it from being persisted across page loads and makes more
sense logically.

Also move markScrolled to utils and MUC unread messages indicator to bottom panel.
2021-06-17 11:39:20 +02:00
JC Brand
dc711d494f Add a placeholder to indicate a gap in the message history
The user can click the placeholder to fill in the gap.
2021-06-17 11:35:06 +02:00
JC Brand
bbc952b265 Fix MUC and headlines heaidngs, so that they still work
as ElementViews, since I ran out of time converting them to lit
components as well.

This reverts commit 1121a90af0.
2021-06-15 11:09:34 +02:00
JC Brand
1121a90af0 Revert "Turn heading into a lit component"
This reverts commit 969b2f2e11.
2021-06-15 10:52:17 +02:00
JC Brand
969b2f2e11 Turn heading into a lit component 2021-06-15 10:33:33 +02:00
JC Brand
c8304497b5 Remove onStatusMessageChanged handler
It's no longer necessary and calls a method that doesn't exist anymore.
2021-06-15 09:59:40 +02:00
JC Brand
68f0be996f Let chats be closed by calling close on the models
Instead of on the views/components.

We still have `close` methods on the components, but they are just
event handlers and not external API methods to be called by other code.
Instead `close` should be called on the model.
2021-06-15 09:59:40 +02:00
JC Brand
9fb92080f2 Get rid of the APIs to fetch chat views
This is largely a leftover from the Backbone.View days and makes less
sense now that the UI is componentized.

Ideally we don't want to call commands on the "views themselves, instead
we should be working on the the models and let the "views" update
themselves automatically.

Also, given that the `jid` attribute on the chat views might change,
especially when rendered declaratively in other frameworks like React,
a view might not be available at times where we previously might have
expected it to be (since it's been repurposed for a different JID).
2021-06-15 09:59:40 +02:00
JC Brand
825e2643ae Use flex-direction: column-reverse
On the `<converse-chat-content>` element. This removes the need for all
the manual scrolling.

Firefox finally supports this feature. Unfortunately Firefox ESR doesn't
yet, but I can't wait anymore.
2021-06-07 19:26:16 +02:00
JC Brand
90dff612c7 Re-initialize chat components when jid attribute changes 2021-06-07 12:53:35 +02:00
JC Brand
e3612e8c62 Turn the chats into Lit components
Previously they were of type ElementView from @converse/skeletor

The ElementView component is merely a helper to allow us to eventually
migrate everything to Lit
2021-06-04 15:22:52 +02:00
JC Brand
06c4ded063 Get rid of impperative code to render help messages
in 1:1 chat
2021-06-04 13:41:01 +02:00
JC Brand
ae5a13bb06 Move emojis tests into plugins 2021-06-04 12:53:03 +02:00
JC Brand
f3efbba26c Create converse-message-form component
More work on making bottom panel sub-components declarative

- Handle auto-completion in the converse-muc-message-form element
- Make message limit indicator a component
- Rename template
2021-06-04 12:53:03 +02:00
JC Brand
623deac3ec Fix race condition in test 2021-06-03 18:36:26 +02:00
JC Brand
58d96c8594 Use intersection observer to remember scrolling position 2021-06-03 18:24:55 +02:00
JC Brand
fe3e63d8c5 Declarative scrolling and rendering new messages indicator
- Increment `num_unread` when new messages appear while scrolled up
- Set scrolling state in model code (as opposed to view)
2021-06-03 14:16:03 +02:00
JC Brand
ec93e2fff3 Render chat messages loading spinner declaratively
instead of imperatively.

Add new non-persisted UI model for rendering UI changes. Currently only
being used for rendering the spinner
2021-06-03 00:02:33 +02:00
JC Brand
0756af2b30 Refactor chat close methods
- Remove the shared base-class method.
- Trigger `chatBoxClosed` on the model
- Send CSN from the model, not the view
2021-06-02 17:55:52 +02:00
JC Brand
698f3a7b15 Bugfix. Can't call tagName on a Strophe.Builder object 2021-05-13 14:41:44 +02:00
JC Brand
58b59fe263 Move more tests from spec folder 2021-05-12 12:41:19 +02:00
JC Brand
2b12f8e257 Use lodash-es everywhere 2021-05-12 12:14:28 +02:00
JC Brand
18e3b618b4 Some light chat views refactoring
- Move `showModeratorToolsModal` method from view to utils
- Move `getNicknameRequiredTemplate` method from view to utils
- Move common `close` code to base class
2021-05-07 11:23:52 +02:00
JC Brand
fdc81fa4ea Use .conversejs instead of .converse-root
as the class that designates standalone Converse components.
2021-05-06 12:21:35 +02:00
JC Brand
9c11e0dc32 Use .converse-root class instead of #conversejs id 2021-04-30 17:36:42 +02:00
JC Brand
4bdafb8ea3 Break Sass up into more files
And import where appropriate to allow for custom builds that are still styled properly
2021-04-30 17:36:40 +02:00
Shaun Wu
9ea8653ef7 Upgrade to Webpack 3
Had to make various other changes due to incompatibilities.

- Use the new `lit` package instead of `lit-html` or `lit-element`
- Drop `haunted` since it breaks the rules by specifying `type: module`
  but then doesn't import with file extensions
- Use Sass Dart instead of node-sass (fixes #2445)
- Upgrade Karma
2021-04-30 13:50:50 +02:00
JC Brand
1f7fecab21 Make show_images a prop of converse-chat-mesage-body
That way, when the setting changes and we call `requestUpdate` on
`converse-chat-message`, the body will rerender.
2021-04-26 12:08:16 +02:00
JC Brand
b678df8d23 Move tests file to plugin folder 2021-04-22 14:41:17 +02:00
JC Brand
458c51b32d Move tests for message image rendering to new file 2021-04-21 12:06:10 +02:00
JC Brand
f283dd848e Try to fix failing test on Travis 2021-04-20 10:39:05 +02:00
JC Brand
3558936b46 Refactor message component to require less attributes 2021-04-16 13:11:30 +02:00