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
Robin
399b7d83da
Merge pull request #3988 from element-hq/renovate/livekit-client
...
Update dependency livekit-client to v2.19.0
2026-06-02 11:50:10 +02:00
Robin
47326c28d3
Fix type error
2026-06-02 11:33:17 +02:00
Robin
084fa20b3d
Merge pull request #4003 from element-hq/device-switch-fixes
...
Show the right labels in device switcher menus
2026-06-02 11:29:28 +02:00
Robin
cec78a383d
Fix footer stories
2026-06-02 11:14:53 +02:00
Robin
faa34aeaaa
Merge pull request #3987 from element-hq/renovate/compound
...
Update dependency @vector-im/compound-design-tokens to v10.2.0
2026-06-02 10:48:44 +02:00
Robin
5fed562db2
Request full device names when device switchers are open
2026-06-02 10:36:57 +02:00
Robin
164765cd27
Show the right fallback labels in device switcher menus
2026-06-02 10:15:40 +02:00
Robin
af8a876adc
Merge pull request #3999 from element-hq/renovate/embedded-package-dependencies
...
Update Gradle to v8.14.5
2026-06-02 08:42:39 +02:00
Robin
0de6e94647
Merge pull request #3983 from element-hq/one-on-one-portrait-regressions
...
Fix a couple more regressions due to the one-on-one portrait layout
2026-05-20 17:03:54 +02:00
Robin
8d07d552d7
Ensure landscape layout is always edge-to-edge on mobile
...
The spotlight landscape layout was edge-to-edge previously, and should remain that way.
2026-05-20 16:11:07 +02:00
Robin
8324ce2ce0
Avoid overlapping spotlight tiles with the app bar
...
The default inset that is given to the fixed layout layer needs to account for the app bar now.
2026-05-20 16:11:07 +02:00
Robin
eaa049433a
Merge pull request #3979 from element-hq/settings-footer-glitch
...
Stop the settings button from appearing while footer is fading out
2026-05-20 15:15:37 +02:00
Robin
4b175b814e
Update and simplify tests
2026-05-20 13:43:33 +02:00
Robin
43f1b89535
Stop the settings button from appearing while footer is fading out
...
The designs actually never want us to show the settings button in the footer if an app bar is in use (as in Element X mobile apps), so just avoid showing it at all in that case.
2026-05-20 12:38:18 +02:00
Robin
284d76e333
Merge pull request #3977 from element-hq/posthog-updates
...
Allow PostHog dependency updates again
2026-05-20 12:22:51 +02:00
Robin
7b32135328
Ensure that foreground elements of media tile do not overlap app bar
...
Because the type of header that we use in Element X (an 'app bar') lives in a different place in the document than the other headers, it needs a special branch to propagate the right insets.
2026-05-20 11:55:27 +02:00
Robin
94ce207581
Allow PostHog dependency updates again
2026-05-20 11:50:01 +02:00
Robin
6b261611a5
Log unhandled promise rejections in rageshakes ( #3972 )
...
For more comprehensive rageshake logs. Copied from Element Web's rageshake.ts.
2026-05-19 13:44:16 +02:00
Robin
f3c0b9ed8d
Merge pull request #3969 from element-hq/renovate/livekit-client
...
Update dependency livekit-client to v2.18.10
2026-05-18 13:30:48 +02:00
Robin
ac1297d02c
Merge pull request #3916 from element-hq/one-on-one-portrait
...
Create a proper one-on-one call layout for portrait screens
2026-05-18 13:28:59 +02:00
Robin
d66afd734d
Merge pull request #3971 from Johennes/johannes/minor-docs-fixes
...
Minor documentation fixes
2026-05-18 13:17:34 +02:00
Robin
cfbdbca5bb
Fix media foreground elements being obscured by header/footer
2026-05-18 13:08:52 +02:00
Robin
d7acce49a3
Merge pull request #3970 from Johennes/johannes/typo
...
Minor README fixes
2026-05-18 10:12:59 +02:00
Robin
7e932d27da
Merge pull request #3939 from element-hq/renovate/github-actions
...
Update GitHub Actions
2026-05-15 11:42:37 +02:00
Robin
a1e03ea389
Merge pull request #3942 from element-hq/renovate/compound
...
Update dependency @vector-im/compound-design-tokens to v10.1.1
2026-05-15 11:36:20 +02:00
Robin
de52ea6590
Fix tests
2026-05-15 11:29:22 +02:00
Robin
9ad5d02e31
Merge branch 'livekit' into one-on-one-portrait
2026-05-15 11:28:47 +02:00
Robin
f3234b1c3e
Merge branch 'livekit' into renovate/github-actions
2026-05-15 11:26:25 +02:00
Robin
53acd2596c
Merge branch 'livekit' into renovate/compound
2026-05-15 11:20:55 +02:00
Robin
b562a0f721
Create a proper one-on-one call layout for portrait screens
2026-05-13 09:54:58 +02:00
Robin
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
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