* Add voiceOnly options.
* tweaks
* Nearly working demo
* Lots of minor fixes
* Better working version
* remove unused payload
* bits and pieces
* Cleanup based on new hints
* Simple refactor for skipLobby (and remove returnToLobby)
* Tidyup
* Remove unused tests
* Update tests for voice calls
* Add video room support.
* Add a test for video rooms
* tidy
* remove console log line
* lint and tests
* Bunch of fixes
* Fixes
* Use correct title
* make linter happier
* Update tests
* cleanup
* Drop only
* update snaps
* Document
* lint
* Update snapshots
* Remove duplicate test
* add brackets
* fix jest
* 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
* 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
* 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
* Re-order primary filters
to match EX
* Update tests
* Update screenshots
* Try to make screenshot deterministic
* Just use the screenshot the CI spits out
* Try again
* Another screenshot
* add loading state to view model and spinner to room list vieqw
* Update snapshots and add loading test
* avoid nested ternary operator
* Add room list skeleton loading state
* Fix loading logic
- Create RoomListStoreV3Event as to not conflict with loading event definition in Create RoomListStoreEvent.
- Add a loaded event
- Use it to determine loaded state in useFilteredRooms rather than the update event which gets fired in other cases.
* Fix isLoadingRooms logic
* update snapshots and fix test
* Forcing an empty commit to fix PR
* Fix _components.pcss order
* Fix test that wasn't doing anything
* fix tests
* 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
* 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`
* fix: avoid extra render in the new room list
* fix: listen to room name changes
* fix: trigger render when notification state change
* test: fix room list item tests
* chore: fix typo `RoomNotificationState.isUnsentMessage`
* refactor: move `isNotificationDecorationVisible` into `useRoomListItemViewModel`
* refactor: recalculate notification values on notification state changes
* refactor: rename `isNotificationDecorationVisible` to `showNotificationDecoration`
* test: add test for room list item view
* test: add notification tests in room list item vm
* fix: listen to notification updates in `NotificationDecoration`
* test: update notification decoration tests
* refactor: display notification decoration according to vm
* test: update room list item view tests
* fix: a11y label computation after room name change
* refactor: improve notification handling
* feat: rework invitation styling in room list item
* test: update notification decoration test
* test: add test for vm
* test(e2e): update to new invitation styling
* 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
* fix(room list item): add bold when there is a notification
* fix(room list item menu): fix color of check icon
* fix(menu): remove chevron
* chore: update @vector-im/compound-web
* test(room list): update tests
* test(e2e): update snapshots
* feat: add `utils.hasAccessToNotificationMenu`
* feat(room list item view model): use `hasAccessToNotificationMenu` to compute `showHoverMenu`
* feat(room list item menu view model): add notification options menu attributes
* feat(room list item menu view): add notification options
* test: add tests for `utils.hasAccessToNotificationMenu`
* test(room list item view model): add test for `showHoverMenu`
* test(room list item menu view model): add tests for new attributes
* test(room list item menu view): add tests for notification options menu
* chore: update i18n
* test(e2e): update screenshots
* test(e2e): add tests for notification options menu
* Add new hook for sticky room
This hook takes the filtered, sorted rooms and returns a new list of
rooms such that the active room is kept in the same index even when the
list has changes.
* Use new hook in view model
* Add tests
* Use single * in comments
* Introduce a hook to track active room
This hook simply keeps a state which tracks the index of the active room
in the list of rooms passed through props. This index will be recomputed
if the active rooms changes or if the list itself changed.
* Use hook in the view model
* Write tests
* Fix broken tests
* refactor: extract room creation and right verification
* refactor: update `RoomListHeaderViewModel` to use utils
* feat(room list filter): add filter key to `PrimaryFilter` model
* feat(room list filter): return active primary filter
* feat(room list): add create room action and rights verification
* test: update room list tests
* feat(empty room list): add empty room list
* test(empty room list): add empty room list tests
* feat(room list): use empty room list in `RoomListView`
* test(room list panel): update tests
* test(e2e): add e2e tests for empty room list
* test(e2e): update room list header snapshot
* refactor(room list item): rename `RoomListCell` into `RoomListItemView`
* refactor(room list item): move open room action to new room list item view model
* feat(hover menu): add `hasAccessToOptionsMenu`
* feat(hover menu): add to `RoomListItemViewModel` the condition to display or not the hover menu
* feat(hover menu): add view model for the hover menu
* feat(hover menu): add hover menu view
* feat(hover menu): add hover menu to room list item
* feat(hover menu): update i18n
* test(view model list item): update test and add test to `showHoverMenu`
* test(room list): update snapshot
* test(room list item menu): add tests for view model
* test(room list item menu): add tests for view
* test(room list item): add tests
* test(e2e): add tests for more options menu
* chore: update compound web
* test(e2e): fix typo
* fix(room list header): in view model, can create room in space if user has the right. Display the compose menu if the user can create room or video room
* fix(room list header): can create directly chat if compose menu is disabled
* test(room list header): add tests for view model
* test(room list header): update tests of view
* test(room list header): update list test
* Add a hook that deals with the sorting behaviour
Hook will provide a function to sort the list and also provides a state
which tracks the currently active sort option.
* Use hook in vm
* Write test for the vm
* Fix broken view tests
* Track available filters and expose this info from the vm
- Adds a separate hook that tracks the filtered rooms and the available
filters.
- When secondary filters are added, some of the primary filters will be
selectively hidden. So track this info in the vm.
* Write tests
* Fix typescript error
* Fix translation
* Explain what a primary filter is
* Implement enough of the new store to get a list of rooms
* Make it possible to swap sorting algorithm
* Don't attach to window object
We don't want the store to be created if the labs flag is off
* Remove the store class
Probably best to include this PR with the minimal vm implmentation
* Create a new room list store that wraps around the skip list
* Create a minimal view model
* Fix CI
* Add some basic tests for the store
* Write more tests
* Add some jsdoc comments
* Add more documentation
* Add more docs
* feat(new room list): add space menu in view model
* test(new room list): add space menu in view model
* feat(new room list): add space menu in room list header
* chore: update i18n
* test(new room list): add tests for space menu
* test(new room list): update room list tests
* test(e2e): add tests for space menu
* feat(new room list): add compose menu in header for spaces
* test(new room list): add tests for space
* test(e2e new room list): update space test
* chore: formatting and reuse type var
* feat: create new header
* test: add tests to view model
* test: add tests to view
* feat: add header to new room list
* test(e2e): update RoomListView snapshot
* test(e2e): add tests for room list header
* refactor: minor code improvement