We have Matrix room members and MatrixRTC session memberships. Livekit also has rooms.
So, this attempts to make it more obvious as to what type you are referring to.
This is closer to what the designs actually want device settings to look like, and it avoids the visual glitch in which the dropdown would render underneath the slider.
Somewhere around version 131 or 132, Firefox has started being more paranoid about media device fingerprinting, and will not even give you the IDs of available devices until you've requested a media stream. Instead you only get a single audio input and video input each with the empty string as their device ID, representing the system's default device. We can recognize this case and avoid resetting the device selection.
* Replace search strings
* Add expander for reactions view
* lint
* Remove useless list
* Update tests
* lint
* Only shrink buttons on web version, mobile never shrinks
* Revert accidental change.
* Remove border from button
* Tidy up views.
* Finish matching designs.
* Fix height
* Remove a unneeded class
* Remove more cruft
* Remove unnessacery chunk
* Evenly space reactions
* lint
* Disable reaction buttons when busy
* Try to make menu a bit more responsive
* Update test
* further screen size tweaks
* Load the Intl.Segmenter polyfill only if needed
* Also polyfill Intl.DurationFormat only if needed
* Polyfill Intl.* in tests
* Load the default translations in tests
* Instanciate the Intl.DurationFormat in the component
As a non-intrusive way to help you remember when you've locally muted a participant (so you're less likely to be confused about not hearing their audio), we can show a different icon on the tile.
By rights, this fix I had made to decrypt reaction events shouldn't have appeared successful, because I was requiring the event to have a certain type before asking matrix-js-sdk to decrypt it, and you can't know an event's type before it's decrypted. Probably what was happening is that another code path was requesting the events to be decrypted so that this mistake didn't matter.
* Skip lobby if when coming from waitForInvite state.
* knock reject wording update (shorter/simpler)
* Automatically enter session also in non widget mode when skipLobby = true
* Update public/locales/en-GB/app.json
Co-authored-by: Robin <robin@robin.town>
* review
* review andrew
---------
Co-authored-by: Robin <robin@robin.town>
The basic issue here, I think, was that the 'oneOnOne' observable flag and the 'onOnOneLayout' observable could become out of sync, as RxJS does *not* have atomicity guarantees. We can work around this by combining them into one observable.