* Add tests for unread notification facilities
Add some tests to guarantee some consistency in `useUnreadNotifications` and
`RoomNotificationState`.
Signed-off-by: Clark Fischer <clark.fischer@gmail.com>
* Add RoomNotifs#determineUnreadState
Intended as a singular replacement for the divergent implementations before.
Signed-off-by: Clark Fischer <clark.fischer@gmail.com>
* Unify room unread state determination
Have both the class-based facility and the hook use the new unified logic in
`RoomNotifs#determineUnreadState`.
Addresses https://github.com/vector-im/element-web/issues/24229
Signed-off-by: Clark Fischer <clark.fischer@gmail.com>
---------
Signed-off-by: Clark Fischer <clark.fischer@gmail.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Use js-sdk imports for poll event types instead of events-sdk
* Attempt to appease some tsc --strict errors
* Manually create poll response in cypress test
Pass an explicit client into `RoomNotifs.getRoomNotifsState`, rather than
relying on `MatrixClientPeg`. This resolves a race condition where we have a
component which thinks it is using a particular component, but
`MatrixClientPeg` has been updated.
* Use native js-sdk group call support
Now that the js-sdk supports group calls natively, our group call implementation can be simplified a bit. Switching to the js-sdk implementation also brings the react-sdk up to date with recent MSC3401 changes, and adds support for joining calls from multiple devices. (So, the previous logic which sent to-device messages to prevent multi-device sessions is no longer necessary.)
* Fix strings
* Fix strict type errors
* sliding sync: add lazy-loading member support
Also swap to `$ME` constants when referring to our own member event.
* Hook into existing LL logic when showing the MemberList
* Linting
* Use consts in js sdk not react sdk
* Add jest tests
* linting
* Store the room in the test
* Fix up getRoom impl
* Add MemberListStore
* Use the right context in MemberList tests
* Fix RightPanel-test
* Always return members even if we lazy load
* Add MemberListStore tests
* Additional tests
* Changed ListNotificationState to store room ids
ListNotificationState stores a reference to a rooms array which is later
used for comparing the stored array with new arrays. However, the
comparison may fail since the stored array can be changed outside the
class. This PR proposes to instead store only the room ids, which
hopefully allows to avoid the issue by copying the room ids into
a new array, while still being performant.
Signed-off-by: Arne Wilken arnepokemon@yahoo.de
* Change ListNotificationState to shallow clone rooms
Instead of using room ids like in the previous commit,
shallow clone the rooms array instead.
Signed-off-by: Arne Wilken arnepokemon@yahoo.de
Co-authored-by: Robin <robin@robin.town>
* Fix bug with message context menu
* fix bug where ThreadSummary failed if no last reply is available
* Fix relations direction API
* Use same API for threads as for any other timeline
* Determine if event belongs to thread on jumping to event
* properly listen to thread deletion
* Add thread redaction tests
* Add fetchInitialEvent tests
* Paginate using default TimelinePanel behaviour
* Remove unused threads deleted code
Co-authored-by: Germain <germain@souquet.com>
Co-authored-by: Germain <germains@element.io>
* Add support for include_old_rooms and by_notification_level
* Include subspaces when apply spaces filter
* Remove stray is_tombstoned
* tests: add SlidingRoomListStore jest tests; update proxy version in cypress
* Add additional tests
* Additional tests
* Linting
* Update test/stores/room-list/SlidingRoomListStore-test.ts
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix embedded Element Call screen sharing
Makes it a request in each direction rather than a request and reply
since replies to requests time out and so can't wait for user interaction.
* Fix tests