* implement basic scrolling and keyboard navigation
* Update focus style and improve keyboard navigation
* lint
* Use avatar tootltip for the title rather than the whole button
It's more performant and feels less glitchy than the button tooltip moving around when you scroll.
* lint
* Add tooltip for invite buttons active state
As we have for other icon based buttons in the right panel/app
* Fix location of scrollToIndex and add useCallback
* Improve voiceover experience
- As well as stylng cells, set the tabIndex(roving)
- Natively focus the div with .focus() so screen reader actually moves over the cells
- improve labels and roles
* Fix jest tests
* Add aria index/counts and remove repeating "Open" string in label
* update snapshot
* Add the rest of the keyboard navigation and handle the case when the list looses focus.
* lint and update snapshot
* lint
* Only focus first/lastFocsed cell if focus.currentTarget is the overall list.
So it isn't erroneously called during onClick of an item.
* Put back overscan and fix formatting
* Extract ListView out of MemberList
* lint and fix e2e test
* Update screenshot
It looks like it is slightly better center aligned in the new list, as if maybe it was 1 px to high with the old one.
* Fix default overscan value and add ListView tests
* Just leave the avatar as it was
* We removed the tooltip that showed power level. Removing string.
* Use key rather than index to track focus.
* Remove overscan, fix typos, fix scrollToItem logic
* Use listbox role for member list and correct position/count values to account for the separator
* Fix inadvertant scrolling of the timeline when using pageUp/pageDown
* Always set the roving tab index regardless of whether we are actually focused.
Fixes the issue of not being able to shift+t
* Add aria-hidden to items within the option to avoid the SR calling it a group.
Also
* Make sure there is a roving tab set if the last one has been removed from the list.
* Update snapshot
There are two potential problems here:
1. mouse.scroll returns before the scroll is completed
2. visibility check does not check if the element is actually in the
viewport.
I've added a helper function to make it easier to scroll to the end of
an infinite list.
* fix: remove white background on e2e verification icon and put white on the checkmark
* test(e2e): add non regression tests
* chore: remove unused CSS mask
* Add support for allowDownloadingMedia
* Add tests.
* Allow downloading when no event is associated.
* fix lint
* Update module API
* Update lock file too
* force CI
* 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>
* Update playwright to v1.53.1
* Update snapshots
Presumably chrome's font rendering has changed slightly in the new major version
* Scroll until room list item is in view
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
* 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
* 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
* 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
The devices section in OIDC frontend has changed to include a heading
with the device name. The device name and the client name both contain
"Element", so playwright fails.
* 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
* feat: move secondary filters into primary filters in vm
* test: update room list view model tests
* feat: remove secondary filter menu
* test: update and remove secondary filter component tests
* feat: update i18n
* test: update remaining tests
* test(e2e): update screenshots and tests
* feat: add new cases for empty room list
* test(e2e): add more tests for empty room list for new primary filters
* Assert that we set backup_disabled when turning off key storage
* Prompt the user when key storage is unexpectedly off
* Playwright tests for the Turn on key storage toast
* Don't toggle to the minimised left bar size.
* Don't re-style old room list when at the minimum size
* Only apply larger minimised with on new room list
* Don't tell child views we are minimised for the new room list
* move comment to the correct place
* address PR comments
* Don't wrap search text and add truncation down to a minimum of 50px
* Put min-width on the button so that we don't have to hardcode the 50px
* Keep the flex display, shrink and truncate just the search text and keep the shortcut
* Update snapshots
* Add comment for magic value
* Make inner search text a span
* Add e2e test for smallscreen to test responsiveness
* Update snapshots
* Forcing an empty commit to fix PR
* Change minWidth to 224
* feat: support up/down arrow navigation in the new room list
* feat: support tabbing in the new room list
* test: update snapshots
* test(e2e): fix room list test
* test(new room list): add landmark navigation test
* test(e2e): update screenshot test
* test: add test to `RoomListItemView`
* test(e2e): add keyboard navigation tests
* refactor: rename `setIsHover` on `setIsHoverWithDelay`
* Write failing playwright test
Basically when someone changes their name, any old tombstoned rooms that
were previously hidden would suddenly show up in the list.
* Split addRoom into two methods
- `reInsertRoom` that re-inserts a room that is already known by the skiplist.
- `addNewRoom` to add new rooms
The idea is that sometimes you only want to re-insert to noop, eg: when
you get an event in an old room that was upgraded.
* Use new methods in the RLS
Only use `addNewRoom` when absolutely necessary. Most events should
instead use `reInsertRoom` which will noop when the room isn't already
known by the skiplist.
* Fix broken tests
* Add new test
* Fix playwright test
* Add message preview support to the new room list
* Support showing message previews in the room list items
* Add the secondary filters bar with the '...' menu, containing
just the option for message previews for now
* Change message preview toggle hook to update when setting is updated
* Use new compund release
* Unused i18n keys
* Unused imports
* Fix test & update snapshot
* Fix more snapshots
* Fix test
Split into two tests that test setting & updating
* Type import
* Snapshots
* Remove unnecessary Flex container
and update screenshots as the room list has got shorter from the added bar
* More snapshots & screenshots
* More snapshots
* Add test and remove active filter that's not done yet
* Update snapshots & screenshots again
* Other screenshot
* Add more tests
* Fix syntax
* Fix tests
* Use setter directly
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix CSS
* Remopve filter button css for now
* Update to remove forwardRef
* Add comment on why lack of TypedEventEmitter
* snapshots again
* Screenshots again
* Use original screenshots, maybe they'll work now
* Add comment
---------
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* fix: recompute notification when room change in room list item vm
* test: add use case when room list change
* test(e2e): add screenshot to unread filter test
* Modify useMediaVisible to take a room.
* Add initial support for a account data level key.
* Update controls.
* Update settings
* Lint and fixes
* make some tests go happy
* lint
* i18n
* update preferences
* prettier
* Update settings tab.
* update screenshot
* Update docs
* Rewrite controller
* Rewrite tons of tests
* Rewrite RoomAvatar to be a functional component
This is so we can use hooks to determine the setting state.
* lint
* lint
* Tidy up comments
* Apply media visible hook to inline images.
* Move conditionals.
* copyright all the things
* Review changes
* Update html utils to properly discard media.
* Types fix
* Fixing tests that break settings getValue expectations
* Fix logic around media preview calculation
* Fix room header tests
* Fixup tests for timelinePanel
* Clear settings in matrixchat
* Update tests to use SettingsStore where possible.
* fix bug
* revert changes to client.ts
* copyright years
* Add header
* Add a test for MediaPreviewAccountSettingsTab
* Mark initMatrixClient as optional
* Improve on types
* Ensure we do not set the account data twice.
* lint
* Review changes
* Ensure we include the client on rendered messages.
* Fix test
* update labels
* clean designs
* update settings tab
* update snapshot
* copyright
* prevent mutation
* feat: add support to `Action.ViewRoomDelta`
* test: add tests for support of `Action.ViewRoomDelta`
* test(e2e): add tests for shortcuts
* doc: improve comments in `useRoomListNavigation`
* feat: warn self change on roles settings
* test: update RolesRoomSettingsTab to match new modal condition
* test: update e2e RolesRoomSettingsTab to add new modal
* feat: powerlevelselector reput initial value if cancel
* Mask mxid from screenshot
* s/hot/not/
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Hide the mxid entirely
* Add new snapshot
---------
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* feat: add video call and EC call to room list item vm
* feat: add video call notification decoration to notification decoration component
* feat: add video call support to room list item view
* feat: add new RoomAvatarView component
* feat: deprecate `DecoratedRoomAvatar`
* feat: use `RoomAvatarView` in room list item
* feat: allow custom class for `RoomAvatar`
* test: update notification decoration
* test: update room list item view
* test: update room list snapshot
* test: add tests for room avatar vm
* test: add tests for room avatar view
* test(e2e): update snapshots
* fix: video room creation rights
* test: e2e add test for public and video room