Commit Graph
69988 Commits
Author SHA1 Message Date
Will HuntandGitHub ff8abcdb8d URL Preview further design iteration (#34054)
* Drop unused img

* Fix sizing in bubble layouts

* Update previews

* Update snaps

* fixup

* cleanup

* cleanup
2026-07-07 17:21:44 +00:00
R Midhun SureshandGitHub e46acef445 Implement tombstone tiles for calls in room and DM (#34141)
* Implement tombstone tile view for a room

* Implement tombstone tile view for a DM

* Implement root call tile view

* Export all the views

* Add screenshots

* Remove old view code

* Implement vm for tombstone tile in a room

* Implement vm for tombstone tile in a DM

* Implement root tile vm

* Use new tile in the event factory

* Remove old vm

* Exclude mock code from code checks
2026-07-07 16:27:26 +00:00
1b10122a7b Allow disabling legacy calls and make Voice & Video settings Legacy Voice & Video (#33692)
* Change `feature_group_calls` to default to true.
Change state to Beta

* Add `enableLegacyCallsVoip` (clarify: Audio settings relate to Legacy)
Change `element_call.use_exclusively` to just be the default of
`enableLegacyCallsVoip`.
Allow disabling in Legacy in the settings. (overwrite `use_exclusivly`
via `enableLegacyCallsVoip`)
Rename `Voice & Video` to `Legacy Voice & Video`

* improvements
 - settings title update to only show legacy when appropriate
 - hide menu all together if use_exclusivly is chosen

* simplify by removing the feature_group_calls flag

* smaller cleanup

* fix tests and cleanup

* clarify settings (disable) in config.md

* add back EC relevant settings in room settings dialog

* update screenshots (now default to EC enabled (not disabled)
-> show voice and video tab in room settings

* update screenshots

* always show option to control voice messages input

* lint

* fix test

* disable -> enabled And only have on mic dropdown

* update config.md

* Back to `disabled` (on by default/no config)

* remove element call hint from voice-video settings

* Update apps/web/src/i18n/strings/en_EN.json

Co-authored-by: Robin <robin@robin.town>

* Update apps/web/src/components/views/settings/tabs/user/VoiceUserSettingsTab.tsx

Co-authored-by: Robin <robin@robin.town>

* review

* cleanup element call url setting (its deprecated/not used anymore)

* clarify, that also jisti will be enabled/disabled by legacy settings
flag

* remove double section

* remove unn exassary element_call configurations

* Update en_EN.json

* Update VoiceUserSettingsTab.tsx

* Make tests use new defaults (enable element call)

* Default events power levels

* format

* review "Enable Legacy voice/video calls" label

* more radical usage of defaults in element_call config.json's

* Update config.json

* Update en_EN.json

* Update RoomSettingsDialog-test.tsx.snap

* Update useRoomCall.tsx

* fix imports

* Update request permission promp to latest designs:
https://www.figma.com/design/aOEkaJtaBmPy058V7uoqVr/Element-Call-Updates---2026?node-id=45-12591&t=7takL39icZwt9YjL-0

* Update config.json.d.ts

* fix usage of `Element` in i18n

* Update General-room-settings-tab-should-be-rendered-properly-1-linux.png

---------

Co-authored-by: Robin <robin@robin.town>
2026-07-07 16:09:36 +00:00
Michael Telatynski 467ab5e7d4 Restore pnpm-lock.yaml from before bad merge 2026-07-07 14:57:30 +01:00
RiotRobot 7cdb4ab720 Reset matrix-js-sdk back to develop branch 2026-07-07 13:01:43 +00:00
RiotRobot 2ee42a002e Merge branch 'master' into develop 2026-07-07 13:00:37 +00:00
RiotRobot 3a219ab356 v1.12.23 2026-07-07 12:56:48 +00:00
RiotRobot 7d9cad2574 Upgrade dependency to matrix-js-sdk@41.9.0 2026-07-07 12:51:52 +00:00
Michael TelatynskiandGitHub 4ec8f1edcd Remove LegacyCallHandler singleton (#34086)
* Remove dead code

* Remove LegacyCallHandler singleton

Route via SDKContext to cut import cycles

* Remove unused setting

* Fix tests

* Fix tests

* Cascade SDKContext through PersistedElement

* Improve coverage

* Iterate

* Improve coverage

* Improve coverage
2026-07-07 12:29:54 +00:00
1897980488 [Backport staging] Fix video body interaction (#34163)
Co-authored-by: Zack <zazi21@student.bth.se>
2026-07-07 13:24:42 +01:00
58fa4d8883 Room list: put toast over sticky headers (#34113) (#34137)
* fix(room list): put toast over sticky headers

* test(room list): add non-regression test for toast over a sticky section header

(cherry picked from commit c571d79ed9)

Co-authored-by: Florian Duros <florianduros@element.io>
2026-07-07 12:56:40 +01:00
ZackandGitHub 48bd69a8b6 Fix video body interaction in Chrome (#34160) 2026-07-07 10:10:41 +00:00
Michael TelatynskiandGitHub 6fda0ad60f Migrate more jest tests to vitest (#33922)
* Migrate more jest tests to vitest

* Fix jest config

* Fix jest config

* Make remaining jest tests type-happy

* Iterate

* Fix Notifier import cycle

* Fix tests

* Delint

* Iterate

* Handle SDKContextClass `client` initialisation internally

Rather than via MatrixChat - this is predominantly for Lifecycle tests as they don't use a MatrixChat and it doesn't make much sense for this component to own this state.

* Fix tests

* Iterate

* Simplify diff

* Improve coverage

* Improve coverage

* Iterate
2026-07-07 09:50:40 +00:00
Michael TelatynskiandGitHub 30c02ab5d7 Migrate batch of tests to vitest (#34121)
* Migrate batch of tests tro vitest

* Iterate

* Migrate another test

* Migrate batch of tests to vitest

* Iterate
2026-07-07 09:40:22 +00:00
Florian DurosandGitHub 7ff6956014 Room list: add new settings to enable/disable the sections (#34151)
* Add new settings to enable/disable the sections

* Add `RoomList.showSections` settings to preference user settings

* Hide sections ui in room list header

- Hide the collapse/expand button and the *new section* entry in the
menu.
- Display the *start chat* button instead of the compose menu when the
only action available is to create a DM

* Hide sections ui in context menu of room item

* Listen to show section settings in room list item vm

* Listen to show sections setting in room list header vm

* Put all the rooms inside the chat section when sections are disabled

When the chat section is the only section, the room list is in "flat
list mode". Putting all the rooms inside the chat section.

The section filters (aka custom section, favourites etc) are not passed
to the skip list.

* Update preferences settings screenshot

* Add e2e test for RoomList.showSections toggle

* Hide "Chat moved" toast when a room is tagged when RoomList.showSections is disabled
2026-07-07 08:45:37 +00:00
David BakerandGitHub 5065683658 UI for setting user status (#33856)
* First stage

 1. Make avatar BIGGER!
 2. Move status button out to its own component so we can reuse it

* Working version

but using context menu rather than dropdown menu which almost looks
right but not quite.

* Commit the set status view component

* Change to use dropdown with custom trigger

* Show full set status component in user menu

and styling tweaks

* In user menu, clicking takes you to settings

* Add the view model

* oxfmt

because apparently mine had decided to go away

* Fix type import

* Pass set status viewmodel in story

* Bump compound-web

for customisable dropdown

* Snapshot

* Add explicit aria label

as combobox role things don't just inherit from their inner text

* snapshot again

* Only show user status if feature flag enabled

* Make status btton view not a button

because it doesn't need to be. Also rename accordingly.

* Screenshots

* Disable in settings if feature flag off

* Snapshot

* Snapshot again

* Update screenshots

including room settings one which wasn't really supposed to change
although the avatar now takes up the space it's in - leaving it for
design to check.

* Fix size & positioning of the status button

* Update screenshots

* Screenshots

* Test for SetStatusViewModel

* Update set status view on status change

* Use a link component for the status button

which has built in hover state

* Float the status button in a 28px container

vs making it actually 28px min height

* Separate user menu profile into two sections

With 8px gap between things in the two sections and 12px gap between
sections (ie. in practice, 12px gap between the status control and username).

* Screenshot

* Screenshots

* Pass set status view model in the state

rather than as an extra prop. Fixes it in the story too.

* Pass ownprofilestore into the viewmodel

* Don't use snapshot for testing the view model

Avoids getting all the random stuff from the sub VM in the snapshot
and better to test what we care about anyway.

* don't mention the bad word

* Here too

* Don't show user status for guests

* Update guest story to remove user status
2026-07-06 19:28:34 +00:00
Michael TelatynskiandGitHub a26eb9f578 Fix Notifier import cycle (#34122)
* Fix Notifier import cycle

* Fix tests

* Delint

* Iterate

* Handle SDKContextClass `client` initialisation internally

Rather than via MatrixChat - this is predominantly for Lifecycle tests as they don't use a MatrixChat and it doesn't make much sense for this component to own this state.

* Fix tests

* Iterate

* Improve coverage

* Improve coverage

* Fix bad merge

* Iterate
2026-07-06 19:20:51 +00:00
Michael TelatynskiandGitHub 08419cf0cf Move more element-web tests over to vitest (#33845)
* Move more element-web tests over to vitest

Switches default env to happy-dom as SdkConfig needs a DOM and is part of the setupTests given a lot of code relies on it

* Restore jest variant of editor mock file for tests not yet moved over

* Migrate batch of tests tro vitest

* Iterate

* Migrate another test

* Simplify

* Iterate

* Iterate

* Fix lockfile

* Deduplicate

* Iterate
2026-07-06 17:42:24 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
3da74a98e3 Update dependency webpack-dev-server to v6 (#34156)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-06 16:34:34 +00:00
Michael TelatynskiandGitHub dc33d736a0 Handle SDKContextClass client initialisation internally (#34146)
* Handle SDKContextClass `client` initialisation internally

Rather than via MatrixChat - this is predominantly for Lifecycle tests as they don't use a MatrixChat and it doesn't make much sense for this component to own this state.

* Fix tests
2026-07-06 16:09:21 +00:00
TimoandGitHub 20587b3495 Start voice call in PiP (not in fullscreen) (#34055)
* start voice call in pip

* Update jest.config.ts

* fix "join" button to use correct intent

* Add regression test for join button

* Update RoomHeader-test.tsx

* fmt

* Add playwright test

* Fix expected intent on "join" button press

* Add additional pip check to exising:
`should be able to join a ${callType} call in progress` test

* Update RoomHeader-test.tsx
2026-07-06 15:57:26 +00:00
hayyaksiandGitHub 3153912cc1 Throttle notification sounds so a backlog doesn't play them all at once (#33989)
After waking from sleep (notably macOS Sequoia), the whole sync backlog is delivered in one
batch, so every backlogged notifying event calls playAudioNotification near-simultaneously
and the identical audio buffers superimpose into a single loud "stacked" sound.

Throttle audible plays to at most one per distinct resolved sound within
NOTIFICATION_SOUND_THROTTLE_MS, keyed on the sound so two genuinely different sounds arriving
within the window each still play. The throttle runs only after the existing silencing gate,
so it suppresses redundant audible plays without affecting the gating logic.
2026-07-06 15:11:58 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
47da609f53 Update electron (#34155)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-06 15:08:59 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
c08404775e Update docker (#34154)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-06 15:07:46 +00:00
Michael TelatynskiandGitHub d5164acb50 Migrate batch of tests to vitest (#34111)
* Migrate batch of tests tro vitest

* Iterate

* Migrate another test

* Fix lockfile
2026-07-06 14:10:50 +00:00
Michael TelatynskiandGitHub d4f72dfa69 Start consolidating shared types in the monorepo (#34062)
* Start consolidating shared types in the monorepo

* Iterate

* Simplify api-extractor

* Iterate

* Fix lockfile
2026-07-06 13:49:32 +00:00
Will HuntandGitHub b6cbc3a9d8 Add a module API for overriding the composer preview. (#33978)
* Modify LinkPreview to export shared atomics

* Implement MessageComposerUrlPreviewView

* Create UrlPreviewFetcher utility function

* Modify view models

* Implement in composer

* Support running tests in dom-less vitest environment

* Add a playwright test

* hide another one

* fmt

* cleanup

* test rte too

* fixup

* Add back docstring

* cleanup

* off by one

* remove description check

* Cleanup hacks

* Remove another hack

* cleanup

* one more

* fixup window here too

* whoops type

* Rename to be cleaeer

* Trim URLs first

* fix bug

* Add a module API for overriding the composer preview.

* tests + cleanup

* fixup comment

* revert accidental change

* fixup

* happy tests

* cleanup
2026-07-06 12:32:07 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Michael Telatynski
6027ec5142 Update npm non-major dependencies (#34135)
* Update npm non-major dependencies

* Hold back oxfmt due to postcss support being broken

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-07-06 11:37:09 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
4d38812c18 Update webpack (#34144)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-06 11:06:51 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Michael Telatynski
ed70c6b5f6 Update dependency electron to v43 (#34145)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-07-06 10:51:48 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
a3adfaa3df Update vite (#34074)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-06 10:06:03 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
a30d011e08 Update testcontainers docker digests (#34131)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-06 10:04:27 +00:00
David BakerandGitHub cfe08be1b9 Change user ID colour to secondary (#34129)
* Change user ID colour to secondary

in user menu

Caught by design whilst reviewing user status

* snapshot

* screenshots

* Snapshot
2026-07-06 08:36:17 +00:00
Tamajit-005andGitHub 5b253647e8 Fix map tooltip overlapping message composer (#33982)
* Fix map tooltip overlapping message composer

* Simplify boundary element lookup with useMemo

* Fix formatting with oxfmt
2026-07-06 08:11:00 +00:00
96f7930aa1 [create-pull-request] automated change (#34143)
Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
2026-07-06 08:10:18 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Michael Telatynski
de4d7c5c0f Update css (#34132)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-07-06 08:03:57 +00:00
Will HuntandGitHub e994dbb419 Clear the composer preview after sending a message. (#34116)
* Clear the composer preview after sending a message.

* fixup
2026-07-05 08:05:47 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
a88b2e64c5 Update electron (#34134)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-04 06:50:50 +00:00
Florian DurosandGitHub 50c26b4809 fix(room list): fix visible-range reporting to the room list view model (#34112)
Virtuoso's rangeChanged was forwarded to updateVisibleRooms unmapped:

- In grouped mode the range is in entry space (one slot per section
  header), while updateVisibleRooms slices the rooms-only array. The
  retained window was shifted down by the number of headers above it,
  so the view models of the top rendered rooms were disposed and
  recreated on every range change.
- Virtuoso's endIndex is inclusive but slice() is end-exclusive, so
  the boundary row's view model was disposed and recreated on nearly
  every range change.
2026-07-03 19:18:21 +00:00
Florian DurosandGitHub c571d79ed9 Room list: put toast over sticky headers (#34113)
* fix(room list): put toast over sticky headers

* test(room list): add non-regression test for toast over a sticky section header
2026-07-03 19:18:03 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
7058f7da8e Update dependency @element-hq/element-call-embedded to v0.20.3 (#34133)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-03 16:35:19 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
a420ca6e3b Update testcontainers to v12.0.4 (#34136)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-03 15:52:22 +00:00
David BakerandGitHub ff8329be09 Take client creating functionality out of MatrixClientPeg (#34092)
* Take client creating functionality out of MatrixClientPeg

Because all sorts of things import MatrixClientPeg and this means
they pull in all manner of things related to creating a client, when
all they need is to get the current one (and specifically it fixes
the import cycle that means I can't add my test).

* Remove fake indexeddb

as it seems like the tests didn't actually see the fake indexeddb before
(somehow) but now do, and are failing because they have that but no postmessage.
It feels like the right solution is for these tests to not need indexeddb.

* Don't mock a refresh token

The tests don't mock out enough for the token refreshing setup to work,
it wa somehow always ending up as null previously and now wasn't, at which
point it broke, so just make it actually unset.

* Move formatter instatiation to lazy

rather than eagerly at parse time, as this apparently shifted one
test to hit this import cycle instead.

* Tests for room name generator
2026-07-03 15:21:59 +00:00
Richard van der HoffandGitHub 0c0cb5df3d Deflake new device-dehydration test (#34114)
* Deflake new device-dehydration test

* Add some comments
2026-07-03 10:17:42 +00:00
Michael TelatynskiandGitHub 275ea25eca Migrate batch of tests to vitest (#34106)
* Migrate autocomplete tests to vitest

* Migrate utils/beacon tests to vitest

* Migrate utils/device tests to vitest

* Migrate utils/crypto tests to vitest

* Migrate utils/localRoom tests to vitest

* Migrate notifications tests to vitest

* Fix types

* Make jest test happy

* Make sonar happier
2026-07-03 10:10:04 +00:00
Richard van der HoffandGitHub 78273c569b Remove outdated references to MSC2697 (#34110)
As of https://github.com/element-hq/synapse/pull/19346, Synapse no longer
attempts to support MSC2697, so that bit of config is not needed.
2026-07-03 08:52:23 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
7c0c22f4ee Update testcontainers docker digests (#34100)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-03 08:50:56 +00:00
Michael TelatynskiandGitHub df4a1f0c85 Migrate batch of tests to vitest (#34108)
* Migrate utils/dm tests to vitest

* Migrate utils/room tests to vitest

* Migrate utils/location tests to vitest

* Fix types

* Satisfy tsc & knip
2026-07-03 08:50:11 +00:00
8aba166f1e [create-pull-request] automated change (#34119)
Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
2026-07-03 07:37:27 +00:00
Will HuntandGitHub 588a8a6fcf Add a CI check for unused settings (#34105)
* Add unused settings script

* Run in CI

* Remove unused settings sans topic html

* Report as annotations

* Cleanup script
2026-07-02 17:59:27 +00:00