Commit graph

160 commits

Author SHA1 Message Date
Enrico Schwendig
902263d7c9
force to allow calls without video and audio in embedded mode (#11131)
* force to allow calls without video and audio in embedded mode

* Check device access permission and introduce a only screen share call mode

* Fix strict typ check issue

* Fix i18n check issue

* Add unit tests for device selection

* Fix mocked media device query
2023-07-06 14:40:14 +00:00
Michael Telatynski
1c9ea423c9
Conform more code to strictNullChecks (#10374)
* Apply `strictNullChecks` to `src/components/views/room_settings/*`

* Restore tsconfig.json

* Conform more code to `strictNullChecks`

* Iterate

* Update matrix-widget-api

* Conform more code to `strictNullChecks`
2023-03-16 11:07:29 +00:00
Michael Telatynski
e8b92b308b
Conform more code to strict null checking (#10169)
* Conform more code to strict null checking

* delint

* Iterate

* delint

* Fix bad test
2023-02-16 09:38:44 +00:00
Robin
da30b3069c
Tweak call lobby buttons to more closely match designs (#9943) 2023-01-20 08:45:27 -05:00
Michael Telatynski
030b7e90bf
Enable @typescript-eslint/explicit-function-return-type in /src (#9788)
* Enable `@typescript-eslint/explicit-member-accessibility` on /src

* Prettier

* Enable `@typescript-eslint/explicit-function-return-type` in /src

* Fix types

* tsc strict fixes

* Delint

* Fix test

* Fix bad merge
2023-01-12 13:25:14 +00:00
Michael Weimann
526645c791
Apply prettier formatting 2022-12-12 12:24:14 +01:00
Robin
2c612d5aa1
Use native js-sdk group call support (#9625)
* Use native js-sdk group call support

Now that the js-sdk supports group calls natively, our group call implementation can be simplified a bit. Switching to the js-sdk implementation also brings the react-sdk up to date with recent MSC3401 changes, and adds support for joining calls from multiple devices. (So, the previous logic which sent to-device messages to prevent multi-device sessions is no longer necessary.)

* Fix strings

* Fix strict type errors
2022-11-28 16:37:32 -05: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
Robin
1d1860842e
Improve the tooltips on the call lobby join button (#9428)
Currently they display a redundant 'Join' tooltip on hover, and place the tooltip on the left. This removes the redundant tooltip and places the tooltip below the button, which looks a bit more balanced.
2022-10-17 08:58:38 +01:00
Šimon Brandner
54008cff58
Disconnect other connected devices (of the same user) when joining an Element call (#9379) 2022-10-14 15:17:49 +02:00
Šimon Brandner
bb71c86c8a
Add Element Call participant limit (#9358) 2022-10-07 20:16:35 +00:00
David Baker
07a5a1dc6f
Fix device selection in pre-join screen for Element Call video rooms (#9321)
* Fix device selection in pre-join screen for Element Call video rooms

As per https://github.com/vector-im/element-call/pull/609

* Update unit test

* Lint

* Hold a media stream while we enumerate device so we can do so reliably.

This means we can remove the device fallback labels.

* i18n

* Remove unnecessary useState

* Fix fetching video devices when video muted

* Actually fix preview stream code

* Fix unit test now fallback is no longer a thing

* Test changing devices
2022-09-30 17:28:53 +01:00
Robin
ace6591f43
New group call experience: Starting and ending calls (#9318)
* Create m.room calls in video rooms, and m.prompt calls otherwise

* Terminate a call when the last person leaves

* Hook up the room header button to a unified CallView component

* Write more tests
2022-09-27 07:54:51 -04:00
Robin
0d6a550c33
Prepare for Element Call integration (#9224)
* 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
2022-08-30 15:13:39 -04:00
Suguru Hirahara
731776d189
Improve link buttons and inline link buttons styling (#8238)
* Set padding: 0 to both "link" and "link_inline"

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Remove redundant settings - _SpotlightDialog.scss

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Remove redundant settings - JoinRuleSettings

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Remove redundant settings - _ViewSourceEvent.scss

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Remove redundant settings - _RoomDirectory.scss

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Remove redundant settings - _InviteDialog.scss

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Remove redundant settings - ServerOfflineDialog

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Remove redundant settings - UpdateCheckButton

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Remove redundant settings - NonUrgentEchoFailureToast

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Remove redundant settings - CallView

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Remove unused styles - _RoomSettingsDialogBridges.scss

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Replace "link" with "link_inline" for inline links

- src/components/structures/UserMenu.tsx
- src/components/views/dialogs/BetaFeedbackDialog.tsx
- src/components/views/dialogs/FeedbackDialog.tsx
- src/components/views/rooms/NewRoomIntro.tsx
- src/components/views/settings/tabs/room/NotificationSettingsTab.tsx
- src/components/views/settings/tabs/user/PreferencesUserSettingsTab.tsx
- src/components/views/spaces/SpaceCreateMenu.tsx

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Replace "link_inline" with "link" for links not inline

- src/async-components/views/dialogs/security/CreateKeyBackupDialog.tsx
- src/async-components/views/dialogs/security/CreateSecretStorageDialog.tsx
- src/components/structures/auth/ForgotPassword.tsx
- src/components/structures/auth/Registration.tsx
- src/components/views/auth/InteractiveAuthEntryComponents.tsx
- src/components/views/dialogs/security/AccessSecretStorageDialog.tsx
- src/components/views/dialogs/security/RestoreKeyBackupDialog.tsx
- src/components/views/messages/TileErrorBoundary.tsx
- src/components/views/messages/ViewSourceEvent.tsx

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Remove a redundant declaration - _SetupEncryptionBody.scss

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Remove a redundant declaration - _ReplyChain.scss

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Remove a redundant declaration - _EventTile.scss

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Remove an obsolete style block - _RoomPreviewCard.scss

The block was transferred from _SpaceRoomView.scss with ec24dc661edb6979ba901936067e5bc731dafa59

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Remove a redundant declaration - _SecurityUserSettingsTab.scss

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Remove element='span' - NewRoomIntro.tsx

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Remove redundant declarations - _ServerPicker.scss

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

* Replace 'link' with 'link_inline' - AnalyticsToast.tsx

Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2022-06-29 22:37:34 +00:00
Šimon Brandner
6574c5c3e2
Fix CallView crash (#8735) 2022-06-01 17:14:43 +02:00
Šimon Brandner
c79596cfe6
Add a way to maximize/pin widget from the PiP view (#7672) 2022-05-05 10:57:10 +02:00
Šimon Brandner
a5b795c934
Improve UI/UX in calls (#7791) 2022-05-04 17:16:38 +02:00
Travis Ralston
997d6d40bf Step 1: Remove all usage of @replaceableComponent 2022-03-28 14:02:31 -06:00
Šimon Brandner
93a9af7b3a
Keybinding code unification #3 (#7850) 2022-02-23 09:12:04 +00:00
Šimon Brandner
73899bb2e3
Switch to IPC channel for getDesktopCapturerSources (#7782) 2022-02-11 10:41:15 +00:00
Šimon Brandner
b5d11336f7
Add ability to switch between voice & video in calls (#7155) 2022-01-24 12:48:35 +00:00
Michael Telatynski
44d7d74949
Call view accessibility fixes (#7439) 2022-01-04 08:57:46 +00:00
Aaron Raimist
7b94e13a84 Merge branch 'develop' into sort-imports
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2021-12-09 08:34:20 +00:00
Šimon Brandner
cbb34d8ac7
Make CallHandler more EventEmittery (#6704)
* 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>
2021-11-30 18:09:13 +00:00
Timo
a156ba8be9
Fix video call container size inconsistencies (#7170) 2021-11-23 11:13:51 +01:00
Aaron Raimist
f3867ad0a9 Merge branch 'develop' into sort-imports 2021-10-27 21:50:56 -05:00
Šimon Brandner
64c3f0a9b1
Fix fullscreening a call while connecting (#7019) 2021-10-25 11:40:44 +01:00
Šimon Brandner
75c7daa2c9
Handle no selected screen when screen-sharing (#7018) 2021-10-25 10:44:37 +01:00
Aaron Raimist
bdc56be863
Auto fix
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2021-10-22 17:23:37 -05:00
Šimon Brandner
a2977f5b17
Update muting to work with the js-sdk call upgrade changes
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-09-18 12:40:32 +02:00
Šimon Brandner
0defc4b14b
Don't show screensharing dialog on web
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-09-11 09:03:04 +02:00
Šimon Brandner
d0b95b7d3d
Don't use a callback in setScreensharingEnabled()
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-09-01 18:38:09 +02:00
Šimon Brandner
a6cde3256e
Properly handle call change
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-08-15 12:56:29 +02:00
Šimon Brandner
012f2c9e7e
This doesn't need to be here as it was moved into CallViewButtons
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-08-11 19:16:55 +02:00
David Baker
abba7983ce
Merge pull request #6578 from SimonBrandner/task/export-call-view-buttons
Move Call View Buttons into a separate component
2021-08-11 18:09:48 +01:00
Šimon Brandner
96b651e326
Fade buttons after componentDidMount
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-08-08 11:26:57 +02:00
Šimon Brandner
d0e76a0ecd
Use CallViewButtons
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-08-08 11:20:17 +02:00
Šimon Brandner
5c90736213
Export components by default
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-08-07 08:54:40 +02:00
Dariusz Niemczyk
7513f5ba7c
Fix types 2021-08-06 16:43:20 +02:00
Dariusz Niemczyk
cba87f433b
Fix merge conflicts 2021-08-06 16:31:04 +02:00
Dariusz Niemczyk
3b002c4c1f
Merge remote-tracking branch 'origin/develop' into jitsi-picture-in-picture
* origin/develop: (100 commits)
  Add comments to isRegionalIndicator
  Stop voice messages that are playing when starting a recording
  Properly set style attribute on shared usercontent iframe
  Fix in-call context menus when in PiP mode (#6552)
  Extract tooltipYOffset to a const
  Increase yOffset by 4px away
  i18n
  Post-merge conflict resolution and improve alignment of tooltips
  Fix image & blurhash info when skipping thumbnail due to thresholds
  Skip sending a thumbnail if it is not a sufficient saving over the original
  Null guard space inviter to prevent the app exploding
  Remove seams from pin icon
  Appease Jest
  Fix worklet reference for new webpack pipeline
  i18n
  Update copy
  Fix wrong cursor being used in PiP
  Fix voice feed cut-off
  Use flex-start as it has more universal support
  Wrap cases in {}
  ...
2021-08-06 13:25:14 +02:00
Travis Ralston
3b73c17465
Merge pull request #6181 from pvagner/voip-a11y
Make call control buttons accessible to screen reader users
2021-08-05 13:36:17 -06:00
Andrew Morgan
df888a1886
Fix in-call context menus when in PiP mode (#6552)
Mounting them as children when in PiP mode doesn't work. Condition mounting
the context menus as children of the current component based on whether PiP
mode is active.
2021-08-05 16:33:22 +01:00
Michael Telatynski
b860acca80 Extract tooltipYOffset to a const 2021-08-05 14:43:44 +01:00
Michael Telatynski
e1b62ae38b Increase yOffset by 4px away 2021-08-05 14:20:31 +01:00
Michael Telatynski
a8b050a385 Post-merge conflict resolution and improve alignment of tooltips 2021-08-05 13:37:23 +01:00
Dariusz Niemczyk
389d0b2d4a
Another fix for indentation 2021-08-03 15:21:14 +02:00
Dariusz Niemczyk
a0b0a91d08
Fix ident 2021-08-03 14:03:35 +02:00
Dariusz Niemczyk
29e9db44a3
Another fix to the TS types 2021-08-03 13:30:14 +02:00