Commit Graph

48146 Commits

Author SHA1 Message Date
Florian Duros
edecc451dd Fix MessageCompoer-test 2022-10-24 14:41:11 +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
493ee425b7 Make Element Call screensharing work on desktop (#9476) 2022-10-20 20:41:12 +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
Kerry
9ab8e330fe stabilise polls cypress test (#9472) 2022-10-20 13:04:05 +00: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
6fe8744e4d Remove performance metrics from cypress (#9467)
They are unfortunately unreliable and have been broken since June anyways.
2022-10-20 00:52:17 -06: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
Robin
f9a7d9fb7b Align video call icon with banner text (#9460) 2022-10-19 19:11:13 +00: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
RiotRobot
9ffba57f93 v3.59.0-rc.1 2022-10-18 14:12:16 +01:00
RiotRobot
028a21825c Prepare changelog for v3.59.0-rc.1 2022-10-18 14:12:15 +01:00
RiotRobot
c8a5788bca Upgrade matrix-js-sdk to 21.0.0-rc.1 2022-10-18 14:08:43 +01:00
ElementRobot
8fa1c2bf2a [Backport staging] Fix usages of useContextMenu which never pass the ref to the element (#9450)
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-10-18 14:07:55 +01:00