* 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
* 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>
* 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
* Update vector-im
* Update snapshots
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update tests
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Make BaseDialog's div keyboard focusable and fix test.
* Update more e2e tests to use switch instead of checkbox
* fix useParticipants incorrectly returning an array when a map is expected
* Try again to fix calParticipants
* try fix RoomHeader tests again by also mocking useParticipants
* Revert "try fix RoomHeader tests again by also mocking useParticipants"
This reverts commit f83093cc44586b881d0918e4e4dee60d3263d44b.
* Try with no dependencies
* try mocking useCall rather than just useParticipantCount
* Mock the call store rather than the hook
* Only mock the call object for tests that expect it.
* Revert "Only mock the call object for tests that expect it."
This reverts commit 043d812b1defe75eb7d9c56546317f176b4ba34e.
* Revert "Mock the call store rather than the hook"
This reverts commit 644be3155c434a309fcfd90a21370a732bb7bdd5.
* Revert "try mocking useCall rather than just useParticipantCount"
This reverts commit 92034aaff9b46fd135ee4dbcd93dd62ad5985e5e.
* Revert "Try with no dependencies"
This reverts commit fb502a68a08bd0227ace807fdaf394ed8719d92a.
* Reapply "try fix RoomHeader tests again by also mocking useParticipants"
This reverts commit e456782efd5ea860cb6679be3adf440788fe40a4.
* Revert "try fix RoomHeader tests again by also mocking useParticipants"
This reverts commit f83093cc44586b881d0918e4e4dee60d3263d44b.
* Revert "Try again to fix calParticipants"
This reverts commit c45ad3063f97cad6989ec3fe44dacf6f0904a4e1.
* Revert "fix useParticipants incorrectly returning an array when a map is expected"
This reverts commit e06d76e3f74d8f77e33247e9f4708bb39aebdce0.
* bump compound-web
* Update snapshots
* Fix bad merge, we don't need the second call to escape. The comment a couple of lines up explains things.
* Trigger build to fix licence/cla check
---------
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>
Co-authored-by: David Langley <davidl@element.io>
* Fix: Allow triple-click text selection to flow around keyword pills
* Fix: Remove unnecessary align-items property from Pill component
* Change display property of .mx_Pill from inline to inline-block to fix rendering issue in Playwright tests
* Add test for triple-click message selection with pills
* Move Room List to ListView
- Also remove Space/Enter handing from keyboard navigation we can just leave the default behaviour of those keys and handle via onClick
* Update rooms when the primary filter changes
Otherwise when changing spaces, the filter does not reset until the next update to the RVS is made.
* Fix stickyRow/scrollIntoView when switiching space or changing filters
- Also remove the rest of space/enter keyboard handling use
* Remove the rest of space/enter keyboard handling use
* Remove useCombinedRef and add @radix-ui/react-compose-refs as we already depend on it
- Also remove eact-virtualized dep
* Update RoomList unit test
* Update snapshots and unit tests
* Fix e2e tests
* Remove react-virtualized from tests
* Fix e2e flake
* Update more screenshots
* Fix e2e test case where were should scroll to the top when the active room is no longer in the list
* Move from gitpkg to package-patch
* Update to latest react virtuoso release/api.
Also pass spaceId to the room list and scroll the activeIndex into view when spaceId or primaryFilter change.
* Use listbox/option roles to improve ScreenReader experience
* Change onKeyDown e.stopPropogation to cover context menu
* lint
* Remove unneeded exposure of the listView ref
Also move scrollIntoViewOnChange to useCallback
* Update unit test and snapshot
* Fix e2e tests and update screenshots
* Fix unit test and snapshot
* Update more unit tests
* Fix keyboard shortcuts and e2e test
* Fix another e2e and unit test
* lint
* Improve the naming for RoomResult and the documentation on it's fields meaning.
Also update the login in RoomList to check for any change in filters, this is a bit more future proof for when we introduce multi select than using activePrimaryFilter.
* Put back and fix landmark tests
* Fix test import
* Add comment regarding context object getting rendered.
* onKeyDown should be optional
* Use SpaceKey type on RoomResult
* lint
* tests: use stable MAS integration in Synapse
* Automatically follow MAS main branch
* Update the pinned Synapse container image to latest develop
* Update element-web-playwright-common to 1.4.5
* Fix the typing of the MAS config
* Update playwright-common to 1.4.6
* Use the modern MAS -> Synapse API
* Relax MAS rate limiting
* Revert using the modern API explicitly, it is now the default
* Better adjust the MAS rate limits
* Remove NoOneHere disabled reason.
This was used to prohibit starting calls if the user is alone in the room.
Since there are currently issues with the user count calculation this can disable the button even when not appropriate.
On top of that, there is a reason to start a call if the room was just created and the user is still waiting for the others to join the room to then join the call.
Signed-off-by: Timo K <toger5@hotmail.de>
* some ci fixes
Signed-off-by: Timo K <toger5@hotmail.de>
* fix test snapshots
Signed-off-by: Timo K <toger5@hotmail.de>
* fix test to expect enabled call buttons
* Update snapshot for unit-tests/components/views/rooms/RoomHeader/RoomHeader-test.tsx
---------
Signed-off-by: Timo K <toger5@hotmail.de>
Co-authored-by: fkwp <github-fkwp@w4ve.de>
* Fix downloading files with authenticated media API
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update snapshot
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix test
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Show a blue lock instead of a grey shield for unencrypted rooms
* Update screenshots and snapshot
* Update snapshots and fix e2e test that used to expect the grey shield
* lint and add tests for shield
* Update more screen shots
* finish unit test for left icon
* Remove unneeded check
* Don't bother adding stray props to E2EIcon for data-testid
* Upate snapshots
* [create-pull-request] automated change
* First pass of fixing tests
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Second pass of fixing tests
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Third pass of fixing tests
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>
* feat: add `PlayPauseButton` to storybook
* feat: add generic media body
* feat: add seekbar component
* chore: add ViewWrapper to help writing stories with vm
* refactor: move `formatBytes` from `formattingUtils` into shared component
* refactor: add `className` props to `Clock`
* feat: add new audio player component
* test(e2e): add screenshots for new shared components
* feat: add AudioPlayerViewModel
* feat: use new audio player in `MAudioBody`
* refactor: remove old audio player
* test(e2e): update existing tests
* refactor: remove unused `DurationClock`
* refactor: rename `SeekBar` into `LegacySeekBar`
* 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 c51823db5e0df15d579c00179823cb41fa57bb3b.
* 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