* Validate room upgrade relationships properly
Ensures only correctly related rooms are left when leaving the latest version of a room.
Ensures the room list does not wrongly hide rooms which have not yet been upgraded.
Ensures the breadcrumbs store finds the correct latest version of a room for a given stored room.
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Tests
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Don't show release announcements while toasts are displayed
Otherwise they can clash and look like a mess.
* Dismiss the toast in the e2e test
* Update screenshot
* Add decline button to call notification toast (use new notification event)
- This make EW incompatible with the old style notify events.
Signed-off-by: Timo K <toger5@hotmail.de>
* update styling for call toast
Signed-off-by: Timo K <toger5@hotmail.de>
* skip lobby on join button click / dont skip lobby on toast click
Signed-off-by: Timo K <toger5@hotmail.de>
* dismiss toast on remote decline
Signed-off-by: Timo K <toger5@hotmail.de>
* fixup docstring and event_id
Signed-off-by: Timo K <toger5@hotmail.de>
* Add tests
Signed-off-by: Timo K <toger5@hotmail.de>
* remove unused var
Signed-off-by: Timo K <toger5@hotmail.de>
* test that decline event gets sent
Signed-off-by: Timo K <toger5@hotmail.de>
* make "go to lobby" accessible via keyboard (fix sonar cloud)
Signed-off-by: Timo K <toger5@hotmail.de>
* remove keyboard input
Signed-off-by: Timo K <toger5@hotmail.de>
* fix lint
Signed-off-by: Timo K <toger5@hotmail.de>
* use actual button
Signed-off-by: Timo K <toger5@hotmail.de>
* review style + toggle for join immediately
Signed-off-by: Timo K <toger5@hotmail.de>
* fix `getNotificationEventSendTs`
Signed-off-by: Timo K <toger5@hotmail.de>
* use story component
Signed-off-by: Timo K <toger5@hotmail.de>
* english text
Signed-off-by: Timo K <toger5@hotmail.de>
* dont use legacy toggle
Signed-off-by: Timo K <toger5@hotmail.de>
* fix lint
Signed-off-by: Timo K <toger5@hotmail.de>
* review
Signed-off-by: Timo K <toger5@hotmail.de>
* review (mostly docs)
Signed-off-by: Timo K <toger5@hotmail.de>
---------
Signed-off-by: Timo K <toger5@hotmail.de>
* Hold Electron toasts until after the client starts
as otherwise they won't be shown and will be reset out of existence
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update test
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Lint
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Default to new room list and enforce in config for app and develop
* Update jest tests
* Update LandmarkNavigation and e2e test
* Update viewRoomByName helper
* lint
* Update Add -> New Room flow
Keep legacy viewRoomByName until we delete the olds tests.
* Update e2e test to use Add -> Start Chat
* Update screenshots
* Fix viewRoomByName, can't use option as it contains more that just the room name. Using title which should be exact.
* Fix knocking tests
* fix layout.spec.ts and pstn.spec
* timeline snapshots
* Fix spotlight.spec
* TAC spaces and media preview settings
* Fix more screenshots and mark as unread tests
* Fix leftpanel test
* Bugfix for knocking use case. We should check EffectiveMembership when remove rooms from the new room list, so that knocking is handled
* Fix openCreateRoomDialog to new room list specifics to fix create-knock-room.spec.ts
* lint
* Fix Landmark navigation from left panel search to the next landmark
* lint
* Update window-12px-linux.png
* Update apps-drawer-linux.png
* Update sliding sync e2e tests
* Update some screenshots
* Revert change to the space create screenshot
* Use actual screenshot
as focused elements are different when generated locally
* Fix test selectors
* Morfe test screenshot selector / update
* Add test for landmark navigation
* Replace screenshots
* Fix another test that just got added an hour ago
* Not sure why this was changed, doesn't seem necessary
* Disambiguate selector
* Another screenshot that's now changed in width by 1px
* Revert changes to config files
It's being turned on by default so these are unnecessary
* Convert read.unread assertions to new room list
removing support for checking for activity in assertUnread which was
unused.
* Update room list order tests
that feel a bit like they ought to be in room-list rather than read-receipts but whatever
* Fix room titles in read receipts test
---------
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
* Add mechanism for Electron to render toasts
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Tests
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix enabling key backup not working if there is an untrusted key backup on the server.
* lint
* Add test for trust situations.
* remove conditional
* Update src/components/viewmodels/settings/encryption/KeyStoragePanelViewModel.ts
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Update src/components/viewmodels/settings/encryption/KeyStoragePanelViewModel.ts
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>
* add variant of ResetIdentityBody for when the user has no verif. methods
* no longer distinguish between the using having a passphrase or not
* use vertical stack of buttons via EncryptionCard
and update wording
* swap logic order to match rendering order
* use the same dialog when no verification options available
* make it agree with the design more
* allow signing out on initial login
* apply styling changes and remove duplicate elements
* fix and add tests
* add missing snapshot
* Apply suggestions from code review
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* use a boolean property to disable blurring instead of adding a class
* change string identifiers
* apply changes from review -- simplify logic
* change class name to avoid confusion
---------
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Start to implement intents for DM calls.
* Refactor and fix intent bugs
* Do not default skipLobby in Element Web
* Remove hacks
* cleanup
* Don't template skipLobby or returnToLobby but inject as required
* Revert "Don't template skipLobby or returnToLobby but inject as required"
This reverts commit 35569f35bb254462dd86c16438dab38188db6fbc.
* lint
* Fix test
* lint
* Use other intents
* Ensure we test all intents
* lint
* cleanup
* Fix room check
* Update imports
* update test
* Fix RoomViewStore test
* Make landmark navigation work with new room list
Split out from https://github.com/element-hq/element-web/pull/30640
* Fix landmark selection to work with either room list
* Add test for landmark navigation
* Add test
* Fix test
* Clear mocks between runs
* fix: avoid to render `AudioPlayerViewModel` when `MAudioBody` is inherited
* fix: avoid `Playback.prepare` to fail when called twice
* fix: add `decoding` to playback type
* refactor: fix circular deps
* refactor: extract `MockedPlayback` from `AudioPlayerViewModel`
* test: add `MAudioBody` basic test
* test: add tests for `MVoiceMessageBody`
* fix: lint
* fix: align default avatar in composer pills
* fix: use correct color for avatar in composer pills when there is no image
* test(e2e): add test for cider mention
* chore: fix typo
* Use configured URL for link to desktop app in message search settings
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update snapshots
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix history visibility when creating space rooms
This line was here which made history visibility different for space
rooms vs normal rooms, making history world readable for public rooms
and shared from the point of invite (rather than joining) for any other
rooms.
I can't see any reason this makes sense, or why space rooms should
have different history visibility defaults to other rooms. It wasn't
commented. Let's just remove the line and make them consistent.
* Fix import
* Add some tests
to asert that we don't randomly change the options that createRoom
passes to the HS.
* Fix local room encryption status always not enabled
* refactor: put back the e2e test after merge
* fix: look at e2eStatus in composer of local room
* doc: add docs to `LocalRoom.isEncryptionEnabled`
* test(e2e): check composer doesn't display unencrypted state
* test: update existing tests
* test(e2e): update existing tests
* refactor: move room encryption check in a dedicated function
* refactor: make `isEncryptionEnabled` cleaner
* test: add tests for `LocalRoom.isEncrypted`
* doc: fix `useIsEncrypted` comment
---------
Co-authored-by: Florian Duros <florian.duros@ormaz.fr>
* Remove 'beta' pill from Element Call option
This just removes the 'beta' lebelling: it does not take it out of
labs by default just yet.
* Appease import linter
* Add tests for axe violations for the new room list
* axe doesn't like a ul/li with roles listbox/option. Changing to div/button as we have elsewhere like RoomListitemView.
* Fix RoomListPrimaryFilters test
* Justify the items in the primary filter container
to get the dropdown button on the right again
* Update snapshot
* Make the room list itself focusable
As the comment said, there was no real reason it needed to be, except
that there was because of axe. Probably having the children focusable
would be better, but Virtuoso wraps them in more divs which doesn't
satisfy axe's requirements since those inner divs are not the scrollable
ones. I can't see a better option than this right now.
* Update snapshot
---------
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
* Refactor StyledRadioButton to provide proper labels.
* Automatically change history settings to members only if room is made private
* Add tests
* lint
* lint further
* Fix clickable buttons
* Revert functional component-ing
* text tweaks
* update snapshots
* Add unit test for history vis changes
* lint
* Update snapshots
* Fix flakes
* lint
* Update dependency @vector-im/compound-web to v8.2.3
* Update snapshot, tabIndex is now overridden as intended.
Original commit + comment -> 8086262e04 (diff-1e0f987f11006689ab011e33003e54e364d2089d66fc6c8f613753a2891fb529R118-R120)
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: David Langley <davidl@element.io>
* Remove remaining support for `secure_backup_setup_methods` option
Support for this .well-known setting had been removed everywhere except in a
rather obscure corner of the code. There are many other problems with this area
(https://github.com/element-hq/element-web/issues/29171) but removing support
for the outdated option is an easy step.
* Remove remaining `secure_backup_required` setting support
Again, this setting was only honoured in the obscure "New Recovery Method"
flow.
* fix: make url in topic in room intro clickable
* chore: remove extra line
* refactor: use tag instead variable
* test: add topic tests
* fix: update i18n key
* Block change recovery key button while a change is ongoing.
* Add disable check
* lint
* Ensure we test that spamming the button doesn't break it.
* Mock out modals
* lint
* add two more clicks
* lint
---------
Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
* [create-pull-request] automated change
* Update tests
Hold back one source translation due to inconsistency with related keys
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update screenshot
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* fix: improve aria role and label on pinned message banner
* fix: change pinned message badge background for contrast
* fix: link pinned message button to content
* test: update tests
* fix: add aria-describedby on pinned message badge
* feat: use `aria-describedby` instead of `aria-description`
* test: update room view snapshot
* test: update snapshot
* fix: put id only textual body upper div
* fix: use lodash uniqueId
* test: update snapshots
* Always show media from your own user
* Update usages of useMediaVisible
* lint
* Add a test for HideActionButton
* Improve docs
* Document the event
* fixup test
* Allow users to hide their own media if they wish.
* Update tests
* remove a check\
* tweak
* tweak
* Fix room joining over federation not specifying vias or using aliases
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Be consistent with viaServers
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Simplify modules
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Only consider canAskToJoin on 403 as per spec
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Remove unused helper which I only just added =(
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update tests
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Add tests
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Add test
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Add tests
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Remember whether sidebar is shown for calls when switching rooms
Stores the sidebar state per-room in LegacyCallHandler, along with other details about calls.
* Hide the Show/Hide Sidebar from the Picture-in-Picture preview
The toggle sidebar button currently does nothing in PIP mode, since PIP mode never shows a sidebar (even when the call is made fullscreen from the PIP preview)
* Add test for Show/Hide Sidebar feature
* Add more tests for LegacyCallView and LegacyCallViewForRoom
Also, fix issue where LegacyCallViewForRoom used roomId and not callId for checking for sidebar state
* MatrixChat: only start session load once
When running in development mode, `MatrixChat.componentDidMount` is run twice,
meaning it checks the session lock twice. Sometimes, this means it shows the
"Element is running in another window" page.
The real problem is of course that we're running all this application logic
inside the `MatrixChat` component, but as a quick workaround, we can just
remember that we've started the session load code, and bail out on the second pass.
* Address review comments
* Add missing dependencies on `@types` packages
Because we import the typescript source from matrix-js-sdk rather than the
`.d.ts` files, `tsc` ends up type-checking the js-sdk source. That means that
we need to have the `@types` packages that js-sdk needs.
* Add missing type definitions for `setInterval` and `setTimeout`
Our source assumes that `setTimeout` returns a number, not a
`Timeout`. If we `yarn link` js-sdk, then (somehow) we end up using the
definitions from there, but it's not really correct.
* Configure knip to ignore new deps