Commit Graph

474 Commits

Author SHA1 Message Date
Florian Duros 5fa2da2a91 Room list: improve section in room list context menu (#33733)
* fix: hide section separator in context menu when there is no section

* fix: truncate long section name

* feat: add remove from section entry to room list item context menu

* test: update tests and stories

* test: add new test

* test: use same mocks

* test: add e2e test for "Remove from section"
2026-06-09 10:11:02 +00:00
renovate[bot] 79341a272c Update testcontainers docker digests (#33790)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-09 09:33:21 +00:00
renovate[bot] bebd8f5c1b Update npm non-major dependencies (#33758)
* Update npm non-major dependencies

* Hold back unplugin-dts

* Make knip happy

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-06-09 09:20:56 +00:00
Will Hunt fe69da9c33 Move install statement to allow linked builds to complete (#33782) 2026-06-08 16:26:14 +00:00
Florian Duros 067c1b43a5 feat: remove subphrase in edition section dialog (#33780) 2026-06-08 16:04:28 +00:00
Florian Duros c99590dcb1 Room list: remove checkmark in section toast (#33779)
* feat: remove checkmark in section toast

* test: update playwright screenshots

* chore: add figma link to room list toast sory
2026-06-08 15:39:17 +00:00
ElementRobot 0f9ff12eb7 [create-pull-request] automated change (#33773)
Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
2026-06-08 09:13:53 +00:00
Johannes Marbach 6608e4193d Add padding to account for input outline in devtools (#33766)
* Add padding to account for input outline in dev settings

* Update snapshot
2026-06-08 08:23:52 +00:00
David Baker 5ab5fa1e04 Limit width of the display name in user menu (#33746)
* Limit width of the display name in user menu

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

* Change js-sdk moduleNameMapper to apps/web (#33734)

Turns out the pnpm link has to be set to apps/web to actually work, so update the moduleNameMapper to look there too.

* update screenshots

* Update snapshot

* Update other snapshots

* Snapshot

* More snapshots
2026-06-05 09:49:28 +00:00
Michael Telatynski 702bd7a5a4 pnpm start in EW should start dependencies also (#33761) 2026-06-05 09:36:45 +00:00
renovate[bot] 3dcd2ddaa0 Update testcontainers docker digests (#33756)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-05 09:12:16 +00:00
Michael Telatynski 84b820f72a Update pnpm dependencies based on output of pnpm audit (#33730)
* Remove stub @types/content-type package

* Update axios
2026-06-05 08:35:14 +00:00
ElementRobot 1b81b04ab9 [create-pull-request] automated change (#33755)
Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
2026-06-05 08:24:02 +00:00
Michael Telatynski 7ad8f58a08 pnpm tidy up (#33744)
* Fix tsconfig paths

* Tidy pnpm patches

* Fix pnpm-link.ts for devEngines specification
2026-06-05 07:42:26 +00:00
David Baker bb07f84e41 Add user status on user profile icon (#33653)
* Add user status on user profile icon

Currently unstyled & no tests

* Style the user status icon

* Update snapshot

for avatar wrapper

* More snapshot updates

* add if braces

* Split out user status functions

to avoid circular dep which has the weird effect of just breaking
jest's mocking.

* type imports

* Update imports

* Update snapshot

* Tests

* baseline image

* Just snapshot the component itself

---------

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-06-04 15:15:19 +00:00
Florian Duros f65a53a174 Room list: hide empty section when a filter is enabled (#33747)
* fix: hide empty section when a filter is enabled

* test: add unit tests
2026-06-04 14:40:56 +00:00
Florian Duros 6a6e603450 test: fix notification toast order in custom section to fix flacky tests (#33749) 2026-06-04 14:24:49 +00:00
Michael Telatynski 486fa57b68 [Labs] Sign in with QR on new EW using generated QR for MSC4108 v2024 (#33184)
* PoC Sign in with QR on new EW using generated QR for MSC4108 v2024

* Revert package.json changes

* Prettier

* Fix i18n

* Tidy up

* Remove unused state variable

* Iterate tests

* Partial revert

* Iterate

* Wire up qr_login route

* Iterate UI

* Fix React dev mode double rendering issue

* Fix react key warning

* Hide flow header on login

* Re-roll qr code on channel expiry

* Switch to AbortSignal

* Improve auto-retry QR UX

* Ensure we only show sign in with QR button if enabled

* XXX: enable labs flag on Netlify builds

* Tweak QR code sizing

* Move qr login flow into a dialog to match designs

* Fix null deviceId

* Remove duplicate log

* Iterate

* Fix tests

* Fix types

* Fix tests

* Fix tests

* Make Netlify more useful

* Make Netlify more useful v2

* Update copy

* 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

* Iterate

* Iterate

* Refactor to handle most of the TODOs

* Remove unused code

* Remove unused code

* Use js-sdk isSignInWithQRAvailable API to simplify code

* Restore app-test.ts

* Improve coverage

* Improve coverage

* Remove unused prop/state

* Iterate

* Fix tests

* Iterate

* Tests

* Handle TODOs

* Docs

* Remove redundant call to crossSignDevice()

* Workaround to remove training slash on the serverName before auto-discovery

* Revert "Workaround to remove training slash on the serverName before auto-discovery"

This reverts commit 0335a8fdd1b8e8d949ab7fca17c76f8fab335b58.

* setLoggedIn not to be used with OIDC flows as it clears storage

as per docs on setLoggedIn we should use restoreSessionFromStorage

* Don't show the security_code_prompt unconditionally(i.e. for the web logging in mobile flow)

* Update LoginWithQRFlow-test.tsx.snap

* Update MatrixChat-test from setLoggedInSpy to restoreSessionSpy

* Add todo for server switch

* Add todo about handling base URL or server name

* Handle server name or base URL being returned

* Format

* Fix loading state height

* Handle the homeserver URL differing during QR code login

* Comments

* Comments

* Register OIDC client ID after homeserver swap

* Make QrLoginDialog async to minimise the impact on bundle size

* Handle unsupported HS earlier in the flow

* Iterate

* Delint

* Fix test

* Discard changes to apps/web/element.io/develop/config.json

---------

Co-authored-by: Hugh Nimmo-Smith <hughns@element.io>
Co-authored-by: David Langley <langley.dave@gmail.com>
2026-06-04 13:50:17 +00:00
David Baker d1a6137c90 Change js-sdk moduleNameMapper to apps/web (#33734)
Turns out the pnpm link has to be set to apps/web to actually work, so update the moduleNameMapper to look there too.
2026-06-04 11:55:25 +00:00
renovate[bot] 2b36a9bf29 Update npm non-major dependencies (#33742)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-04 11:00:17 +00:00
renovate[bot] 197cf9a7ca Update testcontainers docker digests (#33739)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-04 09:53:34 +00:00
Andy Balaam cb37bfcf36 Simplify and speed up DeviceListener (#33543)
* Fix incoherent DeviceListener tests

* Re-order DeviceListenerCurrentDevice.recheck to reduce unnecessary work

* Introduce scopes in recheck to demonstrate which variables are shared

* Break recheck into separate functions
2026-06-03 14:33:28 +00:00
R Midhun Suresh 2c8fafdec4 Implement new separator design (#33599)
* Remove `onFocus` and `onBlur` handlers

react-resizable-panels fixed the issue where focus-visible was not
working as expected, so we no longer need this bit of code.

* Implement new hover/focus separator

* Collapse the panel when clicking on the new focus separator

* Remove `isFocusedViaKeyboard` from snapshot

* Update tests and storybook

* Expand panel only on double click

* Add animation

* Fix tests

* Don't render border when type is bar

* Single click to expand, double click to collapse

* Change focus separator color
2026-06-03 12:29:49 +00:00
Florian Duros 47f76c7d7a Update compound web and design tokens (#33698)
* chore: update comppound web and design tokens

* test: update snapshots

* test: update screenshots
2026-06-03 11:51:58 +00:00
Florian Duros f3a35127f6 fix: display compose menu when sections are enabled (#33725) 2026-06-03 10:22:27 +00:00
David Baker ae3ec0ef86 Deflake sliding sync test (#33719)
It was trying to click the room before it had turned the invite filter
off so it was relying on clicking it before the rescind made its way
to the UI.
2026-06-03 09:32:17 +00:00
ElementRobot 918a2dc738 [create-pull-request] automated change (#33681)
Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
2026-06-03 08:19:24 +00:00
rbondesson 536fae63ea Refactor EventTile using the MVVM pattern - #8 (#33691)
* Make EventTileViewModel usage coherent

* Extract render helpers

* Extracted small render views

* Reduce Render Branch Duplication

* Clean Up Dead or Legacy Inline Code

* Add/Update documentation

* Updated snapshot

* Fix Sonar issue

* Updated snapshots after merge error

* Fix prettier issue
2026-06-03 06:20:59 +00:00
renovate[bot] b6713c8d84 Update Node.js to 87ba72a (#33716)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-02 16:48:39 +00:00
renovate[bot] 433edf8a01 Update Element Call to v0.20.0 (#33706)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-02 16:44:28 +00:00
renovate[bot] 7f4a66c574 Update nginxinc/nginx-unprivileged:alpine-slim Docker digest to 17986f2 (#33714)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-02 16:36:03 +00:00
renovate[bot] 0e40d04073 Update testcontainers docker digests (#33708)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-02 16:15:22 +00:00
renovate[bot] 7bc8c0bd28 Update npm non-major dependencies (#33707)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-02 16:15:04 +00:00
David Langley 2c6461db17 Remove resizer from fullscreen modules(like multiroom) (#33684)
* Fix multiroom with new resizer

* Fix multiroom with new resizer

* Add jest test

* Add if/else and comments
2026-06-02 14:10:46 +00:00
Andy Balaam 65b0ac8c28 Support MSC4287 m.key_backup stable prefix as well as the unstable prefix (#33034)
* Support MSC4287 m.key_backup stable prefix as well as the unstable prefix

* Update comments to avoid talking about EX since this now applies more widely

* Make comments about m.key_backup more helpful

* Improve comment on recheckBackupDisabled

* Explicitly say backup is disabled only if enabled is actually set to false
2026-06-02 10:25:03 +00:00
Zack 1c04814c2b Refactor EventPreview to shared MVVM (#33646)
* Refactor EventPreview to shared MVVM

* Fix EventPreviewView export formatting

* Snapshots images for stories

* Deduplicate event preview formatting

* Handle event preview update failures

* Coalesce event preview updates

* Wait for event preview test expectations
2026-06-02 08:36:28 +00:00
David Baker 1b52311f2e Fix jest tests (#33688)
As of https://github.com/element-hq/element-web/pull/33573 (some?)
jest tests fail with "SyntaxError: Cannot use import statement outside a module"
when importing js-sdk. It removes js-sdk from moduleNameMapper in jest config
although I'm not sure why. This puts it back so js-sdk resolves to the
copy linked by our pnpm link script, which also makes get transformed.
2026-06-02 08:25:52 +00:00
Hubert Chathi 2bd5224dbe Apply new design and display logic to logout confirmation dialog (#33426)
* apply new design to logout dialog

* factor out check for other verified devices

* only show recovery warning when user has no other verified devices

* fix playwright tests

* tweak style to better match design

* another playwright test fix

* fix playwright

* Look for the remove button within the dialog

* Use testid to locate 'Remove this device' button

* move rendering to sub-components, rather than embedded functions

* use <Type> element

* use <Text> for the <a> element

---------

Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
2026-06-02 03:08:18 +00:00
RoyS 210421ac47 fix: use configured brand name in JSON and PlainText chat export filenames (#33680)
* fix: use configured brand name in JSON and PlainText chat export filenames

The JSON and PlainText chat export functions were using the hardcoded
default 'matrix' as the brand name in filenames, while the HTML/ZIP
export correctly used the configured brand (e.g., 'Element').

This made the filenames inconsistent:
- ZIP: Element - Room - Chat Export - timestamp.zip
- JSON: matrix - Room - Chat Export - timestamp.json

Now both JSON and PlainText exports pass SdkConfig.get().brand to
makeFileNameNoExtension(), matching the behavior of the base Exporter
class used by HTML exports.

Fixes #32853

Signed-off-by: RoySerbi <roy676564@gmail.com>

* refactor: read brand from SdkConfig inside makeFileNameNoExtension

Address review feedback from @t3chguy: the brand parameter on
makeFileNameNoExtension was effectively dead (all three call sites passed
SdkConfig.get().brand and the 'matrix' default was unreachable).

- Exporter.makeFileNameNoExtension now reads SdkConfig.get().brand directly
- All call sites (Exporter, JSONExport, PlainTextExport) simplified to no-arg
- Drop now-unused SdkConfig imports in JSONExport and PlainTextExport

Tests are unchanged: they already mock SdkConfig to return 'Element', so the
existing 'Element-branded destination file name' snapshots remain valid.

---------

Signed-off-by: RoySerbi <roy676564@gmail.com>
2026-06-01 13:44:28 +00:00
rbondesson 531fc76726 Refactor EventTile using the MVVM pattern - #7b (#33668)
* Normalize Leaf Adapter Pattern

* Extract simple EventTile adapters

* Move simple EventTile adapter VM ownership to EventTileViewModel

* Release listener-owning EventTile child VMs on adapter unmount

* Extract stateful EventTile adapters

* Move action bar VM ownership to EventTileViewModel

* Move reactions row VM ownership into EventTileViewModel

* Extract EventTile receipt rendering

* Extract EventTile sender identity rendering

* Add missing TSDoc on adapters
2026-06-01 13:36:37 +00:00
renovate[bot] bb24352bce Update testcontainers docker digests (#33683)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-01 13:18:59 +00:00
Michael Telatynski 35484e5183 Switch to using diff-cover for the Coverage gate (#33673)
* Switch to using diff-cover for the Coverage gate

Enabling developers to check their PR coverage without waiting for CI

* Remove sonar-project.properties - in automatic mode Sonar will not read this file

* Add note to CONTRIBUTING.md

* Skip sonar in MQ
2026-06-01 12:26:03 +00:00
rbondesson fc23fcad47 Make shared-components tiles render identically outside Element Web - #4 (#33622)
* Use shared MessageTimestampView in edit history

* Move timestamp typography into shared component

* Updated snapshots

* Update comments after clean up

* Fixed sonar issue and added tests for improved coverage

* Fix Prettier issue

* Fix font-size on timestamps and toolbar button sizing

* Updated snapshots

* Updated Storybook screenshots

* Updated screenshots

* Clean up app/web unused/redundant styling for disambiguated profile

* Fix merge error

* Fixes after merge

* Fixes after merge
2026-06-01 05:47:59 +00:00
renovate[bot] fe863dab37 Update dependency @types/content-type to v2 (#33661)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-29 10:23:22 +00:00
renovate[bot] d6e4454ffa Update testcontainers to v12 (#33662)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-29 09:24:43 +00:00
Zack 92383e3f50 Removing the wierd blue border color when focused + adjusted the bord… (#33630)
* Removing the wierd blue border color when focused + adjusted the border to show when squeezed at the end of border

* Update snapshots

* Update edited code block screenshot
2026-05-29 09:00:23 +00:00
rbondesson 7ff2bc3e40 Extracting RovingGridIndex from EmojiPicker and move to shared components (#33650)
* Add shared roving grid navigation provider

* Add RovingTabIndex stories and update RovingGridIndex stories

* Handle multiple toolbars/grids in on roving group

* Refactor EmojiPicker to use shared roving grid navigation

* Exclude the roving stories from playwright tests

* Fix Sonar issues
2026-05-29 08:54:58 +00:00
renovate[bot] 16c0dfcec9 Update dependency @element-hq/element-call-embedded to v0.19.4 (#33658)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-29 08:36:19 +00:00
rbondesson 076593934a Stabilise audio reply-chain Playwright test setup (#33654) 2026-05-29 08:28:56 +00:00
renovate[bot] 1fb6b778e7 Update pnpm to v11 (#33573)
* Update pnpm to v11

* Handle breaking changes

* Attach pnpm hash

* Remove redundant packageManager fields

* Make lint-staged happy

* Lockfile pnpm itself too

* Update pnpm/action-setup for better v11 compatibility

* Specify types to make tsc happier

* Fix permissions

* Check ulimit

* Specify minimumReleaseAgeExclude

* Run desktop tests

* Revert "Run desktop tests"

This reverts commit 911eb0ba2e9237d4b28e3bdaaf8f10ba6f22e827.

* Revert "Check ulimit"

This reverts commit f09eb59d715ba30a2e7fc5dba17dde092bd9bf17.

* Reapply "Check ulimit"

This reverts commit 83227c19ff5d07db91b6586f407f56870b00c041.

* Run desktop tests

* Switch nodeLinker & remove app-builder-lib patch

* Fix webpack.config.ts

* Fix .stylelintrc.cjs

* Fix `events` package

* Makes types happier

* Make knip happy

* Fix hak build

* Make jest happy

* Make pnpm-link happy

* Remove dead file

* Run playwright tests

* Fix linux hak permissions in ci

* Test

* Remove ulimit checks

* Disable skip

* Update nx

* Tweak line endings

* Update screenshot

* Iterate

* Webpack fallback `events`

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-05-29 08:26:59 +00:00