Commit Graph

69303 Commits

Author SHA1 Message Date
renovate[bot] f615cf7fab Update dependency @element-hq/element-call-embedded to v0.19.3 (#33546)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-20 15:44:23 +00:00
Andy Balaam df229eac2c Simplify DeviceListener logic: consider recovery disabled if backup is disabled (#32979)
If backup is disabled, recovery is implicitly disabled too, so there is
no need to warn about recovery being broken.
2026-05-20 15:04:40 +00:00
Andy Balaam 66cd1336e5 Remove the closeToast function and replace with calls to rejectToast (#33541) 2026-05-20 15:04:29 +00:00
renovate[bot] 1f2664bc7d Update zizmorcore/zizmor-action action to v0.5.6 (#33545)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-20 14:49:05 +00:00
David Baker 90ba56c1ce Make viewRoomByName dismiss toasts on each retry (#33542)
Otherwise it can just race, as per comment
2026-05-20 14:26:08 +00:00
Zack 223a861535 Move E2ePadlock to shared components (#33538)
* Move E2ePadlock to shared components

* Add storybook images

* Move translation to shared components

* Fix E2ePadlock story accessibility

* Update E2eMessageSharedIcon test for padlock role
2026-05-20 13:20:17 +00:00
David Baker ba3682074b Another attempt at fixing the docker bake error (#33535)
Turns out the .env.docker:build is read automatically by nx when running
that project step, so it should be in the env. It might just be that using
the `x=$x` format means docker gets the $ literally because no shell is involved
here, so we need to use the plain `x` format so docker knows to take it from
the environment itself.

That's the theory, anyway.
2026-05-20 11:20:54 +00:00
David Baker b5aa339243 Increase timeout on wysiwig test (#33540)
To hopefully make it not flake
2026-05-20 10:54:59 +00:00
Florian Duros 4b6e0b7ebf Fix pinned message banner disappearing when a pinned message event is unkown (#33534)
* fix: remove unknown event when fetching pinned message events

* test: update tsts
2026-05-20 09:40:09 +00:00
rbondesson d41ff70057 Refactor EventTile using the MVVM pattern - #3 (#33516)
* Introduce thin EventTile view model snapshot

* Fix errors after merge conflict resolution
2026-05-20 08:32:05 +00:00
David Baker 0140563b64 Tweak new user menu design (#33444)
* Tweak new user menu design

* Update screenshots

* More screenshots

* Add story with no avatar

* add story to test

* Expand the menu so it actually shows what it's supposed to show

* Use the open parameter

which is the param to open the menu

* snapshot

* Add test for normal open menu version

* Move menu to the right of the avatar

and make it appear on top of the display name

* Fix user menu layout

* screenshots

* snapshot

* screenshots

* more screenshots

* Shift toasts to the left slightly

So they completely cover the display name of the user menu when
it's expanded. Also down slightly so they're level with the user menu.

* Tweak toast border radius & position

to match & sit on top of the user menu

* Close toasts in cider tests

* Only close the toast if it's actually there

* Fix some toasts to be dismissed & update screenshots

more to come though

* Make closeKeyStorageToast actually optional

* Fix some more toasts & races

* Screenshots again again (again)

* More screenshots

* Convert to rejectToast

* Fix toast rejectors to not wait and update screenshots

* Apparently 1ms is not long enough
2026-05-19 13:10:14 +00:00
R Midhun Suresh 00ccc97c79 Call Tile - Improve tile alignment in modern and bubble layout (#33478)
* Tile must have same indent as messages

* Align the call tiles between the bubbles
2026-05-19 09:18:30 +00:00
Will Hunt 02b6520f09 Module API for adding new file upload mechanisms (#33355)
* Initial reword of upload to MVVM.

* Update tests

* More incremental improvements

* Refactor tests to use helper method for composer uploads.

* Add drag and drop tests

* lint

* Add commentary

* fixup test

* More precise selector

* Retarget uploads

* lint

* fixup

* one more type

* update snap

* Fixup composerUploadFiles

* fix import

* lint

* Copy and paste fixes too

* Add tests for pasting

* Add tests for pasting files.

* Remove redundant fn

* rm comment

* tidy up

* Test cleanup

* More clean up

* another fix

* Begin fleshing out

* Park changes

* More stuff

* Use condensed version

* Cleanup tests

* more cleaning

* last bity

* Add a test for the composer

* Park up changes

* Rewrite Measured to be a functional component

* Add tests to cover narrow viewports

* lint

* breakpoint is optional

* Cleanup

* Support narrow mode

* fixup

* begone

* Provide default value

* add label

* fixup test

* update copyright

* cleanup

* Be a bit more lazy with FileDropTarget

* remove a debug statement

* Fixup

* fix two snaps

* Update screenshot

* and the other one

* Update snaps

* unfake CIDER

* update screens again

* remove extra test

* Undo accidental snapshots

* Bit of tidyup

* fixup

* even more tidyup

* may drag and drop file

* tidy up again

* snap snap snap

* Use load to make sonarQube happy

* Bunch of refactors

* More cleanup

* cleanup debug code

* tweaks

* remove a test we no longer need

* make it happy

* fix import

* fixup

* Update snaps

* typo

* one off

* Add tests

* lint

* remove only

* Reduce screenshot scope

* fix snapshot usage

* cleanup
2026-05-18 21:41:38 +00:00
Andy Balaam 66b739fea9 Remove an impossible case in DeviceListener (#32977)
* Remove an impossible case in DeviceListener

We only reach this branch if recoveryIsOk is false, which means
recoveryDisabled can't be true.

* Add a test for when recovery is bad but backup is disabled
2026-05-18 18:18:56 +00:00
Richard van der Hoff b51891ae2a Update dependency matrix-seshat to v4.3.0 (#33526)
Seshat 4.3.0 improves some error messages, which I hope will help resolve https://github.com/element-hq/element-web/issues/33501.

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-18 16:51:44 +00:00
Andy Balaam 5be0b778db Change all toast rejection code to use the rejectToast utility (#33025) 2026-05-18 16:31:52 +00:00
Robin d40fe81616 Expand the @element-hq/element-call-reviewers codeowners list (#33521)
Adding some more files that the VoIP team is responsible for.
2026-05-18 14:03:48 +00:00
Andy Balaam 714bc20718 Remove toasts fixture from playwright-common: use rejectToast etc. directly. (#33520) 2026-05-18 12:40:02 +00:00
Will Hunt 5156e88c9d Reduce screenshot scope (#33522) 2026-05-18 12:35:53 +00:00
Andy Balaam d1a9f95e20 Use the toasts utils instead of the toasts fixture in playwright tests (#33495) 2026-05-18 11:44:08 +00:00
Andy Balaam bf820c5ba4 Remodel DeviceListener ifs to be more uniform (#32976)
We enter this chain of `if`s if at lease one of the boolean flags is false. This
change attempts to make the logic clearer by ensuring that each branch of the if
matches exactly one of those booleans.

Justifying this change: if `secretStorageStatus.defaultKeyId === null` then
`recoveryKeyIsOk` will be false, except in the strange case where recovery is
disabled, in which case we should not be dealing with problems with recovery
anyway, so if we previously entered this branch it would have been a bug. All
existing tests pass so it looks like we didn't consider this case.
2026-05-18 11:24:20 +00:00
rbondesson 297ad9bb8d Make shared-components tiles render identically outside Element Web - # 2 (#33485)
* Adding correct layout/density attributes to unit tests

* Move app/web styling to FileBodyView

* Unify styling for MediaBody wrapped components

* Fix prettier issues

* Update app/web snapshots

* Wrap file download and audio loading states in MediaBody

* Revert the MediaBody for download buttons.

* Revert changes for MediaBody wrappers

* Updated snaphots for MediaBody components
2026-05-18 05:59:03 +00:00
rbondesson 7fe8cdafe0 Refactor EventTile using the MVVM pattern - #2 (#33489)
* Improve coverage

* Add view model unit tests to improve coverage

* Extract initial pure EventTile derived state helpers

* Extract EventTile derived state helpers

* Extract EventTile class state derivation

* Extract EventTile line class derivation

* Extract EventTile sender profile state

* Extract EventTile avatar member selection

* Extract EventTile avatar clickability state

* Extract EventTile sender profile mode

* Extract EventTile action bar visibility

* Extract EventTile timestamp visibility

* Extract EventTile timestamp selection

* Extract EventTile timestamp display state

* Extract ReplyChain timestamp visibility

* Extract EventTile footer display state

* Fix sonar issue
2026-05-18 05:36:13 +00:00
Andy Balaam 1922266ba7 Bump @element-hq/element-web-playwright-common version to 4.1.0 (#33500) 2026-05-15 11:33:32 +00:00
İsmail Özsoy c5a2109ef5 Incoming Element Calls now trigger a regular OS notification (#33499)
* Fix missing OS-level desktop notification for Element Call (MSC4075)

* Add Unit-test for textForCallInviteEvent and lint fixes

* Refactor call invite notification

* prettier fix

* Added mock supportsVoip for notifier-test
2026-05-15 11:07:08 +00:00
Travis Ralston d5a0ac6014 Remove MSC3215 (Report to Moderators) labs feature (#33492)
* Remove MSC3215 (Report to Moderators) labs feature

T&S does not believe this is used, and intends to replace it during Reporting v2 anyway.

Original MSC: https://github.com/matrix-org/matrix-spec-proposals/pull/3215

New (WIP) MSC: https://github.com/matrix-org/matrix-spec-proposals/pull/4468

(This PR/commit doesn't add MSC4468 support because it's unclear if we should use MSC4468 directly or via another endpoint like MSC4457)

[MSC4457]: https://github.com/matrix-org/matrix-spec-proposals/pull/4457

* Remove unused state: isRoomEncrypted
2026-05-14 20:46:01 +00:00
Travis Ralston a12296630a Fix matrix-js-sdk linking on Windows (#33491)
* Fix matrix-js-sdk linking on Windows

* Linting
2026-05-14 15:23:33 +00:00
Will Hunt ab904bb6ca Ensure interface gradually reduces visible buttons when viewport shrinks (#33477)
* Rewrite Measured to be a functional component

* Add tests to cover narrow viewports

* lint

* breakpoint is optional

* Cleanup

* Provide default value

* Fixup

* fix two snaps

* Update screenshot

* and the other one

* unfake CIDER

* Update snaps AGAIN
2026-05-14 15:15:43 +00:00
Andy Balaam cff2c4cd25 Replace toasts fixture in playwright-common with utility functions. (#33152)
* Provide toasts utility functions, soon to replace the toasts fixture.

* Review suggestions
2026-05-14 14:29:13 +00:00
R Midhun Suresh 435acf1ba7 Call Tile - Support declined call tile (#33371)
* Extract shared types and css

* Add CallDeclinedTileView

* Add storybook and view tests

* Support declined event in view model

* Render declined view from tile factory

* Update snapshots

* Add 10px padding to top and bottom

* Distinguish between call declined by us and other users

* Support `isCallDeclinedByUs` in view model

* Update tests

* Add better comments

* Rename getInitial to generateSnapshot
2026-05-14 14:12:05 +00:00
ElementRobot 92aa3202e3 [create-pull-request] automated change (#33486)
Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
2026-05-14 10:41:06 +00:00
Travis Ralston 8e22bc6e0e Update developer guide to put .link-config in the correct place (#33484) 2026-05-13 16:30:01 +00:00
Florian Duros 47f8012691 Room list: add robustness to custom section loading (#33475)
* refactor: move all access to custom sections settings into `section.ts`

* fix: add robustness when getting the order list of custom sections

* fix: add robustness when getting the custom section data

* fix: ignore malformed section but don't erase them

* fix: remove useless await operator

* test: add more tests
2026-05-13 15:50:33 +00:00
Robin c4c32b8334 Make it possible to scroll overflowing hidden events again (#33481)
* Make it possible to scroll overflowing hidden events again

* Make hidden events scrollable without any CSS hacks
2026-05-13 13:30:11 +00:00
David Baker b6c24cb04f Use the env file when buiding playwright common docker (#33483)
* Use the env file when buiding playwrigt common docker

The docker builds failed due to the variable for being available

* Also we surely don't need this twice
2026-05-13 13:07:16 +00:00
Zack 8400f56004 Fix edited reply quote collapse (#33487)
* Fix edited reply quote collapse

* Add regression test for edited reply quotes
2026-05-13 10:23:56 +00:00
Florian Duros 85aca65a81 Room list: drag and drop rooms into sections (#33366)
* chore: add dnd kit deps

* chore: patch dnd kit to fix ts error

* feat(sc): add drag-and-drop to room list item and wrapper

* feat(sc): make the room list header a droppable element

* feat(sc): add dnd to room list view

* feat(tags): can tag room as CHAT

* feat(vm): implement `changeRoomSection`

* feat(sc): disable dragging in flat list

* fix: disable keyboard navigation when dragging element

* test(sc): update snapshots

* test(sc): add dnd test

* test(e2e): add e2e tests for room drag and drop

* test(vm): add tests for changeRoomSection

* fix: remove focus visible when dropping with the mouse

* test(playwright): update existing screenshots

* chore(sc): move numbers out of main build

The Ew RecorderWorklet imports shared component bundle. However if the
bundle uses some deps using document/window which, the worklet will not
work.

The solution is to put the used functions into a separate bundle.

* doc(sc): add subpath import into README

* doc: typo barrel/bundle

* test: improve test expect

* refactor: add utils to section tag

* fix: incorrect check in tagRoom

* fix: add doc about dndkit tunning
2026-05-13 09:06:22 +00:00
rbondesson 97da3be67a Fix for message action bar visibility getting out of sync with the real UI state (#33445)
* Make sure action bar is not visible when using up/down arrows during editing

* Add a temporary mouse move listener to handle tooltips stealing onMouseLeave events

* Better naming, add comments and test

* Fix test that performs its own hover/pointer movement before clicking.

* Fix playwright test that actually displayed a message time stamp when hover state was stale

* Fixes after merge
2026-05-13 07:52:47 +00:00
Zack 1e7c9f672a Phase 2 Refactor MImageBody to MVVM and remove legacy component (#33212)
* MVVMing of MImageBody and removing legacy component + css

* Fix Prettier

* update small image to large image in test

* Update test

* Preserve MImageBody legacy class names

* Click image in custom component download test

* Update snapshots

* Update MBodyFactory snapshots

* Added new tests to pass coverage

* Fix prettier

* Remove legacy import that was removed

* Add MImageReplayBody test for coverage

* Remove legacy MImageBody selectors from image view

* Update image body selectors in Playwright tests

* Keep file panel image body spacing compact

* Update apps/web/src/viewmodels/message-body/ImageBodyViewModel.ts

Co-authored-by: Florian Duros <florian.duros@ormaz.fr>

* added documentation to component

* Fix hidden media placeholder import

---------

Co-authored-by: Florian Duros <florian.duros@ormaz.fr>
2026-05-13 06:03:43 +00:00
RiotRobot 13dd1a0b5e Reset matrix-js-sdk back to develop branch 2026-05-12 13:21:16 +00:00
RiotRobot 76950cf863 Merge branch 'master' into develop 2026-05-12 13:20:24 +00:00
RiotRobot dc0dbd540b v1.12.18 2026-05-12 13:17:09 +00:00
RiotRobot f72f15ff1b Upgrade dependency to matrix-js-sdk@41.5.0 2026-05-12 13:12:37 +00:00
rbondesson 0f723390a9 Refactor EventTile using the MVVM pattern - #1 (#33463)
* Add EventTile layout attribute tests

* Add EventTile timestamp tests

* Add EventTile sender and avatar tests

* Add EventTile read receipt tests

* Add EventTile reactions and footer tests

* Add EventTile action bar tests

* Add EventTile reply chain tests

* Add EventTile highlight exclusion tests

* Add EventTile action bar focus tests

* Add EventTile context menu characterization tests

* Add EventTile rendering attribute tests

* Add EventTile search thread info tests

* Add EventTile reaction update tests

* Add EventTile message type class tests

* Fix flakyness in root attribute tests

* Fix Sonar issues

* Fix additional Sonar issues
2026-05-12 12:28:00 +00:00
Will Hunt aeaeb55cda Rework Upload internals to use MVVM (#33307)
* Initial reword of upload to MVVM.

* Update tests

* More incremental improvements

* Refactor tests to use helper method for composer uploads.

* Add drag and drop tests

* lint

* Add commentary

* fixup test

* More precise selector

* Retarget uploads

* lint

* fixup

* one more type

* update snap

* Fixup composerUploadFiles

* fix import

* lint

* Copy and paste fixes too

* Add tests for pasting

* Add tests for pasting files.

* Remove redundant fn

* rm comment

* tidy up

* Test cleanup

* More clean up

* another fix

* Use condensed version

* Cleanup tests

* more cleaning

* last bity

* s/throw Error/throw new Error/
2026-05-12 11:30:30 +00:00
Zack 39607799de Refactor view source event to MVVM (#33428)
* Refactor view source event to MVVM

* remove unused variable since movement

* Update view source event screenshots

* Update packages/shared-components/src/room/timeline/event-tile/body/ViewSourceEventView/ViewSourceEventView.tsx

Co-authored-by: Florian Duros <florian.duros@ormaz.fr>

* Use view model disposables for source event decryption

* Consolidate source event view model updates

* Fix prettier

* Fix view source expanded class name

* Remove void from source event decryption

---------

Co-authored-by: Florian Duros <florian.duros@ormaz.fr>
2026-05-12 11:17:47 +00:00
Zack b19025e578 Refactor MJitsiWidgetEvent to shared view MVVM (#33457)
* Refactor Jitsi widget event to shared view

* Align Jitsi widget view model setters

* Inline Jitsi widget icon color

* Remove unused Jitsi timestamp setter

* Tighten Jitsi widget subtitle type
2026-05-12 09:12:43 +00:00
Zack 67ea6bfa53 Refactor room avatar event to MVVM (#33473)
* Refactor room avatar event to MVVM

* Cover room avatar event factory wrapper

* Fix prettier

* added screenshots
2026-05-12 08:17:33 +00:00
R Midhun Suresh 2933b51fea Call Tile - Render a tile showing that a call was started (#32988)
* Ignore specific directories

Otherwise newly generated screenshots will be ignored.

* Create a CallStartedTileView

This view will render a tile that shows when an EC call was started in
the timeline.

* Add storybook tests

* Add vite tests

* Export the view from shared-components package

* Add a viewmodel for driving the view

* Support rendering the tile in the tile factory

* Fix tile rendering

* Add comment to explain css height

* Use semantic token for gap

* Update snapshot

* Use min-height over height

This will scale the element if the user sets a custom font size.

* Don't show timestamp for call started tile

Timestamp is already shown as a part of the tile content.

* Fix broken tile on bubble layout

The tile should be full-width and not shown within a bubble.

* Fix tests

* Update storybook title
2026-05-11 21:12:51 +00:00
Zack c62acc6634 Refactor MKeyVerificationRequest to shared view MVVM (#33461)
* Refactor key verification request to shared view

* Fix prettier

* add tests to pass coverage
2026-05-11 11:36:07 +00:00