* 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
* 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>
* 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
* 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
* Add avatar decoration for low priority rooms
* Write tests
* Remove unnecesasry step in test
* Make the vm expose which decoration to render
* Fix jest test
* Fix broken e2e test
* Add ability to prevent window content being captured by other apps (Desktop)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Increase coverage
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Increase coverage
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Improve coverage
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Delint
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* AccessSecretStorageDialog: clear notice when input is empty
* AccessSecretStorageDialog: Simplify logic for calculating feedback
No functional changes, just simplification
* AccessSecretStorageDialog: use the right icon
Should be a ! in a circle, not an X. Also requires use of `Flex` to fix the
vertical alignment.
* AccessSecretStorageDialog: fix resizing when key is correct
* AccessSecretStorageDialog: remove confirmation on dialog close
Per discussion on https://github.com/element-hq/element-web/issues/30024, we
don't want this any more.
* BaseDialog: fix documentation, and make `onFinished` optional
Since `onFinished` isn't used if `hasCancel` is false, it's a bit silly to make
it mandatory.
* AccessSecretStorageDialog: fix inability to enter recovery key
Wrap AccessSecretStorageDialog in a `BaseDialog`. The main thing this achieves
is a `FocusLock`.
* playwright: factor out helper for verification
We have two copies of the same code, and we're about to add a third...
* playwright: test for verifying from Settings
* Add a unit test for BaseDialog
* basic implementation of an /share?msg=foo endpoint
* SharePayload
* add sharing html & md while we're at it
* remove whitespace from imports to appease linter
* lint
* Add unit test
* More tests
* Test for showScreen
* Use one of the typed strings
* Test nasty tags stripped out
* Add playwright test
* Fix flake
by not relying on the name being synced as soon as we load
---------
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
* initial application of recovery key input redesign
* update styling to agree more with design, and fix jest tests
* look for the right element for entering the key
* fix more playwright tests
* use return value of validation function instead of state