556 Commits

Author SHA1 Message Date
Skye Elliot cff9119324 Implement UI for history visibility acknowledgement. (#31156)
* feat: Implement UI for history visibility acknowledgement.

Shows a banner above the message composer whenever a user opens a room
with non-join history visibility, which they can dismiss.

- Whenever a user opens an encrypted room with non-join history
  visibility, show them a banner, unless we have already marked it as
  dismissed.
- Whenever a user opens an encrypted room with joined history
  visibility, we unmark it as dismissed.

Issue: https://github.com/element-hq/element-meta/issues/2875

* tests: Add test suite for `RoomStatusBarHistoryVisible`.

* docs: Document `RoomStatusBarHistoryVisible` and props interface.

* feat: Use newer `@vector-im/compound` components.

* test: Update snapshots for `RoomStatusBarHistoryVisible` tests.

* chore: Update playwright screenshots.

* feat: Move `RoomStatusBarHistoryVisible` to `shared-components`.

* fix: Address review comments on `RoomStatusBarHistoryVisible`.

* fix: Address review comments on `RoomStatusBar` and tests.

* chore: Move `RoomStatusBarHistoryVisible` to `room/RoomStatusBarHistoryVisible`

* chore: Fix linting issues.

* feat: Gate behind history visibility labs flag.

* feat: Add link to history sharing docs.

* fix: Resolve build issue with shared-components.

* tests: Enable history sharing lab for unit tests.

* tests: Set labs flag in SettingsStore mock.

* fix: Remove non-existent arg - documentation should be updated!

* chore: Remove old CSS rule filter.

* fix: Use package name for import over relative path.

* fix: Mark styles as important due to improper CSS load order.

* docs: Add doc comments to `!important` directives.

This change should restore my status as a good person.

* docs: Correct license header.

* tests: Update `RoomStatusBarHistoryVisible` snapshot.

* tests: Update shared history invite screenshot.

* tests: Revert spurious screenshot changes.

* feat: Update to use `Banner` component.

* chore: Remove broken import.

* chore: Remove unused translation string.

* tests: Add `getHistoryVisibility` to `currentState` of stub room.

* tests: Update screenshot.

* chore: Remove old snapshots.

* tests: Update playwright screenshot.

* feat: Separate `HistoryVisibleBanner` hooks into MVVM architecture.

* chore: Remove unused imports.

* feat: Use info link over action button for `HistoryVisibleBanner`

* tests: Update snapshot for `HistoryVisibleBanner`.

* chore: Remove unused imports.

* feat: Switch to MVVM architecture per style guide.

* tests: Update snapshot for `HistoryVisibleBanner`.

* tests: Update shared components snapshots.

* tests: Add unit tests for `HistoryVisibleBannerView` stories.

* fix: Linting errors from SonarCloud.

* feat: Finalise conversion to MVVM.

* fix: Silent `this` binding issue.

* tests: Update playwright snapshot.

* feat: Introduce wrapper component for `HistoryVisibleBanner`.

* tests: Update playwright screenshots for `HistoryVisibleBanner`.

* docs: Add doc comments to fields in `HistoryVisibleBannerViewModel`.

* tests: Update playwright snapshot.
2025-12-10 10:37:04 +00:00
R Midhun Suresh a13e9c1285 Export disposing hook from package (#31498)
* Export disposing hook from package

* Increment package version

* Fix lint: Add back new-line
2025-12-10 09:59:54 +00:00
renovate[bot] 98af06b949 Update storybook (#31487)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-09 22:00:33 +00:00
Michael Telatynski fec7923af0 Update index.ts 2025-12-09 17:06:45 +00:00
renovate[bot] 4fcbaaf6e1 Update dependency eslint-plugin-storybook to v10.1.4 (#31485)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-09 16:49:00 +00:00
renovate[bot] bdeae0711a Update dependency @element-hq/element-web-playwright-common to v2.1.0 (#31483)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-09 16:46:13 +00:00
renovate[bot] a7583dbdbc Update dependency glob to v13 2025-12-09 16:39:37 +00:00
renovate[bot] 9ea40d14a5 Update Node.js to 682368d 2025-12-09 16:31:13 +00:00
Florian Duros 7b4894d444 build(ew-api): update to 1.9.0 2025-12-05 09:45:48 +01:00
R Midhun Suresh f4e74c8dd2 Introduce a hook to auto dispose view models (#31178)
* Create hook to auto dispose vm

* Write test

* Fix lint error

* Use proper license

* whatever -> whichever

* Remove eslint comments

* Add clarifying comment
2025-12-05 06:48:50 +00:00
Florian Duros 0126cded9e doc: update api md doc 2025-12-04 18:02:29 +01:00
Florian Duros 94aba63a1d feat(ew-api): add builtins#RoomViewProps#enableReadReceiptsAndMarkersOnActivity
For the multiroom module, we display several room views at the same
time. In order to avoid all the rooms to send read receipts and markers
automatically when we are interacting with the UI, we add
`enableReadReceiptsAndMarkersOnActivity` props.

When at false, the timeline doesn't listen to user activity to send
these receipts. Only when the room is focused, marker and read receipts
are updated.
2025-12-04 18:02:28 +01:00
David Baker 81b3ec9df2 Make ESLint's TS Root dir relative to .eslintrc.js (#31411)
* Make ESLint's TS Root dir relative to .eslintrc.js

As per https://github.com/typescript-eslint/typescript-eslint/issues/251 seems
like this is the answer for having vscode not getting confused about
multiple projects in a monorepo with different tsconfigs.

* Add it here too for good measure
2025-12-03 16:11:15 +00:00
David Baker 61168f0531 Make shared components a regular dependency (#31402)
As other packages need the types too. Also bump version
2025-12-03 13:25:48 +00:00
David Baker 3e2ee7c829 Bump shared components version 2025-12-03 11:19:26 +00:00
David Baker ac399e8afd Add module API as a ependency of shared components (#31393)
As it refers to the i18n API for types
2025-12-03 10:58:44 +00:00
David Langley f35357d3b3 Add api to hide widgets 2025-12-03 09:54:33 +00:00
David Baker df5b56a2ca Bump version 2025-12-02 14:09:21 +00:00
David Baker 5370f25870 Introduce i18nContext (#31347)
* Introduce i18nContext

 * Adds a context that holds the module i1n API
 * Switches shared components to use that instead of importing it directly
 * Adds the context to MatrixChat and BaseDalog so it should be available most places in EW

This is a relatively small PR but does change the way the shared components do i18n so
just doing this one by itself (it stands by itself anyway).

This will allow shared components to use i18n when used in modules.

* Add the file

* Fix import lint

* Name the translate function _t

Then it should continue to get picked up by the script

This seems a bit flaky and ew but I'm not sure I want to get into
changing this in this PR.

* Put humanize back to calling something called _t too

* Missed one

* Add i18n context wrapper to stories

* Unused import

* Fix imports

* wrap richitem

* Wrap other richitem & richlist

* One day I will get my head around this syntax

* Fix import spacing

* Add wrapper to test

* unused import

* Hack around dependency cycle

* Make a moduleapi instance for tests

* Add i18n wrapper to jest-matrix-react

* Simple test for i18napi

* Import type

* Move i18n context wrapper to storybook template

* Unused imports & fix pill story

* Move i18n to its own provider

* Add i18ncontext wrapper to jest tests

* imports

* Bump module api to 1.7.0

* tsdoc
2025-12-02 13:47:14 +00:00
renovate[bot] 99178bce86 Update vector-im (#31306)
* Update vector-im

* Update Jest snapshots

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

* Iterate

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

* Update snapshots

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

* Fix playwright styling overrides

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

* Hold back Compound Design Tokens as threads icons unexpectedly grew a dot in the top corner where we conditionally draw a dot

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

* Iterate

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

* Update snapshots

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

* Iterate

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

* Update snapshots

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

* Iterate

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

* Update Compound Design Tokens to 6.4.1

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

* Update snapshots

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

* Iterate

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

* Revert snapshots

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

* Iterate

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

* Tweak bubble

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

* Update snapshots

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

* Update storybook snapshots

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

* Update jest snapshots

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

* Update jest snapshots

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

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2025-12-02 09:57:28 +00:00
R Midhun Suresh 2d3b554649 Increment package version 2025-12-02 14:43:48 +05:30
R Midhun Suresh 44d8f89754 Merge pull request #146 from element-hq/midhun/multiroom/render-notification-decoration
Add API to render notification decoration from EW
2025-12-02 14:40:46 +05:30
R Midhun Suresh 64a63bdbb0 Update docs 2025-12-02 13:59:21 +05:30
R Midhun Suresh 8f40ea5c0a Add API to render notification decoration 2025-12-02 13:56:53 +05:30
renovate[bot] 10d459d209 Update playwright to v1.57.0 (#31332)
* Update playwright to v1.57.0

* Update screenshots

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

* Resolve playwright conflict from storybook test runner

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

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2025-12-01 16:23:21 +00:00
Skye Elliot f00b643774 <Banner/>: Hide Dismiss button if onClose handler is not provided. (#31362)
* feat: Hide `Dismiss` button if `onClose` handler is not provided.

* tests: Update snapshots for `packages/shared-components`.
2025-12-01 11:44:12 +00:00
David Baker 3d0ad97667 module API 1.7.0 2025-12-01 09:22:18 +00:00
David Baker 0d69056e7b Merge pull request #137 from element-hq/dbkr/human_eyes
Add humanizeTime to the module i18n API
2025-12-01 09:08:51 +00:00
David Baker 65edff067a Better doc 2025-11-28 15:20:51 +00:00
Richard van der Hoff 0d46bc924c Fix "Error: No request context set" in credentials fixture (#145)
Make sure that we've run the `context` fixture first, so that the request API
is configured
2025-11-27 19:40:29 +00:00
Richard van der Hoff 4c928d2854 Avoid mergeTests in test fixture declarations (#138)
Normally, one can find the documentation on a playwright test fixture by
finding its declaration (i.e., you can ctrl-click on the fixture name and find
its documentaion).

However, `mergeTests` re-declares the type, making it much harder to find the
documentation on a given fixture.

It's easy enough to avoid `mergeTests`: we just structure our `test.extend`
calls as a strict hieirarchy.
2025-11-27 17:13:22 +00:00
R Midhun Suresh 3b31bbf4a9 Bump version to 2.1.0 2025-11-27 17:16:56 +05:30
R Midhun Suresh 76b07d736c Make script compatible with yarn berry 2025-11-27 13:23:16 +05:30
David Baker 56662c53e9 Add humanizeTime to the module i18n API
So modules can access it simply with the right context etc
2025-11-26 16:47:58 +00:00
Skye Elliot fd152c9c7e Implement a shared Banner component. (#31266)
* feat: Create composer `Banner` shared component.

* fix: Yarn resolution issues corrupting package store.

* chore: Revert "fix: Yarn resolution issues corrupting package store."

This reverts commit 2c1335420331e9cf086cad5c68f7c7432af4b3a5.

* fix: Revert lockfile changes.

* chore: Resolve linting errors.

* chore: Update playwright screenshots.
2025-11-26 15:13:55 +00:00
David Langley 32cce82790 add back yarn (#31284) 2025-11-26 09:32:26 +00:00
renovate[bot] b33b1f3d01 Update dependency @storybook/icons to v2 (#31337)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-25 23:09:17 +00:00
renovate[bot] 08a1525937 Update react monorepo (#31318)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-25 19:43:37 +00:00
renovate[bot] 4a62e87205 Update all non-major dependencies (#31326)
* Update all non-major dependencies

* Make knip happy

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

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2025-11-25 18:24:10 +00:00
renovate[bot] e7eeb98c9c Update dependency @types/lodash to v4.17.21 (#31327)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-25 16:50:06 +00:00
renovate[bot] c4f22cc3b3 Update storybook to v10.0.8 (#31319)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2025-11-25 16:49:56 +00:00
Florian Duros ef180bf89d chore(EW module): bump to v1.6.0 2025-11-21 16:30:14 +01:00
Florian Duros c570936d33 Merge pull request #135 from element-hq/florianduros/rooms-hide-pinned-message-banner 2025-11-21 15:38:33 +01:00
Florian Duros 7518d1c068 Add ExtraApi#getVisibleRoomBySpaceKey (#134) 2025-11-21 15:31:17 +01:00
renovate[bot] 99ee1f95ad Pin dependencies (#63)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-19 20:09:05 +01:00
R Midhun Suresh 5de9d5d24f Bump version (#31263) 2025-11-18 12:32:49 +00:00
dependabot[bot] 0788c3a207 Bump glob in the npm_and_yarn group across 1 directory
Bumps the npm_and_yarn group with 1 update in the / directory: [glob](https://github.com/isaacs/node-glob).


Updates `glob` from 11.0.1 to 11.1.0
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v11.0.1...v11.1.0)

---
updated-dependencies:
- dependency-name: glob
  dependency-version: 11.1.0
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-18 07:36:22 +00:00
David Baker 250d6571fe Fix pill buttons in dialogs (#31246)
* Fix pill buttons in dialogs

Add the magic class that makes the buttons not be broken by the
dialog button styles.

* Update snapshot
2025-11-17 15:14:34 +00:00
Florian Duros 17066c03fd chore: update element-web-module-api.api.md 2025-11-17 15:57:28 +01:00
Florian Duros a66fd6e976 feat: add option to add the right panel of a room view 2025-11-17 15:13:40 +01:00