Robin
b562a0f721
Create a proper one-on-one call layout for portrait screens
2026-05-13 09:54:58 +02:00
Robin and GitHub
bd2de29470
Merge pull request #3922 from element-hq/hs/compound-switch
...
Use Compound Switch component
2026-05-11 09:51:56 +02:00
Robin
069074d241
Merge branch 'livekit' into hs/compound-switch
2026-05-11 09:36:08 +02:00
Robin
d50c8e0ca9
Update Playwright test to look for 'Decline' button
...
Since the label of this button is changing in Element Web.
2026-05-06 12:37:31 +02:00
Robin and GitHub
5ca50fdb63
Merge pull request #3913 from element-hq/fkwp/feature_relax_homeserver_offline
...
[Feature] add grace period before reporting the sync loop as disconnected
2026-05-04 18:18:27 +02:00
Robin
7916360b52
Convert all grace period tests to marble tests
2026-05-04 18:01:41 +02:00
Robin and GitHub
83a9a2a86c
Merge pull request #3903 from element-hq/edge-to-edge
...
Allow calls to display edge-to-edge on mobile
2026-05-04 15:40:08 +02:00
Robin and GitHub
0470dabff2
Merge pull request #3940 from element-hq/renovate/all-minor-patch
...
Update all non-major dependencies
2026-05-01 16:10:27 +02:00
Robin
f093946a29
Allow calls to display edge-to-edge on mobile
...
By adding viewport-fit=cover to the <meta name="viewport"> header, the page now requests to be displayed edge-to-edge across the entire screen. This gives us control over what we display around camera cut-outs and system navigation UI, if the user agent supports it. I then adjusted the styles of various UI elements to ensure that they still lie within the screen's safe area.
2026-05-01 12:14:40 +02:00
Robin and GitHub
72d922468e
Merge pull request #3914 from element-hq/valere/playwright/update_test_for_latest_web
...
Dismiss the new invite confirmation modal
2026-04-23 17:06:34 +02:00
Robin and GitHub
ab05e8d250
Merge pull request #3900 from element-hq/invert-buttons-again
...
Invert the microphone and video button colors again
2026-04-21 14:09:29 +02:00
Robin
e9fd84816e
Invert the colors of the camera and microphone buttons again
...
Turns out design prefers the button colors how they were prior to fa844446b6 .
2026-04-21 11:21:48 +02:00
Robin and GitHub
2c65a75ba8
Merge pull request #3889 from element-hq/multiple-screen-shares
...
Fix visual glitches with multiple screen shares
2026-04-17 13:09:41 +02:00
Robin
7e39889f78
Fix name tags appearing in the wrong place with multiple screen shares
...
They were not properly being contained to where the MediaView is supposed to appear, causing them to all stack up on the first screen share in the spotlight tile.
2026-04-17 12:39:40 +02:00
Robin
96b343effc
Fix forward/back buttons not showing up on desktop for multiple screen shares
...
6667fc54c0 changed this CSS selector that shows buttons on hover to only target the buttons in the bottom right corner of the spotlight tile, causing the forward/back buttons to stay invisible.
2026-04-17 12:23:29 +02:00
Robin
e8963effe2
Test that the local user can see their own screen share
...
To make this test work I had to extend the mocking of the CallViewModel tests to make a local connection object exist.
2026-04-15 20:03:49 +02:00
Robin
b03524e25f
Make screen sharing work more like speaking marbles in tests
...
This approach is more flexible in that it allows even the local participant to share their screen in CallViewModel tests, and more rigorous in that it ensures that application code is reacting specifically to track publications.
2026-04-15 19:56:04 +02:00
Robin
832c5784d4
Fix local screen share not appearing in one-on-one calls
...
This was regressed by 9dfade68ee .
2026-04-15 19:55:32 +02:00
Robin and GitHub
014f645bb3
Merge pull request #3880 from element-hq/renovate/livekit-client
...
Update dependency livekit-client to v2.18.2
2026-04-15 17:00:28 +02:00
Robin and GitHub
27a6e67ce9
Merge pull request #3870 from element-hq/delete-unused-css
...
Delete unused CSS file
2026-04-15 11:09:33 +02:00
Robin and GitHub
eccf119afd
Merge pull request #3871 from element-hq/no-app-prompt
...
Get rid of the 'open in app' mobile prompt
2026-04-14 18:39:06 +02:00
Robin
438b6b8672
Move local video tile in one-on-one layout to be flush with the edge
...
Per design updates.
2026-04-13 18:30:42 +02:00
Robin
364fdb5e54
Get rid of the 'open in app' mobile prompt
...
We've determined that calls are working fine in mobile browsers these days and we no longer need it.
2026-04-13 18:05:00 +02:00
Robin and GitHub
3b0dce33a2
Merge pull request #3863 from element-hq/renovate/major-compound
...
Update Compound (major)
2026-04-13 15:30:29 +02:00
Robin
9df60310e4
Update test snapshots
2026-04-13 15:13:19 +02:00
Robin
4d1fbf0502
Delete unused CSS file
...
Seems this was mistakenly committed during initial development of the Grid component. src/grid/Grid.module.css is the one that's actually used.
2026-04-13 15:08:40 +02:00
Robin and GitHub
0025d4f882
Merge pull request #3868 from element-hq/reactions-placement
...
Fix placement of reaction and raised hand indicators
2026-04-13 15:06:44 +02:00
Robin
5daa110f7e
Make the footer move floating tiles out of the way when shown
...
If you manage to move your floating video tile to the bottom of the screen in a small landscape window, the footer obscures the tile when shown. The designs want us to smoothly move the floating tile out of the way in this case.
2026-04-13 13:13:09 +02:00
Robin
0842b2b472
Fix placement of reaction and raised hand indicators
2026-04-13 13:02:15 +02:00
Robin and GitHub
01bd1e3af7
Merge pull request #3842 from element-hq/voice-intents
...
Add intents for group voice calls
2026-04-13 12:34:45 +02:00
Robin and GitHub
330584ac31
Merge pull request #3827 from element-hq/storybook
...
Set up Storybook again
2026-04-08 17:12:16 +02:00
Robin and GitHub
417164cc11
Merge pull request #3855 from element-hq/changelog-labels
...
Reconfirm that a PR has a changelog label when new commits are pushed
2026-04-08 16:00:07 +02:00
Robin
2a5acc0207
Reconfirm that a PR has a changelog label when new commits are pushed
...
Without re-running the changelog label workflow on new commits, PRs get stuck waiting for the check after new commits are pushed.
2026-04-08 15:08:54 +02:00
Robin and GitHub
efd1b42da0
Merge pull request #3847 from element-hq/renovate/npm-vite-vulnerability
...
Update dependency vite to v8 [SECURITY]
2026-04-07 01:45:41 +02:00
Robin
31b35463fc
Fix build
2026-04-07 01:31:21 +02:00
Robin and GitHub
3c2c189830
Merge pull request #3838 from element-hq/valere/refactor_transport_discovery
...
Refactor LocalTransport discovery and validation
2026-04-06 13:24:16 +02:00
Robin
2c34e681a1
Fix tests
2026-04-06 12:58:26 +02:00
Robin and GitHub
48226795de
Merge pull request #3846 from element-hq/renovate/major-compound
...
Update dependency @vector-im/compound-design-tokens to v9
2026-04-06 12:44:47 +02:00
Robin and GitHub
a84419c8a4
Merge pull request #3824 from element-hq/renovate/major-compound
...
Update dependency @vector-im/compound-design-tokens to v8
2026-04-03 19:07:59 +02:00
Robin
f0ec4b9add
Add intents for group voice calls
...
This adds two new intents: start_call_voice and join_existing_voice. I need the latter in order to implement Element Web's new incoming call toasts, in which you can turn off your video before joining a group call. The other one, start_call_voice, exists more for completeness than anything; we don't currently want to allow users to start voice calls in group chats in our messenger clients, but maybe Cinny would, for instance.
2026-04-03 18:47:13 +02:00
Robin and GitHub
47e14ff574
Merge pull request #3832 from element-hq/renovate/all-minor-patch
...
Update all non-major dependencies
2026-04-03 18:09:58 +02:00
Robin
55eea7a968
Fix type error
2026-04-03 17:48:42 +02:00
Robin and GitHub
121160e835
Merge pull request #3837 from element-hq/renovate/npm-lodash-es-vulnerability
...
Update dependency lodash-es to v4.18.1 [SECURITY]
2026-04-03 14:57:35 +02:00
Robin
f7488a0474
Avoid redundantly showing the local user in the PiP tile
...
If you are the only participant in the call, the expanded spotlight layout would redundantly show your media in both the spotlight and PiP tiles. This is a regression; in versions 0.16.1 and earlier we would avoid showing the same user twice.
2026-04-01 13:16:39 +02:00
Robin
c9eab59161
Create a StarRatingInput story
2026-03-30 18:26:38 +02:00
Robin
4cf75c8eeb
Create a LayoutToggle story
2026-03-30 18:26:38 +02:00
Robin
2de151d94d
Set up Storybook again
2026-03-30 18:26:38 +02:00
Robin and GitHub
b40feae7da
Merge pull request #3810 from element-hq/robin/button-accessibility
...
Improve accessibility of microphone, camera, and screen share buttons
2026-03-24 17:36:36 +01:00
Robin and GitHub
e15761d8ee
Merge pull request #3703 from element-hq/renovate/compound
...
Update Compound
2026-03-24 17:20:01 +01:00
Robin
c60ed50a9d
Attempt to fix end-to-end widget tests
2026-03-24 17:04:28 +01:00
Robin
6dcd883fc3
Update test snapshots
2026-03-24 16:10:19 +01:00
Robin
c0d60b2c29
Improve accessibility of microphone, camera, and screen share buttons
...
Taking Valere's suggestion of giving them the 'switch' role. Also, the aria-label attributes were redundant (having tooltips already gives the buttons aria-labelledby).
2026-03-21 02:53:48 +01:00
Robin and GitHub
4d69565312
Merge pull request #3809 from element-hq/robin/invert-buttons
...
Invert the colors of the camera and microphone buttons
2026-03-18 14:49:55 +01:00
Robin
fa844446b6
Invert the colors of the camera and microphone buttons
...
So that they use primary color tokens when unmuted, and secondary color tokens when muted. This makes them work like the screen sharing button.
2026-03-18 11:29:55 +01:00
Robin
9dfade68ee
New ringing UI
...
This implements the new ringing UI by showing a placeholder tile for the participant being dialed, rather than an overlay.
2026-03-18 11:20:43 +01:00
Robin and GitHub
5cf5227eaa
Merge pull request #3802 from element-hq/toger5/fix-qs-glob-js-yaml-security
...
Update qs, js-yaml, glob for security patches
2026-03-13 17:31:40 +01:00
Robin and GitHub
467675ff40
Merge pull request #3785 from robintown/unpin-deps
...
Unpin Knip and LiveKit track processors
2026-03-09 14:35:52 +01:00
Robin
4c7fad30c0
Silence new Knip errors
2026-03-09 13:11:48 +01:00
Robin
4922249f41
Unpin Knip and LiveKit track processors
...
These dependencies were held back on old versions because of issues that are now resolved (see 2fca7e3719 and 44eb8acaee ).
2026-03-09 13:00:43 +01:00
Robin and GitHub
06c15ded37
Merge pull request #3747 from JakeTripplJ/screenshare-volume
...
Add volume control to screen shares
2026-03-09 10:59:45 +01:00
Robin
885a523e91
Fix formatting
2026-03-09 10:44:22 +01:00
Robin
313b8285d9
Make the screen share volume button accessible on mobile
...
In landscape orientation the button would be buried underneath the footer, which would block interaction with it. This commit changes the footer to not show in cases where a button has been pressed.
2026-03-09 10:30:42 +01:00
Robin
3bbbac23a0
Adjust dimensions of screen share volume menu
2026-03-06 23:15:59 +01:00
Robin
c7a16e9dfd
Refactor screen share volume button into a component
2026-03-06 23:14:15 +01:00
Robin and GitHub
38e79bb7db
Merge pull request #3764 from element-hq/renovate/github-actions
...
Update docker/login-action digest to c94ce9f
2026-03-02 13:44:15 +01:00
Robin and GitHub
23050075b7
Merge pull request #3765 from element-hq/renovate/embedded-package-dependencies
...
Update embedded package dependencies
2026-03-02 12:31:27 +01:00
Robin and GitHub
dcb7143359
Merge pull request #3755 from element-hq/robin/ringing
...
Convert media view model classes to interfaces
2026-02-27 17:27:58 +01:00
Robin
0ce24929dc
Add TODO to clean up encryption status code
2026-02-27 17:12:24 +01:00
Robin
9930288d1f
Move observeInboundRtpStreamStats$ into the appropriate file
2026-02-27 17:08:04 +01:00
Robin
6b51b7dc58
Split MediaViewModel into multiple files
2026-02-25 22:41:28 +01:00
Robin and GitHub
d16fa4531c
Merge pull request #3712 from element-hq/renovate/all-minor-patch
...
Update all non-major dependencies
2026-02-25 19:52:22 +01:00
Robin
44eb8acaee
Pin Knip to 5.82.1 to work around Yarn plugin issue
...
We can upgrade beyond 5.82.1 once https://github.com/webpro-nl/knip/pull/1574 is merged.
2026-02-25 19:36:00 +01:00
Robin
2fca7e3719
Roll back @livekit/track-processors to fix type error (again!)
...
While we wait for https://github.com/livekit/track-processors-js/pull/118 to be released
2026-02-25 18:03:04 +01:00
Robin
6995388a29
Convert media view model classes to interfaces
...
Timo and I agreed previously that we should ditch the class pattern for view models and instead have them be interfaces which are simply created by functions. They're more straightforward to write, mock, and instantiate this way.
The code for media view models and media items is pretty much the last remaining instance of the class pattern. Since I was about to introduce a new media view model for ringing, I wanted to get this refactor out of the way first rather than add to the technical debt.
This refactor also makes things a little easier for https://github.com/element-hq/element-call/pull/3747 by extracting volume controls into their own module.
2026-02-25 14:47:43 +01:00
Robin and GitHub
4039272e75
Merge pull request #3745 from element-hq/robin/ringing
...
Tidy up media view models a little bit
2026-02-25 14:22:03 +01:00
Robin and GitHub
4a0e89730d
Merge pull request #3728 from element-hq/renovate/matrix-widget-api
...
Update dependency matrix-widget-api to v1.17.0
2026-02-18 19:43:32 +01:00
Robin
bc238778ad
Make the type of participant$ stricter
...
It is, in fact, required to be a behavior.
2026-02-18 14:01:55 +01:00
Robin
9d37125677
Only expose RTC backend identity debug info where we actually use it
...
We only ever inspect the RTC backend identity of user media tiles. So it only needs to be exposed on the user media view model.
2026-02-18 13:46:18 +01:00
Robin
d87c3293c9
Make one-on-one layout media types stricter
2026-02-18 13:44:20 +01:00
Robin
4508002947
Test local transport code in oldest member mode
2026-02-13 14:06:44 +01:00
Robin
2a56830426
Fix existing LocalTransport tests
2026-02-13 14:06:44 +01:00
Robin
6cf859fd9e
Fix resource leak due to unsafe scope reference
2026-02-13 12:40:12 +01:00
Robin
13d131c2e9
Logically separate the advertised transport from the active transport
...
To correctly implement the legacy "oldest membership" mode, we need the code to be more nuanced about the local transport. Specifically, it needs to allow for the transport we advertise in our membership to be different from the transport that we connect to and publish media on. Otherwise, if these two are yoked together, members will resend their memberships whenever an SFU hop occurs, which an attacker could use to cause an amplified wave of state changes.
2026-02-11 13:47:15 +01:00
Robin and GitHub
d3476c0446
Merge pull request #3726 from element-hq/robin/generate-items-logs
...
Add debug logs to generateItems
2026-02-06 13:45:13 +01:00
Robin
a0209eb433
Add debug logs to generateItems
...
It's always worth having logs for when state holders are created or destroyed (these are often the most interesting things happening in the application), so I thought it would be nice to have generateItems always log for you when it's doing that.
2026-02-06 13:26:02 +01:00
Robin
d516f0f602
Make Element Call widgets compatible with Matrix 2.0 mode
...
This gives Element Call widgets the ability to send and receive sticky RTC membership events.
2026-01-21 19:59:34 +01:00
Robin and GitHub
39c24eb0f5
Merge pull request #3665 from element-hq/renovate/livekit-components
...
Update dependency @livekit/components-react to v2.9.17
2026-01-14 12:15:48 +01:00
Robin and GitHub
a567505ef5
Merge pull request #3478 from element-hq/renovate/compound
...
Update Compound
2026-01-09 13:12:48 +01:00
Robin
f89a7a8211
Fix tests
2026-01-09 12:58:06 +01:00
Robin and GitHub
de8fdcfa69
Merge pull request #3518 from element-hq/renovate/all-minor-patch
...
Update all non-major dependencies
2026-01-05 19:42:07 +01:00
Robin
6aaf2db626
Fix formatting
2026-01-05 19:35:09 +01:00
Robin
72b9b8231a
Merge branch 'livekit' into renovate/all-minor-patch
2026-01-05 19:29:24 +01:00
Robin
7817b76a8b
Downgrade react-i18next to fix type errors
...
Upgrade beyond 16.1.1 blocked by https://github.com/i18next/react-i18next/issues/1899
2026-01-05 19:28:07 +01:00
Robin
b585af41da
Fix encryption keys type error
...
See commit 174439c2f0c09cf9926c28435ba4db1345df4aee in matrix-js-sdk for the other part of the fix.
2026-01-05 19:27:39 +01:00
Robin
1006d06b04
Fix WebCodecs type error
2026-01-05 17:46:04 +01:00
Robin
b9afaab556
Upgrade i18next to resolve a type error
2026-01-05 15:52:17 +01:00
Robin
a6cdb28e45
Roll back @livekit/track-processors to fix type error
...
While we await https://github.com/livekit/track-processors-js/pull/118 to be released
2026-01-05 15:36:43 +01:00
Robin
b6ca0c4cd6
Fix tests
2026-01-05 13:55:58 +01:00
Robin
5fa170c9c9
Fix builds
2026-01-05 13:54:08 +01:00
Robin and GitHub
749ba103a7
Merge pull request #3641 from element-hq/renovate/livekit-client
...
Update dependency livekit-client to v2.16.1
2026-01-05 13:28:17 +01:00