* Improve accessibility and testability of Tooltip
Adding a role to Tooltip was motivated by React Testing Library's
reliance on accessibility-related attributes to locate elements.
* Make the ReadyWatchingStore constructor safer
The ReadyWatchingStore constructor previously had a chance to
immediately call onReady, which was dangerous because it was potentially
calling the derived class's onReady at a point when the derived class
hadn't even finished construction yet. In normal usage, I guess this
never was a problem, but it was causing some of the tests I was writing
to crash. This is solved by separating out the onReady call into a start
method.
* Rename 1:1 call components to 'LegacyCall'
to reflect the fact that they're slated for removal, and to not clash
with the new Call code.
* Refactor VideoChannelStore into Call and CallStore
Call is an abstract class that currently only has a Jitsi
implementation, but this will make it easy to later add an Element Call
implementation.
* Remove WidgetReady, ClientReady, and ForceHangupCall hacks
These are no longer used by the new Jitsi call implementation, and can
be removed.
* yarn i18n
* Delete call map entries instead of inserting nulls
* Allow multiple active calls and consolidate call listeners
* Fix a race condition when creating a video room
* Un-hardcode the media device fallback labels
* Apply misc code review fixes
* yarn i18n
* Disconnect from calls more politely on logout
* Fix some strict mode errors
* Fix another updateRoom race condition
* Fix calls on homeservers without the unstable thirdparty endpoints
Calling that endpoint throws an error and aborts the entire call. We do
check if an empty list or null is returned by that endpoint everywhere,
so returning an empty list simulates the thirdparty stuff just not being
found.
Checking for "this.supportsSipNativeVirtual" doesn't necessarily work,
since that might not be set yet and as such breaks calls that rely on
this functionality working.
fixes https://github.com/vector-im/element-web/issues/21680
Signed-off-by: Nicolas Werner <nicolas.werner@hotmail.de>
* Address review comments
* Make log message a warning
Signed-off-by: Nicolas Werner <nicolas.werner@hotmail.de>
* Make system fonts work more reliably
* Make it more sophisticated
* Missing semicolon
* Apply suggestions
* Fix formatting
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Create FontWatcher-test.tsx
* Add actual tests
* Fix some errors
* Apply suggestions
* Apply suggestions from code review
* Apply suggestions from code review
* Apply suggestions from code review
* Apply suggestions from code review
* Fix FontWatcher tests
* Correct test fixture
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix virtual / native room mapping on call transfers
By just sending them through the same code path as regular calls.
Also re-do the tests & add a test for transfer specifically.
* Optional arg
* Types
* Start a conference call in a room with 2 people + invitee rather than a 1:1
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
* Fix tests
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
* sharedInstance() -> instance
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
* Use CallState event instead of dispatching
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
* Simplifie some code
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
* Use a method to start a call instead of the dispatcher
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
* Use a method instead of place_conference_call
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
* Make terminateCallApp() and hangupCallApp() public
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
* Use hangupAllCalls() instead of the dispatcher
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
* Make dialNumber(), startTransferToMatrixID() and startTransferToPhoneNumber() public instead of using the dispatcher
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
* Use answerCall() instead of using the dispatcher
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
* Use hangupOrReject() instead of the dispatcher
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
* Update docs
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
* Improve TS
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
* Dispatch call_state, see https://github.com/vector-im/element-web/pull/18823#issuecomment-917377277
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
* Add missing import
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
When dialing a phone number, also look to see if there's a corresponding
native user for the resulting user, and if so, go to the native room
for that user.
This is out first CallHandler test(!) Switches react-sdk to use
createCall on the client object so we can stub this out in the test.
Add a bunch more stubs to the test client.
There's more stuff in this test that has scope to be used more
widely, like waiting for a certain dispatch and mocking out rooms
with particular sets of users in them: we could consider moving these
out to test utils if we wanted.