* super WIP POC for merging virtual room events into main timeline
* remove some debugs
* c
* add some todos
* remove hardcoded fake virtual user
* insert overlay events into main timeline without resorting main tl events
* remove more debugs
* add extra tick to roomview tests
* RoomView test case for virtual room
* test case for merged timeline
* make overlay event filter generic
* remove TODOs from LegacyCallEventGrouper
* tidy comments
* remove some newlines
* test timelinepanel room timeline event handling
* use newState.roomId
* fix strict errors in RoomView
* fix strict errors in TimelinePanel
* add type
* pr tweaks
* strict errors
* more strict fix
* strict error whackamole
* update ROomView tests to use rtl
* test bulk unverified sessions toast behaviour
* unverified sessions toast text tweak
* only show bulk unverified sessions toast when current device is verified
* add Setting for BulkUnverifiedSessionsReminder
* add build config for BulkUnverifiedSessionsReminder
* add more assertions for show/hide toast, fix strict errors
* fix strict error
* add util methods for snoozing in local storage
* rename nag to reminder
* set and read snooze for toast
* test snooze
* remove debug
* strict fix
* remove unused code
* VoiceRecordings: honor advanced audio processing settings
Audio processing settings introduced in #8759 is now taken into account
when recording a voice message.
Signed-off-by: László Várady <laszlo.varady@protonmail.com>
* VoiceRecordings: add higher-quality audio recording
When recording non-voice audio (e.g. music, FX), a different Opus encoder
application should be specified. It is also recommended to increase the
bitrate to 64-96 kb/s for musical use.
Note: the HQ mode is currently activated when noise suppression is
turned off. This is a very arbitrary condition.
Signed-off-by: László Várady <laszlo.varady@protonmail.com>
* RecorderWorklet: fix type mismatch
src/audio/VoiceRecording.ts:129:67 - Argument of type 'null' is not
assignable to parameter of type 'string | URL'.
Signed-off-by: László Várady <laszlo.varady@protonmail.com>
* VoiceRecording: test audio settings
Signed-off-by: László Várady <laszlo.varady@protonmail.com>
* Fix typos
Signed-off-by: László Várady <laszlo.varady@protonmail.com>
* VoiceRecording: refactor using destructuring assignment
Signed-off-by: László Várady <laszlo.varady@protonmail.com>
* VoiceRecording: add comments about constants and non-trivial conditions
Signed-off-by: László Várady <laszlo.varady@protonmail.com>
Signed-off-by: László Várady <laszlo.varady@protonmail.com>
* Fix call splitbrains when switching between rooms
Mounting CallView causes the user's call membership room state to be cleaned up. However, because the GroupCall object always thought the local device was disconnected from the call, it would remove the local device from room state when the clean method is called, causing a splitbrain. This uses GroupCall's new enteredViaAnotherSession field to fix that, and also simplify participant tracking.
* Remove clean tests that have been moved to matrix-js-sdk
* test bulk unverified sessions toast behaviour
* unverified sessions toast text tweak
* only show bulk unverified sessions toast when current device is verified
* add Setting for BulkUnverifiedSessionsReminder
* add build config for BulkUnverifiedSessionsReminder
* add more assertions for show/hide toast, fix strict errors
* fix strict error
* test bulk unverified sessions toast behaviour
* unverified sessions toast text tweak
* only show bulk unverified sessions toast when current device is verified
* add more assertions for show/hide toast, fix strict errors
* fix strict error
* really fix strict error
* bugfix: fix an issue where the Notifier would incorrectly fire for non-timeline events
This was caused by listening for ClientEvent.Event, not RoomEvent.Timeline.
Fixes https://github.com/vector-im/element-web/issues/17263
* tsc strict checks maybe
* More types?
* Update src/Notifier.ts
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Update src/Notifier.ts
* fix LL test; review comments
* More tests
* More tsc strict checks..
* More strict ts..
* More ts
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Show day counts in call durations
Previously call durations over a day long would be truncated, for example displaying as '2h 0m 0s' instead of '1d 2h 0m 0s'.
* Fix strict mode errors
* Fix strings
Co-authored-by: Travis Ralston <travisr@matrix.org>
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
* Fix getRelationsForEvent tsc strictness
* Use shared type for GetRelationsForEvent
* Fix lint
* Add alternative type
* getRelationsForEvent is not required
* Relations are optional
* Reactions are optional
* We expect relations in these tests
* Add more protection if the eventID is not defined
* Allow null too
* Better test typing
* User ID is not necessary unless something is selected
* It's okay to [].includes(null)
* Null is as good as undefined here
* Null or undefined is good here
* We have some expectations for the tests
* The room and user can be undefined too
* Protec
* Reactions are optional
* Try match signatures
* Null or undefined
* More null or undefined
* Protec
* Fix typo (wrong variable)
* Remove optional params
See https://github.com/matrix-org/matrix-react-sdk/pull/9558#discussion_r1017515913
* Fix up last maaaaybe relevant lint
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* 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
Currently, if you leave a room that you're not currently viewing, you'll get sent back to the home page for no reason. This creates needless friction when trying to leave multiple rooms belonging to a space from the room list.
In addition to that fix, this improves the behavior when leaving a subspace, by making it take you to the parent space rather than all the way back home.
* sliding-sync: spider all rooms on the user's account for search
On startup, slowly accumulate room metadata for all rooms on the
user's account. This is so we can populate the local search cache
with enough data for it to function, obviating the need to have
separate code paths for sliding sync searches.
This will allow spotlight search to work with slow/no network
connectivity, though clicking on the room will still require a
round trip.
This is an explicit request from @ara4n to improve the snapiness
of room searches, despite the unbounded bandwidth costs requesting
all N rooms on the user's account.
* Comments and tweak defaults
* Review comments; remove SS search code
* bugfix: use setListRanges once the list has been set up
If we don't, then we send needless extra data and can cause
bugs because setList will wipe the index->room_id map, which
trips up SlidingRoomListStore.
* 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>
* change testid attribute for dialog buttons to rtl friendly
* add confirm dialog for signing out sessions
* cleanup commented
* update cypress tets
* clear modals before test
* missing modal in jest tests on ci only
* 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
* Support for login + E2EE set up with QR
* Whitespace
* Padding
* Refactor of fetch
* Whitespace
* CSS whitespace
* Add link to MSC3906
* Handle incorrect typing in MatrixClientPeg.get()
* Use unstable class name
* fix: use unstable class name
* Use default fetch client instead
* Update to revised function name
* Refactor device manager panel and make it work with new sessions manager
* Lint fix
* Add missing interstitials and update wording
* Linting
* i18n
* Lint
* Use sensible sdk config name for fallback server
* Improve error handling for QR code generation
* Refactor feature availability logic
* Hide device manager panel if no options available
* Put sign in with QR behind lab setting
* Reduce scope of PR to just showing code on existing device
* i18n updates
* Handle null features
* Testing for LoginWithQRSection
* Refactor to handle UIA
* Imports
* Reduce diff complexity
* Remove unnecessary change
* Remove unused styles
* Support UIA
* Tidy up
* i18n
* Remove additional unused parts of flow
* Add extra instruction when showing QR code
* Add getVersions to server mocks
* Use proper colours for theme support
* Test cases
* Lint
* Remove obsolete snapshot
* Don't override error if already set
* Remove unused var
* Update src/components/views/settings/devices/LoginWithQRSection.tsx
Co-authored-by: Travis Ralston <travisr@matrix.org>
* Update src/components/views/auth/LoginWithQR.tsx
Co-authored-by: Travis Ralston <travisr@matrix.org>
* Update src/components/views/auth/LoginWithQR.tsx
Co-authored-by: Travis Ralston <travisr@matrix.org>
* Update src/components/views/auth/LoginWithQR.tsx
Co-authored-by: Travis Ralston <travisr@matrix.org>
* Update src/components/views/auth/LoginWithQR.tsx
Co-authored-by: Travis Ralston <travisr@matrix.org>
* Update src/components/views/auth/LoginWithQR.tsx
Co-authored-by: Travis Ralston <travisr@matrix.org>
* Update res/css/views/auth/_LoginWithQR.pcss
Co-authored-by: Kerry <kerrya@element.io>
* Use spacing variables
* Remove debug
* Style + docs
* preventDefault
* Names of tests
* Fixes for js-sdk refactor
* Update snapshots to match test names
* Refactor labs config to make deployment simpler
* i18n
* Unused imports
* Typo
* Stateless component
* Whitespace
* Use context not MatrixClientPeg
* Add missing context
* Type updates to match js-sdk
* Wrap click handlers in useCallback
* Update src/components/views/settings/DevicesPanel.tsx
Co-authored-by: Travis Ralston <travisr@matrix.org>
* Wait for DOM update instead of timeout
* Add missing snapshot update from last commit
* Remove void keyword in favour of then() clauses
* test main paths in LoginWithQR
* test coverage for display of qr code section
* remove unused test props
Co-authored-by: Hugh Nimmo-Smith <hughns@matrix.org>
Co-authored-by: Hugh Nimmo-Smith <hughns@users.noreply.github.com>
Co-authored-by: Travis Ralston <travisr@matrix.org>