Commit Graph

274 Commits

Author SHA1 Message Date
Robin Townsend
d1e7d963a3 Merge branch 'grid-interactions' into livekit-experiment 2023-06-17 22:32:19 -04:00
Robin Townsend
afbcea7b66 Allow the grid to resize with the window width 2023-06-17 22:31:07 -04:00
Robin Townsend
4f582c6ad7 Don't change tile size when dragging 2023-06-17 22:31:07 -04:00
Robin Townsend
8b8d6fd0e0 Push large tiles upwards back into the grid 2023-06-17 22:31:01 -04:00
Enrico Schwendig
f13c0f07cc Spotlite tile order (#1118)
* Manage spotlight tile slots for speaker and presenter
2023-06-16 18:57:47 +02:00
Robin Townsend
7f5ec069a5 Merge branch 'main' into livekit-experiment 2023-06-16 12:57:06 -04:00
Robin Townsend
a96d70eefb Hide connection quality indicators behind a developer setting
Calls are an environment with high cognitive load, so it's important that we keep extra UI elements like these to a minimum and stick to what's been explicitly designed. I assume that this was here as a developer feature to diagnose reliability of the back end components, which is perfectly fine, so I've kept it behind a developer setting rather than fully removing it.
2023-06-16 10:59:57 -04:00
Robin Townsend
1b3539e873 Fix speaking indicators showing up when they shouldn't
This fixes two edge cases:

- Screenshares should never have a speaking indicator
- Speaking indicators should be hidden in 1:1 calls
2023-06-16 10:35:29 -04:00
Robin Townsend
f4f454f58e Improve the performance of dragging tiles in the large grid
By only updating the one spring of the tile that's being interacted with
2023-06-16 10:20:24 -04:00
Daniel Abramov
520f241efa Merge branch 'livekit-experiment' into livekit-load-test 2023-06-14 21:12:20 +02:00
Robin Townsend
4d5c3cd773 Merge branch 'main' into livekit-experiment 2023-06-13 12:33:46 -04:00
Daniel Abramov
556c46320d Merge branch 'livekit-experiment' into livekit-load-test 2023-06-13 17:24:15 +02:00
Daniel Abramov
6436e66adb Merge branch 'livekit-experiment' into livekit-load-test 2023-06-13 17:23:42 +02:00
Timo
5ba60962b9 add className .screenshare to videoTile (#1105)
Signed-off-by: Timo K <toger5@hotmail.de>
2023-06-13 14:39:05 +02:00
Robin Townsend
1207ecc9d7 Decouple video grid from video tile components
This is an attempt to address the feedback in https://github.com/vector-im/element-call/pull/1099#discussion_r1226863404 that the video grid and video tile components have become too tightly coupled. After this change, the only requirements that the video grid makes of its child components are:

- They accept ref, style, and item props
- They attach the ref and styles to a react-spring animated element

Note: I removed the video grid Storybook file, because I'm not aware of anyone using Storybook for development of Element Call beyond Robert, and it would take some effort to fix to work with these changes.
2023-06-12 18:21:45 -04:00
Daniel Abramov
cada6e624e Show SFU participants who are not Matrix members
So that we can load SFU with the virtual participants and get them
displayed in the grid layout. Before that only participants who are part
of the Matrix were displayed (i.e. participants who have published
m.call.member event to declare their participation).
2023-06-12 20:01:28 +02:00
Robin Townsend
142605a336 Run prettier 2023-06-12 11:40:59 -04:00
Robin Townsend
ee36d134f3 Fix tile sizes not being set 2023-06-12 11:39:30 -04:00
Robin Townsend
e49439a879 Merge branch 'main' into merge-main 2023-06-10 17:10:42 -04:00
Robin Townsend
ab97f12947 Merge branch 'main' into livekit-experiment 2023-06-09 17:22:34 -04:00
Robin Townsend
554da08628 Fix tiles not animating in the new grid layout
The new grid layout has been broken ever since upgrading react-spring, because it was apparently relying on a buggy behavior of react-spring that started transitions automatically even in imperative mode. react-spring 9.5.1 fixed that behavior, which means we now need to manually start the animations.
2023-06-09 13:52:21 -04:00
Daniel Abramov
dc98960d8d Properly use LiveKit screen sharing 2023-06-07 15:30:54 +02:00
Daniel Abramov
79018606b2 Simplify overly complicated VideoGrid 2023-06-06 13:14:02 +02:00
Daniel Abramov
b11ab01bbe Remove the unused exports with help of ts-prune 2023-06-05 19:11:38 +02:00
Daniel Abramov
8b533018ea Remove unused stuff from video-grid 2023-06-02 21:34:59 +02:00
Daniel Abramov
274b5b66aa Add connection quality indicator to the tile 2023-06-02 20:15:29 +02:00
Daniel Abramov
786c584ae2 Fix missing tile names 2023-06-02 20:07:15 +02:00
Daniel Abramov
b1d7631994 Fix LiveKit's device selection during the call 2023-06-02 19:55:41 +02:00
Daniel Abramov
991129e470 Experimental version of LiveKit with EC that works! 2023-06-02 19:12:28 +02:00
Daniel Abramov
ee1819a0b6 Quick way to replace matrix JS SDK with LiveKit 2023-06-02 17:02:47 +02:00
Robin
e3c34a7145 Merge pull request #1053 from robintown/local-tile-size
Cap the size of the local tile in 1:1 calls
2023-05-13 13:54:40 -04:00
Robin
1c9b2a24d9 Merge pull request #1054 from robintown/local-feed-contrast
Use a more noticeable shadow when displaying one tile on top another
2023-05-13 13:54:12 -04:00
Robin
7ab94cb003 Merge pull request #1056 from robintown/mute-icon
Show audio mute status next to people's names
2023-05-13 13:53:51 -04:00
Robin Townsend
caf90d851e Subtly animate active speaker indicators
A light touch of animation here is consistent with what the designs call for, and what we've done with the toolbars on video tiles.
2023-05-12 14:49:55 -04:00
Robin Townsend
a74733f6bc Show audio mute status next to people's names
Previously we were showing a combination of audio and video status icons on people's name badges, which meant there was no way to tell whether someone who had their video off was muted or not. The designs call for only microphone icons to be shown here.
2023-05-12 14:32:16 -04:00
Robin Townsend
440c617738 Use a more noticeable shadow when displaying one tile on top another
So that the local tile in 1:1 calls is more discernable against the background, especially when both participants have their video off
2023-05-12 14:16:33 -04:00
Robin Townsend
2df8488c20 Cap the size of the local tile in 1:1 calls
So that it doesn't cover up too much of the remote tile at small window sizes
2023-05-12 11:43:17 -04:00
Michael Kaye
2318f2c4a0 prettier -w 2023-05-02 17:33:56 +01:00
Michael Kaye
323dba620d Add a range of data-testid tags to be able to cleanly identify parts of the application. 2023-04-27 09:42:25 +01:00
David Baker
d1aa34b2e0 Use the native ResizeObserver where available
My dev env suddenly, with no apparent prompt, went into a mode where
it wouldn't display nay video tiles which was because they were 0x0
in the top left corner, which in turn was because the ResizeObserver
was never returning the actual bounds of the video tile container.

As per comment, this uses the native impl in preference to the ponyfill,
although in practice it looks like all our target browsers should support
it, so perhaps we could just remove the ponyfill entirely.
2023-04-20 13:39:25 +01:00
Robin Townsend
3c7f01a510 Make audio activity border match the tile border radius 2023-04-19 10:24:47 -04:00
Robin Townsend
928f1c1d6f Address review feedback 2023-04-05 12:56:50 -04:00
Robin Townsend
313ebe258e Add end-to-end audio observability
This reports via OpenTelemetry when particular participants are speaking, as an easy way to observe the delivery of audio in calls.
2023-03-22 14:23:26 -04:00
Šimon Brandner
c6f85c7ab8 Update js-sdk
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2023-02-17 15:04:10 +01:00
Robin Townsend
fbc72283d4 Add missing copyright headers 2023-02-15 16:20:58 -05:00
Enrico Schwendig
1548a5673f Extend developer view with media debug information (#909)
* interceptor: add MediaStream feed debug interceptor

- interceptor displays nick name for default and nick name + user id if user gast
- interceptor displays track id  + media stream ids
2023-02-15 16:04:05 +01:00
Robin Townsend
efbf319fa1 Explain why we cast the tile springs 2023-02-13 22:40:26 -05:00
Robin Townsend
58ed372afa Fix type and lint errors 2023-02-13 21:57:57 -05:00
Robin Townsend
69e6ba93c1 Add a switch to toggle between the new and old grids 2023-02-13 20:36:42 -05:00
Robin Townsend
5448744871 Document grid operations 2023-02-13 18:35:23 -05:00