* Add title attribute for message preview
So that the full message is shown in a tooltip on hover.
* Fix test
* Update src/components/views/rooms/RoomListPanel/RoomListItemView.tsx
Co-authored-by: Florian Duros <florianduros@element.io>
---------
Co-authored-by: Florian Duros <florianduros@element.io>
* Very first pass at shared component views
Turn the trivial TextualEvent into a shared component with a separate view
model for element web. Args to view model will probably change to be more
specific and VM typer needs abstracting out into an interface, but should
give the general idea.
* Remove old TextualEvent
* Pass showHiddenEvents
Because we used it anyway, we just cheated by getting it from the context
* Factor out common view model stuff
* Move ViewModel interface into the shared components
* Add tiny wrapper hook
* Move showHiddenEvents into props fully
* Fill in stories / test
* chore: setup storybook
cherry pick edc5e8705674b8708d986910b02b5d2545777fb3
from florianduros/storybook
* Add TextualEvent component to storybook
* Add mock view model & snapshot
* Remove old style stories entry
* Change import
* Change import
* Prettier
* Add paxckage patch to @types/mdx
for React 19 compat
* Pass getSnapshot as getServerSnapshot too
* Maybe make sonar regognise tests as tests
* Typo
* Use storybook reacvt-vite
There's no reason to use the react-webpack plugin just because our app
is stuck on webpack, it just means we have vite as a dependency too.
* Change here too
* Workaround for incomatible types in rollup
https://github.com/rollup/rollup/issues/5199
* Remove webpack styling addon
Not necessary now we're using vite
* Hopefully do screenshot testing...
* need newer node
* quote issues
* Make it an npm script
* colons
* use right port
* Install playwright browsers
* Try without the if
* Oh right, we need the headless shell
* Pass flag to store received screenshots
and upload diffs too
* Update snapshot from received
* Include platform in snapshot / received dir
because font rendering differs between platforms
* Suffix snapshots with platform instead
like we do for playwright
* Remove unnecessary env vars
and better name
* Add some comments
* Prettier
* Fix yarn.lock
* Memoise vm creation
Co-authored-by: Florian Duros <florianduros@element.io>
* Add implements
Co-authored-by: Florian Duros <florianduros@element.io>
* Fix listener interface
* Add implements
Co-authored-by: Florian Duros <florianduros@element.io>
* Fix types
* Fix more types
* Add a superclass that simple view models can extend
to reduce boilerplate
* Revert useMemo
as this isn't a hook
* Unused import
* Actually commit the file the branch is named after
* Add missing playwright step
* Add return type annotation
* Change to add / remove subscription callback
* Change to 'add' rather than 'subs.subscribe'
* Add cache specifier for only shell playwright browsers
* Add copyright headers
* Better comment wording
* Make amit an arrow function
so it can be passed directly as a callback
* Add a test
---------
Co-authored-by: Florian Duros <florian.duros@ormaz.fr>
Co-authored-by: Florian Duros <florianduros@element.io>
* Add quote functionality to MessageContextMenu (#29893)
* Remove unused import of getSelectedText from strings utility in EventTile component
* Add space after quoted text in ComposerInsert action
* Add space after quoted text in MessageContextMenu test
* add new line before and after the formated text
* refactor: extract i18n from languageHandler to not import matrix-js-sdk, settings...
* fix: circular deps
* feat: add language selector to storybook
* fix: make visual test works in CI
* Very first pass at shared component views
Turn the trivial TextualEvent into a shared component with a separate view
model for element web. Args to view model will probably change to be more
specific and VM typer needs abstracting out into an interface, but should
give the general idea.
* Remove old TextualEvent
* Pass showHiddenEvents
Because we used it anyway, we just cheated by getting it from the context
* Factor out common view model stuff
* Move ViewModel interface into the shared components
* Add tiny wrapper hook
* Move showHiddenEvents into props fully
* Fill in stories / test
* chore: setup storybook
cherry pick edc5e8705674b8708d986910b02b5d2545777fb3
from florianduros/storybook
* Add TextualEvent component to storybook
* Add mock view model & snapshot
* Remove old style stories entry
* Change import
* Change import
* Prettier
* Add paxckage patch to @types/mdx
for React 19 compat
* Pass getSnapshot as getServerSnapshot too
* Maybe make sonar regognise tests as tests
* Typo
* Use storybook reacvt-vite
There's no reason to use the react-webpack plugin just because our app
is stuck on webpack, it just means we have vite as a dependency too.
* Change here too
* Workaround for incomatible types in rollup
https://github.com/rollup/rollup/issues/5199
* Remove webpack styling addon
Not necessary now we're using vite
* Hopefully do screenshot testing...
* need newer node
* quote issues
* Make it an npm script
* colons
* use right port
* Install playwright browsers
* Try without the if
* Oh right, we need the headless shell
* Pass flag to store received screenshots
and upload diffs too
* Update snapshot from received
* Include platform in snapshot / received dir
because font rendering differs between platforms
* Suffix snapshots with platform instead
like we do for playwright
* Remove unnecessary env vars
and better name
* Add some comments
* Prettier
* Fix yarn.lock
* Memoise vm creation
Co-authored-by: Florian Duros <florianduros@element.io>
* Add implements
Co-authored-by: Florian Duros <florianduros@element.io>
* Fix listener interface
* Add implements
Co-authored-by: Florian Duros <florianduros@element.io>
* Fix types
* Fix more types
* Revert useMemo
as this isn't a hook
* Unused import
* Add missing playwright step
* Add return type annotation
* Change to add / remove subscription callback
* Change to 'add' rather than 'subs.subscribe'
* Add cache specifier for only shell playwright browsers
* Add copyright headers
---------
Co-authored-by: Florian Duros <florian.duros@ormaz.fr>
Co-authored-by: Florian Duros <florianduros@element.io>
* Add support for allowDownloadingMedia
* Add tests.
* Allow downloading when no event is associated.
* fix lint
* Update module API
* Update lock file too
* force CI
* Fix the default mobile_guide links.
Whilst the script should update these if it fails these should link to Element X which is now the default app that we link out to from this page.
* Rename the mobile_guide_app_variant values to be clearer.
Also handle invalid config values by defaulting to Element X.
* Rename snapshots to match new app variant identifiers.
* remove resetCrossSigning flag, which is no longer in use
* drop unnecessary check for cross-signing
The only place where verifyUser is called already checks that cross-signing is
set up. (The function name is also incorrect, since it checks for the
cross-signing key, and not for 4S.)
* avoid calling accessSecretStorage to set up cross-signing or 4S
Send the user to the Encryption settings tab instead
* only create secret storage when specifically asked to
* deprecate using accessSecretStorage to create new 4S
* also remove the obsolete snapshot
* add tests
* Tweak comment
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
---------
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Reapply "Update the mobile_guide page to the new design. (#30006)" (#30104)
This reverts commit c51823db5e.
* Use Element X as the default mobile_guide_app_variant when omitted.
* Fix a build error on Windows.
Additionally revert "Remove unnecessary <%= require %> usages" and let webpack handle all of the assets (without a manual copy rule).
* Exclude mobile_guide from coverage gate
It has playwright tests
* Revert the re-introduction of <%= require %>
* Fix snapshot tests on mobile_guide.
---------
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Submit filtered settings to rageshakes and sentry.
* Add flag to omit some settings from being exported.
* Hide user timezone
* Hide recent searches and media event ids
* Lint
* use better wording
* lint
* Prevent language from being sent
* Add tests to check keys are prevented from being uploaded.
* don't export invite rules
* Update tests
* remove incorrect check for cross-signing
SETUP_ENCRYPTION tries to set up everything (4S, cross-signing and key backup),
rather than just setting up encryption, as its name would imply.
crossSigningReady == false happens when the user's device isn't verified, so it
should trigger VERIFY_THIS_SESSION rather than SETUP_ENCRYPTION
* reorder conditions in allSystemsReady to match the order in the if statements
* explicitly handle secrets missing from 4S
rather than falling back to the SETUP_ENCRYPTION catch-all. Also, remove
SETUP_ENCRYPTION since it is no longer used.
* convert button handlers to switch statements for consistency
(almost) all the other functions that use make decisions based on Kind use
switch statements
* update i18n (remove obsolete string)
The latest mobile designs for Element Call have it displaying the room name in an "app bar". So the Element Call widget will soon start requesting the capability to learn the room name, and Element Web should auto-approve this capability.
* chore: update compound-web
* chore: remove unused export
* feat: export content of more option menu
* feat: add context menu
* feat: add `showContextMenu` to vm
* feat: use context menu in new room list
* test: add tests for room list item
* test: fix room list test
* test: add `showContextMenu` test for `useRoomListItemViewModel`
* test: add e2e test for context menu
* chore: update compound
* test: update snapshots and e2e test
* fix: avoid icon blinking when we reopen the context menu
* test: add test for menu closing
* doc: remove useless tsdoc param
* chore: update `@vector-im/compound-web`
* refactor: remove manual focus
* test(e2e): fix focus after closing notification menu
* doc: remove useless jobs
* Add new custom component api.
* Remove context menu, refactor
* fix types
* Add a test for custom modules.
* tidy
* Rewrite for new API
* Update tests
* lint
* Allow passing in props to original component
* Add hinting
* Update tests to be complete
* lint a bit more
* update docstring
* update @element-hq/element-web-module-api to 1.1.0
* fix types
* updates
* hide jump to bottom button that was causing flakes
* lint
* lint
* Use module matrix event interface instead.
* update to new module sdk
* adapt custom module sample
* Issues caught by Sonar
* lint
* fix issues
* make the comment make sense
* fix import
* Show indicator in settings dialog when user doesn't have recovery set up
* Update settings headers to use red dot for recommended settings
* update recovery setup toast and remember if the user dismisses it
* update playwright snapshots
* use typed event emitters
* reverse logic for the account data flag
* fix comment and type
* feat: mvvm split user info, create userinfoadmintools container component
* test: mvvm userinfoadmintools and view
* feat: user info admin components more split and comments
* test: mvvm user admin info mute view models more coverage
* chore: rename user-info folder to user_info
* Use nav for new room list and label sections
The old room list had a nav element but it was missed in the new one,
so add it and albel the sections. Also remove the test ID and use
this instead.
* Update snapshots
* Use the function we define above
* feat: add new hook to check if a node is visible
* feat: filters in new room list can be collapsed
* feat: add animation to filter list
* feat: hide chevron when list fit on one line
* fix: use correct label for expand button
* test: update room list panel snapshots
* test: add tests for useIsNodeVisible
* chore: update i18n
* test: add tests for primary filters
* test(e2e): update existing screenshots
* test(e2e): update primary filter tests
* chore: typo in css file
* refactor: replace ternary by if in filter condition
* feat: compute filter height instead of hardcoded value
* fix: floor floating computation on filter
* refactor: move hooks to dedicated files
* test: update tests
* feat: rework collapse feature
* test: remove room list panel snapshot
* test: update room list primary filter tests
* test(e2e): update screenshots
* test(e2e): update screenshots
* test(e2e): fix favourite filter in scroll behaviour test
* fix: accessibility order when tabbing