Commit graph

34829 commits

Author SHA1 Message Date
Robin
e4c44dc282
Auto-approve rageshake event capabilities for virtual Element Call widgets (#9492) 2022-10-24 13:49:54 -04:00
Michael Telatynski
1497089b92
Send Content-Type: application/json header for integration manager /register API (#9490) 2022-10-24 15:30:49 +01:00
Michael Weimann
d702f4a291
When start listening to a broadcast, pause the others (#9489) 2022-10-24 16:06:58 +02:00
Florian Duros
fda4dabf6d
Fix MessageComposer test 2022-10-24 15:03:18 +02:00
Robin
daf097e123
Fix joining calls without audio or video inputs (#9486)
The lobby view was requesting a stream with both video and audio, even if the system lacked video or audio devices. Requesting one of audio or video is enough to get all device labels.
2022-10-24 09:03:05 -04:00
Florian Duros
de86221c72
Merge remote-tracking branch 'origin/develop' into feat/add-message-edition-wysiwyg-composer 2022-10-24 14:41:27 +02:00
Florian Duros
50c29502e4
Add new tests for WysiwygComposer 2022-10-24 12:35:09 +02:00
Michael Telatynski
eafc2d23a7
Ensure spaces in the spotlight dialog have rounded square avatars (#9480) 2022-10-24 08:58:36 +00:00
Michael Telatynski
913af09e61
Convert some tests from Enzyme to RTL (#9483) 2022-10-24 09:06:20 +01:00
Germain
9eb4f8d723
Add thread notification with server assistance (MSC3773) (#9400)
Co-authored-by: Janne Mareike Koschinski <janne@kuschku.de>
2022-10-24 07:50:21 +01:00
Michael Weimann
d4f1c573ad
Fix voice broadcast recording limit (#9478) 2022-10-22 13:07:39 +02:00
Michael Telatynski
8ae67aa4dd
Only show mini avatar uploader in room intro when no avatar yet exists (#9479) 2022-10-21 14:45:38 +01:00
Arnei
b3e535a7aa Merge remote-tracking branch 'upstream/develop' into last-admin-leave-room-warning 2022-10-21 14:18:18 +02:00
Michael Telatynski
fde9a527a7
Improve typing (#9474) 2022-10-21 11:44:33 +01:00
Florian Duros
c9bf7da629
Fix send message on enter 2022-10-21 10:35:54 +02:00
Florian Duros
4d089dcc05
Merge remote-tracking branch 'origin/develop' into feat/add-message-edition-wysiwyg-composer 2022-10-21 10:15:46 +02:00
Michael Weimann
5f59ce182e
Resume voice broadcast on load (#9475) 2022-10-21 09:30:02 +02:00
Šimon Brandner
f464682967
Make Element Call screensharing work on desktop (#9476) 2022-10-20 18:39:24 +00:00
Florian Duros
5987a6889b
Add styling to editing 2022-10-20 17:31:17 +02:00
Michael Weimann
9d405a905d
Set voice broadcast defaults (#9471) 2022-10-20 15:41:10 +02:00
Michael Weimann
b7996a2e49
Implement pause voice broadcast recording (#9469) 2022-10-20 12:44:41 +00:00
Germain
be281fd735
Fix threads fallback incorrectly targets root event (#9229)
* Use RelationType enum instead of hardcoded value

* Fix threads replies fallback to target last reply

* Only unsubscribe from threads events if needed

* fix strict null check

* fix strict null checks

* strict null checks

* fix typing

* Unsubscribe listeners if new thread is `null`

Co-authored-by: Faye Duxovni <fayed@element.io>

* Update strict null checks

* Type HTMLElement as nullable

* Add thread fallback integration test

* lint fix

* Update snapshots

* Add test after changing thread

* Remove test comment

* update snapshot

* fix room context test utility

* Add ThreadListContextMenu test

* lint fix

* fix thread rendering

Co-authored-by: Faye Duxovni <fayed@element.io>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-10-20 12:48:25 +01:00
Michael Weimann
d898af820b
Fix displaying already stopped broadcasts in the timeline (#9470) 2022-10-20 12:17:38 +02:00
Florian Duros
072c767b68
Fix suppression when message is empty 2022-10-20 11:52:50 +02:00
Florian Duros
5e6d0f6404
Copy css for edition 2022-10-20 10:53:57 +02:00
Michael Weimann
3c9ba3e69f
Replace Icon with webpack loaded SVG (#9464) 2022-10-20 09:04:14 +01:00
Travis Ralston
dade38086c
Fix slightly noisy warning when switching spaces (#9468)
Sometimes `spaceName` can be `undefined` because of function timing - use a different method for getting the space's name when this happens.
2022-10-20 00:52:06 -06:00
kegsay
17c3fb89c1
Store refactor: convert WidgetPermissionStore (#9458)
* Store refactor: convert WidgetPermissionStore

Add Jest tests as well.

* More tests

* Review comments
2022-10-19 22:00:53 +02:00
Element Translate Bot
7d0af1dca4
Translations update from Weblate (#9465)
* Translated using Weblate (German)

Currently translated at 99.4% (3608 of 3629 strings)

Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/de/

* Translated using Weblate (German)

Currently translated at 99.5% (3617 of 3633 strings)

Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/de/

* Translated using Weblate (German)

Currently translated at 99.7% (3624 of 3633 strings)

Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/de/

* Translated using Weblate (German)

Currently translated at 99.7% (3624 of 3633 strings)

Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/de/

* Translated using Weblate (German)

Currently translated at 100.0% (3633 of 3633 strings)

Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/de/

* Translated using Weblate (German)

Currently translated at 100.0% (3633 of 3633 strings)

Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/de/

* Translated using Weblate (German)

Currently translated at 100.0% (3633 of 3633 strings)

Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/de/

* Translated using Weblate (Italian)

Currently translated at 99.2% (3607 of 3633 strings)

Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/it/

* Translated using Weblate (Estonian)

Currently translated at 99.7% (3624 of 3633 strings)

Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/et/

* Translated using Weblate (Hungarian)

Currently translated at 99.2% (3606 of 3633 strings)

Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/hu/

* Translated using Weblate (Ukrainian)

Currently translated at 99.3% (3611 of 3633 strings)

Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/uk/

* Translated using Weblate (Czech)

Currently translated at 99.3% (3608 of 3633 strings)

Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/cs/

* Translated using Weblate (German)

Currently translated at 100.0% (3633 of 3633 strings)

Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/de/

* Translated using Weblate (Hungarian)

Currently translated at 99.8% (3629 of 3633 strings)

Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/hu/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (3633 of 3633 strings)

Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/uk/

* Translated using Weblate (Czech)

Currently translated at 100.0% (3633 of 3633 strings)

Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/cs/

* Translated using Weblate (Slovak)

Currently translated at 100.0% (3633 of 3633 strings)

Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/sk/

* Translated using Weblate (Estonian)

Currently translated at 100.0% (3633 of 3633 strings)

Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/et/

Co-authored-by: Johannes Marbach <n0-0ne+github@mailbox.org>
Co-authored-by: Weblate <translate@riot.im>
Co-authored-by: Vri <element@vrifox.cc>
Co-authored-by: random <dictionary@tutamail.com>
Co-authored-by: Priit Jõerüüt <riot@joeruut.com>
Co-authored-by: Szimszon <github@oregpreshaz.eu>
Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com>
Co-authored-by: waclaw66 <waclaw66@seznam.cz>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
2022-10-19 13:33:08 -06:00
Florian Duros
e9b285c5e0
Cleaning files 2022-10-19 19:44:49 +02:00
Florian Duros
c7e83baa36
Remove unused parameters 2022-10-19 19:29:42 +02:00
Florian Duros
63c3a55758
Disable save button until change 2022-10-19 18:57:49 +02:00
Florian Duros
0a65d919a1
Fix typing 2022-10-19 18:17:03 +02:00
Michael Weimann
07a1e9a009
Stop voice broadcast recording on redaction (#9455) 2022-10-19 16:02:48 +00:00
Kerry
d5a4718d46
Test display of qr code login section (#9456)
* Support for login + E2EE set up with QR

* Whitespace

* Padding

* Refactor of fetch

* Whitespace

* CSS whitespace

* Add link to MSC3906

* Handle incorrect typing in MatrixClientPeg.get()

* Use unstable class name

* fix: use unstable class name

* Use default fetch client instead

* Update to revised function name

* Refactor device manager panel and make it work with new sessions manager

* Lint fix

* Add missing interstitials and update wording

* Linting

* i18n

* Lint

* Use sensible sdk config name for fallback server

* Improve error handling for QR code generation

* Refactor feature availability logic

* Hide device manager panel if no options available

* Put sign in with QR behind lab setting

* Reduce scope of PR to just showing code on existing device

* i18n updates

* Handle null features

* Testing for LoginWithQRSection

* Refactor to handle UIA

* Imports

* Reduce diff complexity

* Remove unnecessary change

* Remove unused styles

* Support UIA

* Tidy up

* i18n

* Remove additional unused parts of flow

* Add extra instruction when showing QR code

* Add getVersions to server mocks

* Use proper colours for theme support

* Test cases

* Lint

* Remove obsolete snapshot

* Don't override error if already set

* Remove unused var

* Update src/components/views/settings/devices/LoginWithQRSection.tsx

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Update src/components/views/auth/LoginWithQR.tsx

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Update src/components/views/auth/LoginWithQR.tsx

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Update src/components/views/auth/LoginWithQR.tsx

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Update src/components/views/auth/LoginWithQR.tsx

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Update src/components/views/auth/LoginWithQR.tsx

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Update res/css/views/auth/_LoginWithQR.pcss

Co-authored-by: Kerry <kerrya@element.io>

* Use spacing variables

* Remove debug

* Style + docs

* preventDefault

* Names of tests

* Fixes for js-sdk refactor

* Update snapshots to match test names

* Refactor labs config to make deployment simpler

* i18n

* Unused imports

* Typo

* Stateless component

* Whitespace

* Use context not MatrixClientPeg

* Add missing context

* Type updates to match js-sdk

* Wrap click handlers in useCallback

* Update src/components/views/settings/DevicesPanel.tsx

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Wait for DOM update instead of timeout

* Add missing snapshot update from last commit

* Remove void keyword in favour of then() clauses

* test main paths in LoginWithQR

* test coverage for display of qr code section

* remove unused test props

Co-authored-by: Hugh Nimmo-Smith <hughns@matrix.org>
Co-authored-by: Hugh Nimmo-Smith <hughns@users.noreply.github.com>
Co-authored-by: Travis Ralston <travisr@matrix.org>
2022-10-19 15:11:42 +00:00
Florian Duros
e77f333fb6
Merge remote-tracking branch 'origin/develop' into feat/add-message-edition-wysiwyg-composer 2022-10-19 16:34:22 +02:00
Michael Weimann
8066b9ffbe
Prevent starting another voice broadcast (#9457) 2022-10-19 16:22:07 +02:00
kegsay
13fbd096b0
Stores refactor: convert TypingStore; rename TestStores to TestSdkContext (#9454) 2022-10-19 14:14:14 +01:00
Michael Weimann
bb0c175b7e
Display info dialogs if unable to start voice broadcasts (#9453) 2022-10-19 15:01:14 +02:00
Hugh Nimmo-Smith
3c3df11d32
Support for login + E2EE set up with QR (#9403)
* Support for login + E2EE set up with QR

* Whitespace

* Padding

* Refactor of fetch

* Whitespace

* CSS whitespace

* Add link to MSC3906

* Handle incorrect typing in MatrixClientPeg.get()

* Use unstable class name

* fix: use unstable class name

* Use default fetch client instead

* Update to revised function name

* Refactor device manager panel and make it work with new sessions manager

* Lint fix

* Add missing interstitials and update wording

* Linting

* i18n

* Lint

* Use sensible sdk config name for fallback server

* Improve error handling for QR code generation

* Refactor feature availability logic

* Hide device manager panel if no options available

* Put sign in with QR behind lab setting

* Reduce scope of PR to just showing code on existing device

* i18n updates

* Handle null features

* Testing for LoginWithQRSection

* Refactor to handle UIA

* Imports

* Reduce diff complexity

* Remove unnecessary change

* Remove unused styles

* Support UIA

* Tidy up

* i18n

* Remove additional unused parts of flow

* Add extra instruction when showing QR code

* Add getVersions to server mocks

* Use proper colours for theme support

* Test cases

* Lint

* Remove obsolete snapshot

* Don't override error if already set

* Remove unused var

* Update src/components/views/settings/devices/LoginWithQRSection.tsx

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Update src/components/views/auth/LoginWithQR.tsx

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Update src/components/views/auth/LoginWithQR.tsx

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Update src/components/views/auth/LoginWithQR.tsx

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Update src/components/views/auth/LoginWithQR.tsx

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Update src/components/views/auth/LoginWithQR.tsx

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Update res/css/views/auth/_LoginWithQR.pcss

Co-authored-by: Kerry <kerrya@element.io>

* Use spacing variables

* Remove debug

* Style + docs

* preventDefault

* Names of tests

* Fixes for js-sdk refactor

* Update snapshots to match test names

* Refactor labs config to make deployment simpler

* i18n

* Unused imports

* Typo

* Stateless component

* Whitespace

* Use context not MatrixClientPeg

* Add missing context

* Type updates to match js-sdk

* Wrap click handlers in useCallback

* Update src/components/views/settings/DevicesPanel.tsx

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Wait for DOM update instead of timeout

* Add missing snapshot update from last commit

* Remove void keyword in favour of then() clauses

* test main paths in LoginWithQR

Co-authored-by: Travis Ralston <travisr@matrix.org>
Co-authored-by: Kerry <kerrya@element.io>
2022-10-19 13:31:20 +01:00
kegsay
e946674df3
Store refactor: use non-global stores in components (#9293)
* Add Stores and StoresContext and use it in MatrixChat and RoomView

Added a new kind of class:
- Add God object `Stores` which will hold refs to all known stores and the `MatrixClient`. This object is NOT a singleton.
- Add `StoresContext` to hold onto a ref of `Stores` for use inside components.

`StoresContext` is created via:
- Create `Stores` in `MatrixChat`, assigning the `MatrixClient` when we have one set. Currently sets the RVS to `RoomViewStore.instance`.
- Wrap `MatrixChat`s `render()` function in a `StoresContext.Provider` so it can be used anywhere.

`StoresContext` is currently only used in `RoomView` via the following changes:
- Remove the HOC, which redundantly set `mxClient` as a prop. We don't need this as `RoomView` was using the client from `this.context`.
- Change the type of context accepted from `MatrixClientContext` to `StoresContext`.
- Modify alllll the places where `this.context` is used to interact with the client and suffix `.client`.
- Modify places where we use `RoomViewStore.instance` and replace them with `this.context.roomViewStore`.

This makes `RoomView` use a non-global instance of RVS.

* Linting

* SDKContext and make client an optional constructor arg

* Move SDKContext to /src/contexts

* Inject all RVS deps

* Linting

* Remove reset calls; deep copy the INITIAL_STATE to avoid test pollution

* DI singletons used in RoomView; DI them in RoomView-test too

* Initial RoomViewStore.instance after all files are imported to avoid cyclical deps

* Lazily init stores to allow for circular dependencies

Rather than stores accepting a list of other stores in their constructors,
which doesn't work when A needs B and B needs A, make new-style stores simply
accept Stores. When a store needs another store, they access it via `Stores`
which then lazily constructs that store if it needs it. This breaks the
circular dependency at constructor time, without needing to introduce
wiring diagrams or any complex DI framework.

* Delete RoomViewStore.instance

Replaced with Stores.instance.roomViewStore

* Linting

* Move OverridableStores to test/TestStores

* Rejig how eager stores get made; don't automatically do it else tests break

* Linting

* Linting and review comments

* Fix new code to use Stores.instance

* s/Stores/SdkContextClass/g

* Update docs

* Remove unused imports

* Update src/stores/RoomViewStore.tsx

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>

* Remove empty c'tor to make sonar happy

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-10-19 13:07:03 +01:00
Arnei
2f4fac0f37 Add leave room warning for last admin
If the last room administrator leaves a room, other users cannot
gain admin privilges anymore, leaving the room in an unmoderable
state. To help in avoiding this scenario without actually preventing
an admin from leaving the room if they really want, this commit
adds a new warning message.

Attempts to help with: https://github.com/vector-im/element-web/issues/2855

Signed-off-by: Arne Wilken arnepokemon@yahoo.de
2022-10-19 12:51:31 +02:00
Florian Duros
460f60e99d
First attempt to make the edition works in the WysiwygComposer 2022-10-19 12:45:51 +02:00
Michael Weimann
84f2974b57
Always show voice broadcasts tile (#9444) 2022-10-19 12:04:15 +02:00
Andy Balaam
e0ab0ac5c9
Allow pressing Enter to send messages in new composer (#9451)
* Allow pressing Enter to send messages in new composer

* Cypress tests for composer send behaviour
2022-10-19 03:07:21 +00:00
Johannes Marbach
26f3d107fd
Set relations helper when creating event tile context menu (#9253)
* Set relations helper when creating event tile context menu

Fixes vector-im/element-web#22018

Signed-off-by: Johannes Marbach <johannesm@element.io>

* Add e2e tests

* Use idiomatic test names

Signed-off-by: Johannes Marbach <johannesm@element.io>
Co-authored-by: Travis Ralston <travisr@matrix.org>
2022-10-18 13:06:43 -06:00
Michael Telatynski
2cf8a9a2f7
Stabilise Cypress login tests (#9446)
* Attempt to stabilise login tests

* More stability

* Stabilise s'more

* don't clear LS as we rely on it for enablements

* Add small delay

* Iterate

* Update login.ts
2022-10-18 17:07:23 +01:00
Kerry
b04991a962
Device manager - put client/browser device metadata in correct section (#9447) 2022-10-18 13:00:01 +00:00
kegsay
67dbb36026
Listen for and update the notification state when they change (#9438)
* Listen for and update the notification state when they change

* Remove unnecessary listeners: justify each listener left remaining

* Update removeListener too
2022-10-18 13:44:45 +01:00
Michael Telatynski
0ef8c80815
Fix usages of useContextMenu which never pass the ref to the element (#9449) 2022-10-18 13:39:59 +01:00