Commit Graph

64871 Commits

Author SHA1 Message Date
Florian Duros
04ef3a2d5d doc: remove DOCKER_HOST note in playwright doc (#32518)
Since https://github.com/element-hq/element-web/pull/32502 and
https://github.com/element-hq/element-web/pull/32489 this is not an
issue anymore
2026-02-16 10:41:47 +00:00
Michael Telatynski
be843c4baa Use typescript for webpack config (#32507)
* Move declaration.d.ts to @types

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Load customisations.json without `require`

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Remove webpack rule from when we were consuming shared-components ts vs js

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Avoid hardcoding paths to modules in webpack config

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Convert webpack config to typescript

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Stub js webpack/postcss plugins

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Patch broken rollup types until https://github.com/getsentry/sentry-javascript-bundler-plugins/pull/870 is released

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Install @types/postcss-import

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix fdir relying on @types/picomatch

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update pnpm-lock.yaml

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2026-02-16 10:10:24 +00:00
ElementRobot
d0b53a6a6c [create-pull-request] automated change (#32516)
Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
2026-02-16 06:47:20 +00:00
Michael Telatynski
2a450e2520 Fix usage of nx in npm scripts (#32505)
* Fix usage of nx in npm scripts

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Tidy project.json

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2026-02-13 16:44:20 +00:00
David Langley
4912c6e71b Set history visibility to "invited" for DMs and new non-public rooms when creating a room (#31974)
* Set history visibility to "invited" for DMs and non-public rooms

* Update e2e tests and screenshots

* lint

* Revert screenshot

* Add test that an override of historyVisibility still works
2026-02-13 14:10:43 +00:00
Ally Robinson
2ff5183806 Update font format from 'ttf' to 'truetype' (#32493)
As per css docs `ttf` isn't a valid format specifier. Instead, for '.ttf' fonts you need to use `truetype`.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@supports#font-format
2026-02-13 13:58:42 +00:00
Michael Telatynski
d684945877 Specify nx output style in CI (#32500)
to avoid confusing the gha logger

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2026-02-13 13:01:55 +00:00
Michael Telatynski
b3ca5c73c3 Run only browser in docker for test:playwright:screenshots (#32502)
* Rename playwright-screenshots script to -experimental

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Run only browser in docker for test:playwright:screenshots

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix playwright config for non-remote runs

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2026-02-13 12:50:43 +00:00
Michael Telatynski
bbaca2b390 Fix linters (#32503)
Prettier doesn't support nested ignore files - https://github.com/prettier/prettier/issues/17099

The eslint rules no longer applied, we fixed the issues they were ignoring

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2026-02-13 12:44:55 +00:00
S1m
226b260319 Fix videos on Firefox (#32497)
* Fix videos on Firefox

Videos are using cross-origin requests, and Firefox
blocks them before passing to the service worker if
the element doesn't have the crossorigin attribute to
give CORS support

* React needs camelCase attr names

---------

Co-authored-by: David Baker <dbkr@users.noreply.github.com>
2026-02-13 12:44:11 +00:00
Andy Balaam
1af3ae70f8 Move DeviceListener into the device-listener directory (#32434)
* Move DeviceListener into the device-listener dir

* Provide device-listener/index.ts
2026-02-13 10:31:18 +00:00
Michael Telatynski
68fc0123ac Fix localazy download by using pnpm (#32498)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2026-02-13 10:22:42 +00:00
Michael Telatynski
1c008df5c0 Fix package.sh pnpm clean -> nx
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2026-02-13 10:40:25 +00:00
Michael Telatynski
615a4e4385 Switch pnpm catalogMode back to manual 2026-02-13 10:38:00 +00:00
Michael Telatynski
b3b6574638 Run only the browser in docker for storybook screenshots (#32489)
* Remove old screenshots

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add experimental playwright-screenshots.sh utility and use it for shared-components `test:storybook:update`

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Tidy up

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate based on review

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2026-02-13 10:20:16 +00:00
Florian Duros
d7ca3dbd1d Add .pnpm-store to gitignore (#32499)
* chore: add .pnpm-store to gitignore

* Update .gitignore

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-02-13 09:55:02 +00:00
Michael Telatynski
9aa0dab2a8 Tidy package.json (#32487)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2026-02-13 08:52:53 +00:00
ElementRobot
6937ca0a21 [create-pull-request] automated change (#32494)
Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
2026-02-13 06:34:38 +00:00
mxandreas
ca2ea791b3 Use a dedicated FAQ/help entry for key storage. (#32480)
* Use a dedicated FAQ/help entry for key storage.

* Update tests.
2026-02-13 01:58:06 +00:00
David Langley
7fce635cc5 Add licensing email to readme (#32485)
* Add licensing email to readme

* fix md syntax

* lint :/
2026-02-12 17:07:44 +00:00
Robin
5094613180 Avoid showing two chat timelines side by side after a call (#32484)
* Avoid showing two chat timelines side by side after a call

In certain situations you could still end up with the chat timeline visible in the right panel in addition to the main split. For instance if you are in a call, open the chat panel, then leave the call while looking at another room, the chat panel would remain open upon navigating back to the original room.

* Avoid using flushPromises in tests
2026-02-12 16:28:07 +00:00
Michael Telatynski
2ee6933cfd Fix shared-components storybook:update script (#32486)
It was failing due to being unable to access pnpm-workspace.yaml so change the docker context to the root of the monorepo

Also disable pnpm-link script in the docker env and node-linking for storybook tests

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2026-02-12 15:59:01 +00:00
David Langley
838b3624b8 Remove server acl status/summaries from timeline (#32461)
* Remove server acl strings and timeline status/summaries

* Put back server acl string used in room settings
2026-02-12 15:40:07 +00:00
Michael Telatynski
f326814895 Use nx for running dev tasks (#32476)
* Use nx for running dev tasks

Initially only build & start
This enables caching, i.e. if you made no changes to shared-components then it can skip that build and speed up your iteration cycle time

nx will also be used for our release tooling down the line

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Drop `concurrently` - we no longer use it

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Make knip happier

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Also use nx tasks for jest & tsc

so that SC gets built as needed

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add missing @nx/jest plugin

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix prebuild:rethemendex for Windows

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix prebuild:rethemendex for Windows

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add prepack script to package.json

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2026-02-12 15:19:59 +00:00
Surendra Manjhi
7eff3f6c68 Add descriptions to voice processing settings (#32464)
* chore(settings): add descriptions to voice processing settings

* chore: remove non-English translation updates

* chore(ci): add voice processing description keys to yml allowlist
2026-02-12 14:36:09 +00:00
Aditya Cherukuru
6a7cbce2de Update screenshot for reactive display name disambiguation (#32431)
* Update screenshot for reactive display name disambiguation

This PR updates the Playwright screenshot tests to reflect the changes
from matrix-js-sdk PR #5135, which fixes reactive display name
disambiguation.

The screenshot will be updated based on CI test results to show the
correct disambiguation behavior when multiple room members share the
same display name.

Related: matrix-org/matrix-js-sdk#5135

* Update member list screenshot for reactive disambiguation

* Retry CI for flaky MatrixChat timeout
2026-02-12 13:04:08 +00:00
Michael Telatynski
9912b72535 Consolidate dep versions using pnpm catalogs (#32462)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2026-02-12 11:17:02 +00:00
ElementRobot
892dcec448 [create-pull-request] automated change (#32470)
Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
2026-02-12 06:38:43 +00:00
David Langley
a643b727b5 Remove unused file (#32460) 2026-02-11 19:15:19 +00:00
Michael Telatynski
23428c5bd6 Apply pnpm dedupe to renovate config (#32450)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2026-02-11 17:16:41 +00:00
Michael Telatynski
e1ec93d4bf Update to matrix-js-sdk changes (#31871)
* Update to matrix-js-sdk changes

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Delint

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Simplify

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2026-02-11 16:14:06 +00:00
Michael Telatynski
df11e1ff2b Fix end-to-end-tests complete when skip=true 2026-02-11 16:02:00 +00:00
Zack
7e05552325 Refactor DisambiguatedProfile to shared-components (#31835)
* Refactoring of DisambiguatedProfile into shared components

* correct values and refactoring

* Add username color classes to Storybook and clean up DisambiguatedProfile stories

* Refactor DisambiguatedProfileView to use class component and enhance props structure

* Refactor DisambiguatedProfile components to use member object and enhance props structure

* Update copyright year to 2026 and adjust the tests to fit the correct memberinfro interface

* Add DisambiguatedProfileViewModel class

* Refactor DisambiguatedProfileViewModel to use member object and the rest of the props

* Refactor SenderProfile to use DisambiguatedProfileViewModel and update DisambiguatedProfile styles

* Refactor DisambiguatedProfileView to enhance  interface documentation

* Refactor DisambiguatedProfileView to use CSS modules for styling

* Updated css + tests to fit the new changes

* Update of the test snap to fit the current tests

* Adjusted RoomMemberTitleView and SenderProfile to use the new viewmodel, removed the old component.

* Implemented new viewmodel test for DisambiguatedProfileViewModel

* Update copyright text

* update css class names

* update to correct snapshot after css name changes.

* Apply suggestion from @florianduros

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

* Moved logic to viewmodel instead of having it in the view. Removed unessecery functions and css.

* removed unessecery file that I copied from root folder, this is no longed needed as I use the root file instead in the viewmodel

* Better Formatting

* Fix issues after merging develop

* FIxed issues with eslint

* Added Visible, non-interactive elements with click handlers must have at least one keyboard listener from eslint docs

* Updated snapshot the fit the latest update with eslint button requirment

* Update snapshot screens for new tests.

* Update tests to reflect snapshots

* Update snapshot due of outdated CSS module classes

* Add useEffect to call setProps on the DisambiguatedProfileViewModel
when props change, ensuring the view updates with the correct display
name. Update LayoutSwitcher snapshot for new CSS classes.

* Fix Playwright editing tests by adding exact match for Edit button selector
The DisambiguatedProfile refactoring added role="button" to the component,
causing the selector { name: "Edit" } to match both the user "Edith" and
the actual Edit button.

* Fix ForwardDialog location tests for async hook rendering The SenderProfile component now uses hooks that trigger async state updates.

* Fix SenderProfile useEffect to only update changeable props

* Added letter spacing

* Added ClassName prop

* Update snapshot

* Update letter-spacing

* Update snapshot screenshots

* Update Snapshots

* Update snapshot

* Removal of letter spacing to test CI

* Apply suggestion from @florianduros

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

* Added closing brackets + added back letter-spacing

* Update snapshots

* Update snapshot

* Update span to correctly apply to the CI tests, it wasn't possible to use classname as a prop

* Update snapshot

* Added comment to explain the span classNames

* DisambiguatedProfileViewModel.setProps to runtime-changing props

* replace DisambiguatedProfileViewModel setProps with explicit setters and update call sites

* Update Setters

* Prettier FIx

* Update Setters

* update DisambiguatedProfileViewModel setters and tests

* Update SenderProfile to show connect display name

* clone snapshot in setters to trigger reactive updates

* use snapshot.merge in DisambiguatedProfileViewModel setters

* emove duplicated logic in DisambiguatedProfileViewModel

* Change snapshot name

* Update viewmodel

* Updated Tests

* typo

* Update src/viewmodels/profile/DisambiguatedProfileViewModel.ts

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

* Removal of unused function

* Update snapshots

* Update tests to pass coverage

* Update Eslint

---------

Co-authored-by: Florian Duros <florian.duros@ormaz.fr>
2026-02-11 15:31:06 +00:00
Will Hunt
7f31cf196f Fix Status Bar being unreadable when the user overrides the default OS light/dark theme. (#32442)
* Remove --cpd-color-gradient-critical-linear

* update package

* update snap
2026-02-11 13:28:17 +00:00
Michael Telatynski
0692e120fa Fix CI after switching to pnpm (#32449)
* Simplify CI for shared-components

Now that we use pnpm which understands monorepos we can skip manually installing shared-components in CI

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix docs workflow not being able to find pnpm version

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix storybook workflow not seeing lockfile and using wrong package manager

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix dockerbuild

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2026-02-11 13:22:25 +00:00
ElementRobot
6ab88106c9 [create-pull-request] automated change (#32443)
Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
2026-02-11 10:55:28 +00:00
Michael Telatynski
ffd4270051 Switch from yarn classic to pnpm (#31971)
* Switch shared-components from yarn classic to pnpm

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Switch element-web from yarn classic to pnpm

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Switch CI to pnpm

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update docs & comments

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Hold back postcss to match yarn.lock & use workspace protocol

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Tweak CI

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Rid the world of `$(res)`

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Switch to type=module

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix module import

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Make knip happy

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update playwright imports

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Make docker build happy

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Remove stale params

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix badly formatted logging

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Switch to lodash-es

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Make jest happier

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Switch element-web to ESM

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update testcontainers imports

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix modernizr cjs

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix modernizr cjs ignore files

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Move modernizr sonar exclusion to exclude everything

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update playwright tests for esm compat

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add pnpm-link utility

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Test matrix-web-i18n

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Discard changes to src/vector/index.ts

* Update playwright-common

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Use catalogs

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Improve pnpm-link script

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Use pnpm import to regenerate lockfile from yarn.lock

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2026-02-11 10:35:29 +00:00
Florian Duros
9360f0e5e2 Update MVVM examples and guidelines (#32437)
* doc: update MVVM examples and guidelines

* doc: typo `costlyDescriptionLoading`

Co-authored-by: R Midhun Suresh <hi@midhun.dev>

* doc: typo `costlyDescriptionLoading`

Co-authored-by: R Midhun Suresh <hi@midhun.dev>

---------

Co-authored-by: R Midhun Suresh <hi@midhun.dev>
2026-02-10 17:36:54 +00:00
Richard van der Hoff
2540c8a8af Add logging around key-storage-out-of-sync handling (#31985)
... because unpicking this was a nightmare
2026-02-10 16:42:14 +00:00
RiotRobot
6613c3f87a Reset matrix-js-sdk back to develop branch 2026-02-10 16:05:48 +00:00
RiotRobot
858b6b6147 Merge branch 'master' into develop 2026-02-10 16:05:17 +00:00
RiotRobot
d7f94f89dc v1.12.10 2026-02-10 16:01:35 +00:00
ElementRobot
8a21062476 Fix room list not being cleared (#32436) (#32438)
* Fix room list not being cleared

RoomListV3 was lacking an onNotReady which meant that the room list
would sometimes not be cleared between logins.

* Fix return type



---------


(cherry picked from commit 81b111371f)

Co-authored-by: David Baker <dbkr@users.noreply.github.com>
Co-authored-by: Florian Duros <florianduros@element.io>
2026-02-10 15:48:00 +00:00
Skye Elliot
f6352afc6e Update globalBlacklistUnverifiedDevices on setting change (#31983)
* fix: Update `globalBlacklistUnverifiedDevices` on setting change

Signed-off-by: Skye Elliot <actuallyori@gmail.com>

* fix: Use `SettingLevel.DEVICE` filter on blacklisted device watcher

* tests: Add playwright test for blacklist unverified devices toggle

* docs: Correct test step description

Co-authored-by: Andy Balaam <andy.balaam@matrix.org>

* tests: Add test for local vs global blacklist unverified devices

* tests: Ensure local toggle overrides global toggle.

* tests: Add unit tests for blacklistUnverifiedDevices listener

---------

Signed-off-by: Skye Elliot <actuallyori@gmail.com>
Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
2026-02-10 15:26:57 +00:00
RiotRobot
0575ca9598 Upgrade dependency to matrix-js-sdk@40.2.0 2026-02-10 15:18:37 +00:00
David Baker
81b111371f Fix room list not being cleared (#32436)
* Fix room list not being cleared

RoomListV3 was lacking an onNotReady which meant that the room list
would sometimes not be cleared between logins.

* Fix return type

Co-authored-by: Florian Duros <florianduros@element.io>

---------

Co-authored-by: Florian Duros <florianduros@element.io>
2026-02-10 14:46:53 +00:00
Michael Telatynski
a76a0a1dd1 Add bug report link for Element flatpak app 2026-02-10 13:11:02 +00:00
Andy Balaam
09884c6bd1 Extract the "this device" logic from DeviceListener (#32420)
* Extract logic for this device from DeviceListener

* Remove a listener that I assume we forgot in DeviceListener

* Use a code block for JSON in a comment

Co-authored-by: Skye Elliot <actuallyori@gmail.com>

* Rename to DeviceListenerCurrentDevice

---------

Co-authored-by: Skye Elliot <actuallyori@gmail.com>
2026-02-10 11:52:36 +00:00
Florian Duros
753e94f165 Use act from @test-utils in SC (#32432)
* test: use `act` from `@test-utils` in SC

* chore: add rules to enforce use of act from `@test-utils`
2026-02-10 11:10:56 +00:00
Florian Duros
1b76f2b72c Put view prefix to room list item file and folder (#32418)
* chore: put `view` prefix to room list item file and folder

* chore: add missing `storybook-static` in gitignore

* test: update visual tests
2026-02-10 09:49:08 +00:00