Commit Graph
70217 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
Michael TelatynskiandGitHub 97851e6463 Fail Electron Builder if missing deps (#34556)
* Fail Electron Builder if missing deps

* Iterate

* Whoops
2026-08-05 10:37:21 +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
Michael TelatynskiandGitHub 06bedd0e5a Satisfy pnpm audit (#34568) 2026-08-05 09:59:15 +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
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
b9b0df4e6e Update ghcr.io/element-hq/element-web:latest Docker digest to ac50d4e (#34528)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-05 09:24:51 +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
Michael TelatynskiandGitHub accfbc6f57 Add tag prefix to release drafter configuration
Added tag prefix for module releases in release drafter configuration.
2026-08-04 18:13:11 +01:00
Michael TelatynskiandGitHub 49e3114809 Update resolution path for eslint-plugin-element-call 2026-08-04 15:46:41 +01: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
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
97b9a20cfd Update Node.js to f70403e (#34537)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-04 12:19:29 +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
c091ebec6e Update dependency pnpm to v11.20.0 [SECURITY] (#34250)
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-08-04 13:42:24 +01:00
Michael TelatynskiandGitHub d40d3d81b5 Ensure EW/ED release workflows don't run for modules (#34557) 2026-08-04 13:36:33 +01:00
Michael Telatynski ed5f72f8cf Fix module release workflow 2026-08-04 13:03:01 +01: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
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
a9dcdc067b Update github-actions non-major dependencies (#34535)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-04 08:41:23 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
3a390b71c5 Update webpack (#34534)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-04 08:41:17 +00:00
Michael TelatynskiandGitHub 1bec06ca52 Wire up GHA workflow to release modules (#34544)
* Wire up GHA workflow to release modules

* Iterate
2026-08-04 08:29:40 +00:00
R Midhun SureshandGitHub b45009fc4e Show thicker separator on mouse focus (#34549)
So that when you click the separator and it receives focus, it shows
differently to thinner version.
2026-08-04 08:18:10 +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>
38ea87c11a Update Node.js to v24.18.1 (#34532)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-03 11:31:10 +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
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
f9d8eaf3d3 Update docker/login-action digest to dbcb813 (#34527)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-03 11:15:39 +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
David LangleyandGitHub 7ffb0ffced Stop caching Vite pre-bundled deps in shared-components vitest CI (#34472)
Signed-off-by: David Langley <davidl@element.io>
2026-07-31 13:03:35 +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
242d2c5209 Clarify docs for login-time autodiscovery (#34385)
* Clarify docs for login-time autodiscovery

* Update docs/config.md

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

---------

Co-authored-by: R Midhun Suresh <hi@midhun.dev>
2026-07-30 11:34:43 +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
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Michael Telatynski
3621caaa1d Update dependency stylelint to v17.14.1 (#34417)
* Update dependency stylelint to v17.14.1

* Iterate

* Fix lockfile

* Iterate

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-07-29 15:18:29 +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>
1683525c5b Update react (#34447)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-29 13:55:35 +00:00