* 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.
* 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>
* 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
* 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.
* 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