Robin
608695fc95
Performance: Enable React Compiler
...
With the React Compiler, our component code is transformed at build time to automatically apply various forms of memoization. This changes the runtime semantics of our code a little bit and therefore could surface new bugs in the next release cycle in case any components fail to follow the rules of React. See https://react.dev/learn/react-compiler for more information.
This results in a small bundle size increase and modest performance gains, but I think it's worth it given the potential for larger performance gains once we tune the component structure a bit more.
2026-08-04 17:57:23 +02:00
Robin
a08a577e18
Merge pull request #4138 from element-hq/renovate/all-minor-patch
...
Update all non-major dependencies
2026-08-04 17:19:28 +02:00
Robin
55b2d2b130
Remove possibility for CI Playwright version to get out of sync
2026-08-04 17:04:07 +02:00
Robin
3af0744324
Merge branch 'livekit' into renovate/all-minor-patch
2026-08-04 14:20:13 +02:00
Robin
07567ed31d
Merge pull request #4118 from element-hq/renovate/livekit-components
...
Update LiveKit components
2026-08-04 14:05:47 +02:00
Robin
d6e097476e
Address linter finding
2026-08-04 13:51:56 +02:00
Robin
540eb306f4
Fix unit tests
2026-08-04 13:48:52 +02:00
Robin
f62428ba0d
Update code formatting
2026-08-04 13:43:38 +02:00
Robin
8daaa649eb
Merge pull request #4147 from element-hq/renovate/npm-postcss-vulnerability
...
Update dependency postcss to v8.5.23 [SECURITY]
2026-08-04 13:36:56 +02:00
Robin
2d5a4eefec
Merge pull request #4139 from element-hq/renovate/posthog
...
Update dependency posthog-js to v1.408.2
2026-08-04 13:26:18 +02:00
Robin
78724acfcf
Merge pull request #4140 from element-hq/renovate/compound
...
Update dependency @vector-im/compound-web to v9.9.0
2026-08-04 13:10:48 +02:00
Robin
20c7112812
Merge pull request #4141 from element-hq/renovate/matrix-widget-api
...
Update dependency matrix-widget-api to v1.18.0
2026-08-04 13:09:58 +02:00
Robin
74102ac6c2
Merge pull request #3075 from hughns/defaut-server-config
...
Remove default server config as it is not likely to be correct
2026-08-03 10:49:49 +02:00
Robin
11a6fa9b45
Fix tests
2026-08-03 10:32:52 +02:00
Robin
507a6f29a5
Merge branch 'livekit' into defaut-server-config
2026-08-03 10:29:41 +02:00
Robin
bfb5fb922f
Merge pull request #4134 from element-hq/renovate/npm-postcss-vulnerability
...
Update dependency postcss to v8.5.18 [SECURITY]
2026-07-30 11:01:41 +02:00
Robin
73d8d2c2c3
Merge pull request #4120 from element-hq/johannes/i18n-download-fixes
...
Apply correct GH label and fix ordering issue in i18n download
2026-07-30 10:45:09 +02:00
Robin
fcfe73c50d
Merge pull request #4117 from element-hq/renovate/livekit-client
...
Update dependency livekit-client to v2.21.0
2026-07-30 10:43:24 +02:00
Robin
62eeb10d38
Merge pull request #4130 from element-hq/landscape-default-grid
...
Only show layout switch when it has an effect on the layout
2026-07-28 15:28:06 +02:00
Robin
2de7fdde10
Fix layout switches not showing their state on the combined docs page
...
On the combined Storybook docs page for the call footer, the layout switches would not show the correct state until you hovered over them because they all shared the same input name and thus were interpreted as belonging to the same radio group.
2026-07-28 15:06:15 +02:00
Robin
5a96d1769e
Only show layout switch when it has an effect on the layout
2026-07-28 15:06:15 +02:00
Robin
a443a55bec
Factor out a layout switch view + view model
...
So it can easily be shown and hidden wholesale.
2026-07-28 15:06:15 +02:00
Robin
9b2d9fdd1f
Merge pull request #4129 from element-hq/landscape-default-grid
...
Prefer grid mode in landscape on mobile
2026-07-28 14:29:30 +02:00
Robin
05ad9b2475
Merge pull request #4128 from element-hq/landscape-default-grid
...
Use a proper one-on-one layout for landscape mobile calls
2026-07-28 14:08:48 +02:00
Robin
7962d02be5
Prefer grid mode in landscape on mobile
2026-07-28 11:56:01 +02:00
Robin
5c35288162
Turn the local video tile landscape in landscape mobile one-on-one calls
2026-07-28 11:53:26 +02:00
Robin
aa6732da19
Use an actual one-on-one layout in landscape on mobile
2026-07-28 11:53:26 +02:00
Robin
0b21cff020
Rename one-on-one layouts to be orientation-agnostic
2026-07-27 18:28:52 +02:00
Robin
062e0a00fb
Remove unused variables from CallViewModel tests
2026-07-27 18:13:51 +02:00
Robin
ae7ede3201
Merge pull request #4113 from element-hq/vulnerable-dependencies
...
Resolve most existing Dependbot warnings
2026-07-16 09:28:13 +02:00
Robin
e5ff431b7a
Merge pull request #4112 from element-hq/disable-poster
...
Hide the browser's default placeholder image for videos
2026-07-16 09:21:27 +02:00
Robin
66a676f2f5
Resolve most existing Dependbot warnings
2026-07-15 18:05:06 +02:00
Robin
d33dedd038
Hide the browser's default placeholder image for videos
...
Source: https://stackoverflow.com/a/79058682
2026-07-15 17:26:02 +02:00
Robin
927cf68110
Merge pull request #4109 from element-hq/service-interruptions-vm
...
Create service interruptions view model
2026-07-14 12:21:18 +02:00
Robin
cd72ad0008
Create service interruptions view model
2026-07-14 12:02:36 +02:00
Robin
2d2e85e340
Merge pull request #4107 from element-hq/spotlight-icon
...
Update spotlight icon
2026-07-14 09:34:50 +02:00
Robin
73758f7f77
Merge pull request #4108 from element-hq/renovate/compound
...
Update Compound
2026-07-13 18:37:15 +02:00
Robin
c433c36687
Update snapshots
2026-07-13 18:20:56 +02:00
Robin
3e9d7b7cf7
Exclude packages developed in-house from release age requirements
2026-07-13 17:00:02 +02:00
Robin
bff41ad66a
Update spotlight icon
2026-07-13 12:22:44 +02:00
Robin
1d088911e1
Merge pull request #4105 from element-hq/renovate/compound
...
Update dependency @vector-im/compound-web to v9.7.1
2026-07-13 11:10:21 +02:00
Robin
3e5edd03a6
Merge pull request #4100 from element-hq/remove-stopgap-styles
...
Stop using colors from previous design system
2026-07-09 16:37:02 +02:00
Robin
0afefa4889
Merge branch 'livekit' into remove-stopgap-styles
2026-07-09 16:21:06 +02:00
Robin
5968554e4c
Merge pull request #4067 from element-hq/mobile-gradient
...
Improve the look of voice calls and group calls on mobile
2026-07-09 13:17:12 +02:00
Robin
8d826b2f31
Avoid showing gradients in especially small windows
2026-07-09 12:59:29 +02:00
Robin
32e30dd4f5
Merge branch 'livekit' into mobile-gradient
2026-07-09 12:56:28 +02:00
Robin
bb06905aa2
Merge pull request #4099 from element-hq/stable-class-names
...
Use vitest's default for scoped class names
2026-07-09 12:54:19 +02:00
Robin
2684fa1d62
Remove unused class for end call button
2026-07-09 12:46:45 +02:00
Robin
de75a69cad
Remove stopgap color variables from previous design system
...
They have been largely unused for a long time. This changes the colors of checkboxes and the 'end call' button to align with current designs as well.
2026-07-09 12:28:39 +02:00
Robin
4b50a191ba
Fix end-to-end tests
2026-07-08 17:13:15 +02:00
Robin
11fadebb87
Fix test failures due to scoped class names
2026-07-08 17:06:25 +02:00
Robin
943ce5b853
Update test snapshots to use scoped class names
2026-07-08 17:06:09 +02:00
Robin
000ee66cfe
Use vitest's default for scoped class names
...
It reduces confusion when reading snapshots if class names are still scoped to their respective CSS modules. It also discourages the use of class names in tests, which is a good thing. (https://testing-library.com/docs/guiding-principles )
Thanks to Johannes for the suggestion.
2026-07-08 17:03:51 +02:00
Robin
9f681b87a0
Merge branch 'livekit' into mobile-gradient
2026-07-08 15:47:59 +02:00
Robin
27315a7090
Rename bgStyle to 'background'
2026-07-08 14:01:38 +02:00
Robin
bebe79d109
Create type alias for background style
2026-07-08 13:56:10 +02:00
Robin
4ca0270115
Fix broken gradient SVG
2026-07-08 13:52:24 +02:00
Robin
e68321e16c
Merge branch 'livekit' into mobile-gradient
2026-07-06 12:17:04 +02:00
Robin
7840f4bccb
Merge branch 'livekit' into mobile-gradient
2026-07-02 13:00:38 +02:00
Robin
900d0abd27
Let page background shine through the footer
...
By visually separating it from other page content with an additional gradient background only when necessary.
2026-06-30 16:29:20 +02:00
Robin
a3d3a1e951
Add "sound waves" to transparent spotlight tiles
...
To indicate when the user is speaking.
2026-06-30 16:29:20 +02:00
Robin
8fa3f33f37
Let page background shine through spotlight tiles
...
By giving spotlight tiles a transparent background in certain layouts.
2026-06-30 16:29:20 +02:00
Robin
360a4ff026
Add mobile gradient background
2026-06-30 16:29:20 +02:00
Robin
8c6a16f3d7
Add URL param to control background style
2026-06-30 16:29:20 +02:00
Robin
9d21581259
Dismiss sections release announcement in end-to-end tests
2026-06-30 16:29:20 +02:00
Robin
3837576a5f
Merge pull request #4073 from element-hq/refine-scope-leak-lint
...
Fix some false positives flagged by ObservableScope leak lint rule
2026-06-29 14:57:50 +02:00
Robin
db2d20ac56
Fix some false positives flagged by ObservableScope leak lint rule
...
The rule should only care about enclosing function/class scopes. For example if an ObservableScope is received as a parameter to a function and then simply used inside an 'if' block (technically a different scope), that's not a problem.
2026-06-29 14:33:23 +02:00
Robin
a1be4ff0f9
Merge pull request #4068 from element-hq/landscape-voice-call
...
Hide local tile from mobile voice calls in landscape orientation
2026-06-26 11:22:25 +02:00
Robin
8ab7f89e36
Hide local tile from mobile voice calls in landscape orientation
...
To match the designs. Just like in portrait, it wouldn't contribute anything meaningful.
2026-06-25 20:29:24 +02:00
Robin
ded3d0ab81
Merge pull request #4061 from element-hq/subtitle-only
...
Show the subtitle of the app bar on small screens
2026-06-23 10:01:55 +02:00
Robin
a4b4a6b655
Remove redundant styles
2026-06-23 09:42:57 +02:00
Robin
be5d8140c9
Make it clearer why the app bar elements need to be hidden individually
2026-06-23 09:42:28 +02:00
Robin
7d54487354
Merge pull request #4060 from element-hq/speaker-color
...
Invert the colors of the speaker toggle button
2026-06-23 09:27:39 +02:00
Robin
504888b359
Show the subtitle of the app bar on small screens
...
Previously we were hiding the entire app bar on mobile phones in landscape orientation. However now that the app bar supports a small 'subtitle' element, we should show only the subtitle in this case to match the designs.
The subtitle still hides on tap, just like the footer.
2026-06-22 18:21:17 +02:00
Robin
99e95658df
Invert the colors of the speaker toggle button
2026-06-22 16:10:45 +02:00
Robin
5a68010022
Merge pull request #4046 from element-hq/header-subtitle
...
Move ringing status indicator to header on mobile
2026-06-22 13:14:55 +02:00
Robin
a456e47796
Show ringing status even on spotlight tiles (except in app bar mode)
2026-06-22 12:55:37 +02:00
Robin
27abf816f5
Fix vertical alignment of ringing status icons on Chromium and Safari
2026-06-22 12:12:54 +02:00
Robin
c6188a8345
Improve test coverage
2026-06-22 11:59:16 +02:00
Robin
22ff0d34b7
Merge branch 'livekit' into header-subtitle
2026-06-22 11:35:52 +02:00
Robin
96d1d1e1aa
Merge pull request #4040 from element-hq/scope-leak-lint
...
Add lint rule to prevent ObservableScope resource leaks
2026-06-22 11:13:10 +02:00
Robin
6f75e90fcd
Merge pull request #4051 from element-hq/remote-members
...
Clarify which Matrix-LiveKit members are remote
2026-06-22 11:05:32 +02:00
Robin
f78f507745
Address remaining resource leak error
2026-06-22 10:53:08 +02:00
Robin
89c148a530
Update remaining variable names for remote Matrix-LiveKit members
2026-06-22 10:44:24 +02:00
Robin
e11c04ac87
Move ringing status indicator to header on mobile
...
On mobile, the ringing status indicator is supposed to display in the header rather than on a tile. The exact layout differs between Android and iOS. To get it right I had to refactor AppBar to use CSS grid templates.
(Also, I changed my mind about the exact ringing data I needed out of CallViewModel - sorry. A little move of the ringtone audio renderer into its own component was necessary to accommodate that.)
2026-06-18 17:41:35 +02:00
Robin
d417bd8b90
Merge pull request #4052 from element-hq/auto-leave-docs
...
Fix docs for autoLeave URL param
2026-06-18 12:50:13 +02:00
Robin
f72a593eb4
Merge branch 'livekit' into scope-leak-lint
2026-06-18 12:49:40 +02:00
Robin
f6cd06fc01
Fix docs for autoLeave URL param
...
The parameter as seen in URLs has a different name from what's used in the code.
2026-06-18 12:14:23 +02:00
Robin
e77d143ce1
Clarify which Matrix-LiveKit members are remote
...
It was rather confusing that matrixLivekitMembers$ gives you objects of type RemoteMatrixLivekitMembers and yet the *local* member would often be among these. I've attempted to clear this up. To my knowledge this wasn't creating any bugs.
2026-06-18 12:10:32 +02:00
Robin
256219c4bf
Merge pull request #4034 from element-hq/ringing-intent
...
Improve internal model of ringing, expose ringing intent to call UI
2026-06-18 12:00:34 +02:00
Robin
6af72f4c90
Format
2026-06-18 11:42:02 +02:00
Robin
3a598ffe43
Restore ability to play sound with custom volume
...
This was missing from the revert in 8b0f5054dd .
2026-06-18 11:35:46 +02:00
Robin
05797097c6
Only consider a call accepted if the *intended* recipient picks up
2026-06-18 11:05:55 +02:00
Robin
8b0f5054dd
Revert to original fix for duplicate leave sounds
...
My attempted simpler fix of applying takeUntil(autoLeave$) to leaveSoundEffect$ didn't work.
2026-06-18 11:05:55 +02:00
Robin
8cda9777a5
Merge branch 'livekit' into ringing-intent
2026-06-18 06:41:17 +02:00
Robin
0a572a9528
Add lint rule to prevent ObservableScope resource leaks
...
The rule of thumb to avoid resource leaks is that you should never call ObservableScope methods in a callback unless the ObservableScope is directly passed to or created inside that callback. I had a go at codifying this as a lint rule.
2026-06-12 13:16:28 +02:00
Robin
3ef3ebe897
Merge pull request #4036 from element-hq/metadata-leak
...
Fix a minor resource leak with display names and avatars
2026-06-12 10:05:50 +02:00
Robin
96a9115ee7
Fix a minor resource leak with display names and avatars
...
I noticed that calls to createDisplayNameBehavior$ and createAvatarUrlBehavior$ were technically leaking resources since they reused the ObservableScope from their outer scope, which in practice lasts for the entire lifetime of the CallViewModel. This would not have had any noticeable effect unless you had other participants leave and rejoin the same call many thousands of times.
2026-06-11 12:21:07 +02:00
Robin
2ac6cdeb46
Improve internal model of ringing, expose ringing intent to call UI
...
I found our code's internal model of ringing a little overgrown (it had superfluous states like 'unknown') and difficult to extend with metadata or callbacks relating to ring attempts. By modeling ringing instead as a stream of ring attempts, where each attempt has an intent, a recipient, and an eventual outcome (accept/decline/timeout), I find it more natural to work with.
This makes room for a future 'try again' callback to allow ringing someone again after a timeout, and also forced me to look for a simpler solution to the duplicate leave sound effects. I exposed the intent of the ringing attempt to the call UI so I can later use it in the header.
2026-06-11 12:12:27 +02:00
Robin
c021fc1548
Merge pull request #3995 from element-hq/toger5/fix-double-leave-sound
...
Fix play of second leave sound
2026-06-02 14:46:43 +02:00