Commit Graph
790 Commits
Author SHA1 Message Date
a4f63cdd22 Emoji picker to shared components (#34337)
* Exploration of a virtuoso-powered emoji picker

moved to shared components

Fable generated

* fix pnpm lock

* format & fix some lint issues

* wrong import

* fix lint warning

* Fix off-by-one

and remove manual overflow adjustment: let's leave the default unless
it turns out to be necessary. Emoji should not take that long to load.

* Convert to functional component

* WIP: change to one big virtuoso scroller

* Change to use virtuoso's own onRangeChanged

and santitise category data and how it's passed around

* Convert Tabs to functional component

and put the focusing behaviour back with it just keeping track of
refs by itself.

* Absorb two line config file into main component

* Actually add the config to the main file

* Convert emoji to functional

Also make selected always defined and use useCallback.

* QuickReactions to functional component

* Non-default exports & doc

* Search to functional component

* Well it seems to work just fine now

* Use ref prop

* fix lockfile AGAIN

* lint

* Remove default export

* Remove some mx_ classnames and fix the inputRef

to make the arrow keys in the search box work (well, work as much as
they ever did).

* Remove last of the mx_ id / classnames

(except the one in the test)

* Use useMemo to memoize

* No need to export props interface (I think?)

and fix comment now we don't do the mutation stuff anymore

* Fix test

* Fix axe violations & add screenshots

* Avoid comparing dom snapshots in test

* Allow more before or after, just compare order of the ones present in both.

* Switch existing usages to new emoji picker

and kill the old one with fire

* Unused stuff

* Remove i18n strings

* Fix some tests

* Update screenshots

* Fix test

by removing the last of the weird memoized-but-mutated data structure

* Move the string somewhere more sensible than 'a11y'

* i18n lint

* Give the emojis IDs so aria-activedescendant works

* Fix more tests

* Add a small wrapper emoji picker component

This lets us easily memoize the recent emojis when the emoji picker is opened.
Also it saves a bit of boilerplate.

* Remove old emojipicker css

* Typos

Co-authored-by: David Langley <davidl@element.io>

* Use compound constants

* Rethemendex

* Use catalog version for emojibase

* Add comments

* More comments

* Fix comment

* More comments

* more comments (and make them uniform)

* More comments

* Fix pnpm lock again

* Another comment

* Apply button types to new version

* Add comment

* Disable screenshot

as per comment

---------

Co-authored-by: Will Hunt <2072976+Half-Shot@users.noreply.github.com>
Co-authored-by: David Langley <davidl@element.io>
2026-08-05 13:44:35 +00:00
Michael Telatynski 023f8ea35a Reset matrix-js-sdk back to develop branch 2026-08-05 13:53:32 +01:00
Michael Telatynski b4f7cf665d Merge remote-tracking branch 'origin/master' into develop
# Conflicts:
#	pnpm-lock.yaml
2026-08-05 12:31:36 +01:00
c8f75a4f7c Make permalinks to the same event work more than once (#34483)
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-08-05 10:37:22 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
4b6dfb1cfb Update testcontainers docker digests (#34569)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-05 10:18:58 +00:00
R Midhun SureshandGitHub 01640bb8d6 Remove code to round newSize on resize (#34543)
This never actually fixed the issue of the call elements being blurry
due to fractional pixels. But it also causes other issues like the
max/min width of the left panel never being persisted in settings.
2026-08-05 10:13:38 +00:00
hayyaksiandGitHub 3e043a6f3a Do not ask for a room address when the room already has one (#34499) 2026-08-05 09:51:32 +00:00
RiotRobot a2a996ae50 v1.12.25 2026-08-05 09:08:08 +00:00
hayyaksiandGitHub 386a66c19c Show the filename in the audio player title when the event has one (#34479)
MAudioBody passed the event body straight to the player, so an audio message
sent with a caption showed the caption text instead of the file name. It now
uses presentableTextForFile, the same helper m.file and m.image already use.

Fixes https://github.com/element-hq/element-web/issues/31116
2026-08-05 08:56:26 +00:00
Michael TelatynskiandGitHub 88553b93b5 Stabilise Vitest MatrixChat test (#34555)
* Stabilise Vitest MatrixChat test

* Ignore post-teardown exceptions in vitest

* Iterate
2026-08-05 08:51:02 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
dd80fa8697 Update dependency postcss-nested to v8 (#34540)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-05 08:50:52 +00:00
8bb0e5d590 [create-pull-request] automated change (#34564)
Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
2026-08-05 07:25:44 +00:00
hayyaksiandGitHub a2e4b7e395 Treat an unset profile field as unchanged in collapsed membership summaries (#34493) 2026-08-04 17:37:14 +00:00
hayyaksiandGitHub 74ac300f72 Open space settings when editing a space topic (#34477)
SpaceRoomView renders RoomTopic for the space home view, but the Edit topic button in
the topic dialog dispatched open_room_settings unconditionally, so a space opened the
room settings dialog instead of its own.

Branch on room.isSpaceRoom() and use the existing showSpaceSettings() helper.
2026-08-04 17:36:17 +00:00
RiotRobot 675fd031ed Upgrade dependency to matrix-js-sdk@42.1.0 2026-08-04 14:45:38 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Michael Telatynski
239ef1cdea Update Node.js to f725017 (#34538)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-08-04 12:19:48 +00:00
Michael TelatynskiandGitHub 4aa1a3549e Enable oxlint restriction ruleset (#34307)
* Remove stale max-len disablements

* Remove stale camelCase & naming-convention disablements

* Remove stale ban-ts-comment disablements

* Remove stale no-var disablements

* Remove stale no-empty-property disablements

* Remove stale react rule disablements

* Remove stale no-constant-condition disablements

* Remove stale no-unused-vars disablements

* Remove stale disablements for disabled rules

* fixup camelcase

* Remove dead code

* Tidy code

* Tweak oxlint config

* Use oxlint to apply jsx/tsx extension consistently

* Fix import

* Fix imports

* Rename affected snapshots

* Update more imports

* Enable restriction ruleset

* Make code comply with new rules

* Make code comply with react/button-has-type

* Make code comply with typescript/non-nullable-type-assertion-style

* Comply with node/no-process-env

* Comply with unicorn/prefer-node-protocol

* Comply with unicorn/import-style

* Comply with unicorn/no-process-exit

* Comply with no-proto

* Comply with node/handle-callback-err

* Comply with import/no-commonjs

* Comply with node/no-path-concat

* Comply with unicorn/no-length-as-slice-end

* Comply with unicorn/no-document-cookie

* Comply with unicorn/prefer-module

* Comply with typescript/prefer-literal-enum-member

* Comply with jsx-a11y/anchor-ambiguous-text

* Tweak oxlint config

* Fix resolves

* Iterate

* Iterate

* Iterate

* Iterate

* Iterate

* Iterate

* Iterate
2026-08-04 09:15:07 +00:00
Will HuntandGitHub ca3cf40040 Add a Module API for accessing storage helper functions. (#34284)
* Add a Module API for accessing the Platform.

* Drop overkill module test

* drop unused sample file

* fix import

* Update module API

* fix typo

* fix typo again

* and again

* update api
2026-08-04 08:44:38 +00:00
Michael TelatynskiandGitHub df43921ab9 Attempt to stabilise vitest (#34547) 2026-08-04 07:49:53 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
481bfb32c5 Update testcontainers docker digests (#34529)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-03 11:30:54 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
229f7a66bd Update dependency postcss to v8.5.25 (#34531)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-03 11:30:25 +00:00
rizzlerandGitHub fbe7dbd646 fix member list scroll bug where invited 3PID users replace joined members (#34427)
* Update MemberListView.tsx

* Update MemberListViewModel.ts

* simplify 3PID invite keys to getStateKey and added regression test

* Use state_key for 3PID invite keys and set up test state before initial render

* Format common.tsx with oxfmt
2026-08-03 10:18:29 +00:00
rbondessonandGitHub 4be2863fa8 Move EventTile to shared components - #3b (#34459)
* Refactor redacted body to use render-only view model props

* Fix oxfmt issues

* Missing mock function for MBodyFacytory-test

* Convert to vitest
2026-07-31 05:18:50 +00:00
rbondessonandGitHub 82b313828a Move EventTile to shared components - #3a (#34458)
* Refactor Mjolnir body to use render-only view model actions

* Extracted isMjolnirBodyAllowed from MessageEvent

* Converted the new test file to vitest
2026-07-30 14:50:57 +00:00
rbondessonandGitHub d4d4794f7e Move EventTile to shared components - #4a (#34469)
* Add EventTile root properties to view model

* Move render-related event reads into the vm

* Remove duplicate root derivation in UnwrappedEventTile

* Move data-has-reply derivation into EventTileViewModel

* Move getEventDisplayInfo() and dependencies into EventTileViewModel

* Add tests for improved coverage

* Cleanup and comments

* Fix: Replacement events have a fallback tile but must not show their own reply chain

* Combine dependency and prop updates into one atomic VM update

* Remove property which was never read and fix oxfmt issue
2026-07-30 13:35:09 +00:00
Michael TelatynskiandGitHub 27906ce6e7 Migrate more tests to vitest (#34355)
* Remove doubled-up I18n Provider. ModalManager already provides this.

* Reconfigure svgr into a vite-friendly `?react` resource query

* Move InviteDialog test to vitest

* Move RoomHeader tests to Vitest

* Share serializer between Jest & Vitest

* Attempt to stabilise InviteDialog test

* Fix async leaks

* Migrate more tests to vitest

* Migrate MatrixChat test to vitest

* Deflake

* Iterate

* Iterate

* Iterate
2026-07-30 09:11:29 +00:00
Michael TelatynskiandGitHub 42253a7ae5 Make apps/web/playwright comply with strict mode (#34403)
* Make apps/web/playwright comply with strict mode

Otherwise it sometimes fails to compile matrix-js-sdk as strict mode & noImplicitAny both impact how overloads are asserted

* Iterate
2026-07-30 09:07:03 +00:00
Johannes MarbachandGitHub 4a18eac927 Allow widgets to receive MatrixRTC slot events (#34373)
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2026-07-29 15:49:54 +00:00
Michael TelatynskiandGitHub 0ae908b851 Replace short-lived no-mobile-guide-redirect cookie with SessionStorage (#34350)
* Replace short-lived no-mobile-guide-redirect cookie with SessionStorage

* Add coverage
2026-07-29 15:37:07 +00:00
Michael TelatynskiandGitHub e3cf63610c Update Twemoji credits links (#34461)
* Update Twemoji credit links

As https://twemoji.twitter.com/ is dead

* Update links as we actually use jdecked/twemoji now
2026-07-29 15:17:25 +00:00
Florian DurosandGitHub 7f8c4cef80 Room list: persist section state (expanded/collapsed) (#34351)
* Add new setting to store section state

* Store section state in device settings

* Wire up section header view model and new section functions

* Update room list vm tests

* Add e2e test on section state persistence

* Use more intuitive syntax for SectionExpansionState

* Formatting

* Fix chats section staying expanded

* Add CHAT section case in e2e test
2026-07-29 13:56:40 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
f56cd560ce Update testcontainers docker digests (#34460)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-29 13:50:08 +00:00
55c41d9aa9 [create-pull-request] automated change (#34456)
Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
2026-07-29 08:48:21 +00:00
Michael TelatynskiandGitHub bbec915fb0 Enable more oxlint rules (#34189)
* Fix type imports

* Fix jsdoc

* Fixup types

* Fix stray awaits on non-thenables

* Fixup imports

* Fix splats

* Fix this-context on callbacks

* Memoise react contexts

* Prefer find/flatMap

* Make oxlint happier about our React keys

* Avoid unsafe default function params

* Fixup jsdoc

* Fixup contexts

* Switch from eslint to oxlint

* Some oxlint-related tweaks

* Iterate

* Partial revert to defer some changes and shrink diff

* Iterate

* Add eslint-plugin-element-call and enable the copyright rule

* Set strictStorePkgContentCheck

* Iterate

* Enable forwardRef oxlint rule

* Enable no-unused-vars oxlint rule

* Enable no-implied-eval oxlint rule

* Enable no-duplicate-type-constituents oxlint rule

* Enable explicit-length-check oxlint rule

* Enable prefer-number-properties oxlint rule

* Enable no-callback-in-promise oxlint rule

* Enable no-require-imports oxlint rule

* Remove disablement of most unicorn oxlint rules

* Enable no-conditional-tests oxlint rule

* Enable promise-valid-params oxlint rule

* Enable require-unicode-regexp oxlint rule

* Remove max-len comments as we use oxfmt for formatting

* Enable majority of oxlint `suspicious` rules

* Iterate

* Fix oxlint type-aware lint running without dependencies built
2026-07-29 08:26:07 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
e8848e4746 Update dependency postcss to v8.5.23 (#34439)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-28 22:39:53 +00:00
ea38041c87 Fix joinRoom failing when the roomviewstore state changes. (#34180)
* Fix joinRoom failing when the roomviewstore state changes.

* drive by type fix

* Help debugging failed dispatches

* Use proper types and include roomId in RoomViewStore tests

* remove focus

* Update apps/web/src/stores/RoomViewStore.tsx

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

* fmt

* Add a test for coverage

---------

Co-authored-by: R Midhun Suresh <hi@midhun.dev>
2026-07-28 16:41:36 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
82a22f7869 Update testcontainers docker digests (#34436)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-28 14:43:29 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
edd1452f5c Update nginxinc/nginx-unprivileged:alpine-slim Docker digest to 22f839c (#34434)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-28 14:34:59 +00:00
Michael TelatynskiandGitHub dfa6a58073 Add additional configuration options to Banner module (#34384)
* Add additional configuration options to Banner module

* Iterate

* Iterate
2026-07-28 14:18:50 +00:00
RiotRobot 4b4a520517 v1.12.25-rc.1 2026-07-28 14:11:23 +00:00
RiotRobot c7a180e172 v1.12.25-rc.0 2026-07-28 13:58:49 +00:00
RiotRobot 58368ed250 Upgrade dependency to matrix-js-sdk@42.1.0-rc.0 2026-07-28 13:27:37 +00:00
Will HuntandGitHub df7924df02 Fix various dialogs failing to open due to containing linked text (#34304)
* Wrap Dialog in LinkedTextContent

* actually use originalMxModuleApi

* lint

* fmt
2026-07-28 11:48:56 +00:00
rbondessonandGitHub 4decd338fb Move EventTile to shared components - #2 (#33828)
* Add pure sender render inputs to EventTileViewModel

* Move sender/avatar normalization to EventTile

* Split sender and avatar adapters into focused leaf components

* Add tests for the sender and avatar adapters

* Fix sonar issues

* Make sender profile consume pure member info

* Collapse sender adapter onto snapshot-driven props

* Share current-member resolution for event and reply tiles

* Fix Prettier issues

* Keep settings preview on historical sender profiles

* Update the proprty name to reflect the use of the event-time sender data instead of resolving the current room member

* Fix Sonar issue

* Tighten member to MemberInfo | null in the view model
2026-07-27 09:26:06 +00:00
c82bddf1b0 [create-pull-request] automated change (#34423)
Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
2026-07-27 07:42:27 +00:00
R Midhun SureshandGitHub 67206624a0 Auto Collapse Behaviour - Collapse left panel during calls (#33771)
* Add call resize behaviour

* Export behaviour from behaviours.ts

* Fix e2e tests

* Fix lint

* Move test to vitest

* Pass call-store instead of global access

* Fix broken collapse behaviour on strict mode

* Remove unused variable from test
2026-07-24 12:45:34 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
5d27663f26 Update testcontainers docker digests (#34413)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-24 11:56:59 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
04208eae44 Update dependency @testing-library/jest-dom to v7 (#34418)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-24 10:49:58 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
671b1258fe Update dependency @element-hq/element-call-embedded to v0.22.0 (#34415)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-24 09:15:42 +00:00
5bcfe5aee6 [create-pull-request] automated change (#34409)
Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
2026-07-24 07:21:47 +00:00