148 Commits

Author SHA1 Message Date
Half-Shot
2d7bf91bbe fix import 2026-05-15 14:49:45 +01:00
Half-Shot
bc5d5d96a2 make it happy 2026-05-15 14:44:37 +01:00
Half-Shot
a24b49e76d remove a test we no longer need 2026-05-15 14:04:04 +01:00
Half-Shot
bf558dbc18 Bunch of refactors 2026-05-15 13:40:56 +01:00
Half-Shot
91fb8cc056 snap snap snap 2026-05-15 09:39:06 +01:00
Half-Shot
f8e62f1bfe tidy up again 2026-05-15 09:22:52 +01:00
Half-Shot
aea770c2b5 Merge remote-tracking branch 'origin/develop' into hs/refactor-upload-logic+upload-module-api 2026-05-14 17:26:00 +01:00
Half-Shot
9d83c3cd75 Merge branch 'hs/measured-fix' into hs/refactor-upload-logic+upload-module-api 2026-05-14 14:31:17 +01: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
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
Half-Shot
e097bde2f5 Be a bit more lazy with FileDropTarget 2026-05-12 14:25:34 +01:00
Half-Shot
ac879bc160 fixup test 2026-05-12 14:09:52 +01:00
Half-Shot
ec7c73fcd8 add label 2026-05-12 14:03:46 +01:00
Half-Shot
b25d05a247 Merge remote-tracking branch 'origin/develop' into hs/refactor-upload-logic+upload-module-api 2026-05-12 13:48:47 +01: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
Half-Shot
c569e8914a Park up changes 2026-05-12 12:31:21 +01: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
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
Half-Shot
8685c209b4 Merge remote-tracking branch 'origin/develop' into hs/refactor-upload-logic 2026-05-11 13:46:30 +01: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
David Baker
7f0dccf855
Fix user menu overlap with macos window controls (#33425)
* Fix user menu overlap with macos window controls

Fixes https://github.com/element-hq/element-web/issues/33424

* Snapshot

* snapshot
2026-05-08 11:52:51 +00:00
rbondesson
a1c1d330e9
Fix msgtype changes from edits not rerendering timeline tiles (#33416)
* Fix msgtype changes from edits not rerendering timeline tiles

* Change approach to view model listeners instead

* Repaint the mounted tile on MatrixEventEvent.Replaced
2026-05-08 09:33:23 +00:00
Robin
1b9c9cb92f
Visually indicate on hover that user menu can be clicked (#33408)
* Visually indicate on hover that user menu can be clicked

Seems the cursor: pointer style was lost in d4f419d1b5ced50e475db640329e078f4032fe64.

* Update test snapshots
2026-05-08 08:49:01 +00:00
Zack
cf9cdbbc86
Refactor Mjolnir body to shared view (#33407)
* Refactor Mjolnir body to shared view

* Update compund css + add snapshot

* Remove from app, and add in shared components

* update css to fix axe fail issue
2026-05-07 13:45:43 +00:00
Zack
dfc554aa91
Move unknown body to shared components (#33406)
* Move unknown body to shared components

* added story snapshots
2026-05-06 14:36:34 +00:00
Robin
1cc868a25a
Update button in incoming call toast to say 'Decline' (#33405)
* Update button in incoming call toast to say 'Decline'

Rather than 'Ignore'. This change has been agreed with design since 'Ignore' did not properly communicate that clicking the button would inform the caller that you deliberately rejected their call.

* Update incoming call toast screenshots
2026-05-06 10:46:05 +00:00
Will Hunt
d4f419d1b5
Refactor and redesign user menu (#32812)
* Initial quick settings menu

* Total refactor

* Quick design fixes.

* Refactor to use a view model.

* Remove unused strings

* Apply label

* Refactor naming

* Fixup most tests

* Remove specific theming for old user menu

* prettier

* Lots of cleanup

* Allow overriding the menu classes

* update snap

* Oops translations

* tidy

* Cleanup guest flows.

* Copyrights

* Remove unused classname

* Match guest view to designs

* Add guest screenshots

* Update guests

* snapshot

* Cleanup

* fix import

* Update tests

* More sceenshot fixes

* update collapsed

* move statements to prevent flake

* update snap

* Kick it along

* Click the room list

* Fiddle with the room video list.

* More screenshot adjustments

* fix imports

* fix another import

* Update snaps

* update snaps

* Fix snap flakes

* Refactor to move actions to view component, and callbacks to Actions

* Cleanup

* Cleanup

* Cleanup

* invert auth

* More bits

* fix

* Change md buttons to sm

* Try to assemble the snapshot component of the house of cards

* Consistent newlines between tests

* Update snapshot

Not sure why this was like this, this seems consistet for a logged in user

* Update snapshot

again these seem sensible for a guest

* Remove test

I don't really understand why the thing it asserts matters, so I'm removing
it for now.

* Update snapshot

* screenshot

* Don't show profile picture for guests

I'm not really sure what it meant for this interface to have a
property with a default value, so I've removed it and added the
property to the view model.

* Show avatar in story

* update snapshots for showAvatar

* Update screenshots

& hopefully make hover consistent in one

* Use outline home icon

---------

Co-authored-by: David Baker <dbkr@users.noreply.github.com>
2026-05-06 08:34:36 +00:00
rbondesson
1f71a3a3fe
Make shared components aware of layout and density settings (#33368)
* Add shared event presentation context

* Add app-web event presentation mapper

* Wire event presentation provider into app timelines

* Add Storybook controls for event layout and density

* Wire compact density through app/web event presentation provider

* Use event presentation density for URL previews

* Move TileErrorView layout to event presentation context

* Minor fix and updated snapshot

* Updated snapshots for url preview group

* Prettier fix

* Restore removed story to fix missing playwright test

* Updates after review comments

* Fix prettier issue
2026-05-06 05:30:46 +00:00
David Baker
53d5986b16
Add null check to room directory test (#33353)
It had a waitFor but still flaked because it threw an exception
accessing undefined.
2026-05-05 10:10:41 +00:00
Zack
a9edffead8
prevent replay hover from restarting playback (#33364)
* prevent replay hover from restarting playback

* Fix issue with hover, it's supposed to be a FileBody and not an actual video on replay

* Add test for replay video on hover
2026-05-04 11:53:31 +00:00
Half-Shot
83239b2d36 Merge remote-tracking branch 'origin/develop' into hs/refactor-upload-logic 2026-05-01 16:32:59 +01:00
Ginger
bd369a5109
Properly save undefined id tokens from OIDC login (#33345)
* Properly save `undefined` id tokens from OIDC login

* Fix tests

* Fix tests again

* Fix lints
2026-05-01 13:31:34 +00:00
Half-Shot
6b2fd538ee Test cleanup 2026-05-01 12:06:15 +01:00
Half-Shot
f922b91968 lint 2026-05-01 09:38:28 +01:00
Half-Shot
c6ca2bf216 Merge remote-tracking branch 'origin/develop' into hs/refactor-upload-logic 2026-05-01 09:30:56 +01:00
Ginger
87d724000e
Set type in auth dict for m.oauth UIA stage (#33344)
* Set `type` in auth dict for `m.oauth` UIA stage

* Update tests
2026-05-01 07:08:06 +00:00
Will Hunt
92cd035547 fix import 2026-04-30 17:03:53 +01:00
Will Hunt
8e5eddd4b6 update snap 2026-04-30 16:56:54 +01:00
Will Hunt
178587ff88 Merge remote-tracking branch 'origin/develop' into hs/refactor-upload-logic 2026-04-30 16:51:34 +01:00
rbondesson
b0ee6f5323
Add CSS cascade layers for Compound, shared components, and app/web styles (#33302)
* Layer Compound and shared component CSS

* Layer app theme CSS

* Remove !important flags from ActionBarView

* Remove unnecessary !important statements from shared components

* Avoid dead code errors for *.pcss just because layer is specified after @import url

* Remove unnecessary !important styling

* Override Banner defaults in RoomStatusBarView

* Updated snaps

* Updated snaps

* Fix styling of media body in app/web

* Fix styling for Compound anchors

* Fix styling issues in app/web

* More styling fixes

* Fix a problem extracting css for HTMLExport

* Revert changes

* Fix for theme styling

* Add test to improve coverage

* Prettier

* Fix styling issues

* Add data-kind attribute to avoid global styling override

* Update screenshot that now is correct

* Revert data-kind attribute

* Handle LinkPreview styling in .pcss

* Fix flaky test: Avoid racing the lazy-loaded ManageEventIndexDialog

* Take care of review comments

* Updated snaps

* Updated snaps again after merge

* Remove !important from RoomStatusBar
2026-04-30 11:54:49 +00:00
Michael Telatynski
98b56a3d2f
Refactor QR link flow to use new SDK methods (#33309)
* Refactor QR link flow to use new SDK methods

Requires https://github.com/matrix-org/matrix-js-sdk/pull/5283
For element-hq/wat-internal#188
Split out from https://github.com/element-hq/element-web/pull/33184

* Link to js-sdk branch

* Update tests

* Simplify

* Revert js-sdk linking

* Use js-sdk isSignInWithQRAvailable API to simplify code
2026-04-30 07:43:59 +00:00
Michael Telatynski
5ff302539e
Harden settings types (#33311)
* Harden settings types

* Fix types

* Update apps/web/src/emojipicker/recent.ts

Co-authored-by: Will Hunt <2072976+Half-Shot@users.noreply.github.com>

* Fix suggestion

---------

Co-authored-by: Will Hunt <2072976+Half-Shot@users.noreply.github.com>
2026-04-29 08:46:09 +00:00
Will Hunt
4bee845010
Show user status in timeline (#32991)
* Use other branch

* All the changes that got lost

* Fix merge

* Ensure emoji can only be one character long

* Fixup labs feature

* Remove redundant check

* Update snapshot

* update snapshot

* add snapshot

* unpin

* fix pnpm lock

* undo pn[m lockfile changes altogether

as we shouldn't actually need any afaik

* update snpahot for changed IDs

* Snapshot update

* Snapshot update

* There is now another section

* more snapshots

* more snapshot

* More snapshots

* oh come on snapshots

* actual snapshot update

* Fix sonar issues

* just update the thing manually

* [screams internally]

* Update snapshot

* test for useUserStatus

* Make useUserStatus actually truncate

* Split out slash command to its own file

& add test

* Remove irrelevant comment

* doc

* Comment on non-obvious error message

---------

Co-authored-by: David Baker <dbkr@users.noreply.github.com>
2026-04-29 08:14:22 +00:00
Half-Shot
e796c3a725 fixup 2026-04-28 17:47:16 +01:00
Half-Shot
c3f2dae8ac lint 2026-04-28 17:38:16 +01:00
Half-Shot
d1ad7b3e05 Merge branch 'hs/playwright-tests-for-uploads' into hs/refactor-upload-logic 2026-04-28 17:34:35 +01:00
Will Hunt
2b943768ea
Disable URL Preview setting if disabled on the homeserver (#33279)
* Disallow URL Previews if disabled by homeserver.

* Cleanup nonsense

* cleanup

* cleanup

* fixes

* Remove import

* Add an error handler

* cleanup
2026-04-28 15:08:22 +00:00