* refactor: convert RoomViewStore from flux Store to standard EventEmitter
Parts of a series of experimental changes to improve the design of stores.
* Use a gen5 store for RoomViewStore for now due to lock handling
* Revert "Use a gen5 store for RoomViewStore for now due to lock handling"
This reverts commit 1076af071d997d87b8ae0b0dcddfd1ae428665af.
* Add untilEmission and tweak untilDispatch; use it in RoomViewStore
* Add more RVS tests; remove custom room ID listener code and use EventEmitter
* Better comments
* Null guard `dis` as tests mock out `defaultDispatcher`
* Additional tests
* Add an element_call_url config option
* Add a labs flag for Element Call video rooms
* Add Element Call as another video rooms backend
* Consolidate event power level defaults
* Remember to clean up participantsExpirationTimer
* Fix a code smell
* Test the clean method
* Fix some strict mode errors
* Test that clean still works when there are no state events
* Test auto-approval of Element Call widget capabilities
* Deduplicate some code to placate SonarCloud
* Fix more strict mode errors
* Test that calls disconnect when leaving the room
* Test the get methods of JitsiCall and ElementCall more
* Test Call.ts even more
* Test creation of Element video rooms
* Test that createRoom works for non-video-rooms
* Test Call's get method rather than the methods of derived classes
* Ensure that the clean method is able to preserve devices
* Remove duplicate clean method
* Fix lints
* Fix some strict mode errors in RoomPreviewCard
* Test RoomPreviewCard changes
* Quick and dirty hotfix for the community testing session
* Revert "Quick and dirty hotfix for the community testing session"
This reverts commit 37056514fbc040aaf1bff2539da770a1c8ba72a2.
* Fix the event schema for org.matrix.msc3401.call.member devices
* Remove org.matrix.call_duplicate_session from Element Call capabilities
It's no longer used by Element Call when running as a widget.
* Replace element_call_url with a map
* Make PiPs work for virtual widgets
* Auto-approve room timeline capability
Because Element Call uses this now
* Create a reusable isVideoRoom util
* Add Voice Broadcast labs setting and composer button
* Implement strict typing
* Extend MessageComposer-test
* Extend tests
* Revert some strict type fixex
* Convert FEATURES to enum; change case
* Use fake timers in MessageComposer-test
* Improve accessibility and testability of Tooltip
Adding a role to Tooltip was motivated by React Testing Library's
reliance on accessibility-related attributes to locate elements.
* Make the ReadyWatchingStore constructor safer
The ReadyWatchingStore constructor previously had a chance to
immediately call onReady, which was dangerous because it was potentially
calling the derived class's onReady at a point when the derived class
hadn't even finished construction yet. In normal usage, I guess this
never was a problem, but it was causing some of the tests I was writing
to crash. This is solved by separating out the onReady call into a start
method.
* Rename 1:1 call components to 'LegacyCall'
to reflect the fact that they're slated for removal, and to not clash
with the new Call code.
* Refactor VideoChannelStore into Call and CallStore
Call is an abstract class that currently only has a Jitsi
implementation, but this will make it easy to later add an Element Call
implementation.
* Remove WidgetReady, ClientReady, and ForceHangupCall hacks
These are no longer used by the new Jitsi call implementation, and can
be removed.
* yarn i18n
* Delete call map entries instead of inserting nulls
* Allow multiple active calls and consolidate call listeners
* Fix a race condition when creating a video room
* Un-hardcode the media device fallback labels
* Apply misc code review fixes
* yarn i18n
* Disconnect from calls more politely on logout
* Fix some strict mode errors
* Fix another updateRoom race condition
* extract preventDefaultWrapper into utils
* add click handling to beacon list item
* add click handling to dialog sidebar
* focus in on beacons when clicked in list
* stylelint
* fussy import ordering
* test beacon focusing in beaocnviewdialog
* redact beacon locations on redaction
* redact beacon locations on beacon info redaction
* fussy import ordering
* use real fake redaction in beaconbody test
* Add support for MD / HTML in room topics
Setting MD / HTML supported:
- /topic command
- Room settings overlay
- Space settings overlay
Display of MD / HTML supported:
- /topic command
- Room header
- Space home
Based on extensible events as defined in [MSC1767]
Fixes: vector-im/element-web#5180
Signed-off-by: Johannes Marbach <johannesm@element.io>
[MSC1767]: matrix-org/matrix-spec-proposals#1767
* Fix build error
* Add comment to explain origin of styles
Co-authored-by: Travis Ralston <travpc@gmail.com>
* Empty commit to retrigger build
* Fix import grouping
* Fix useTopic test
* Add tests for HtmlUtils
* Add slash command test
* Add further serialize test
* Fix ternary formatting
Co-authored-by: Travis Ralston <travpc@gmail.com>
* Add blank line
Co-authored-by: Travis Ralston <travpc@gmail.com>
* Properly mock SettingsStore access
* Remove trailing space
* Assert on HTML content and add test for plain text in HTML parameter
* Appease the linter
* Fix JSDoc comment
* Fix toEqual call formatting
* Repurpose test for literal HTML case
* Empty commit to fix CI
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: Travis Ralston <travisr@matrix.org>
* Make system fonts work more reliably
* Make it more sophisticated
* Missing semicolon
* Apply suggestions
* Fix formatting
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Create FontWatcher-test.tsx
* Add actual tests
* Fix some errors
* Apply suggestions
* Apply suggestions from code review
* Apply suggestions from code review
* Apply suggestions from code review
* Apply suggestions from code review
* Fix FontWatcher tests
* Correct test fixture
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Show a lobby screen in video rooms
* Add connecting state
* Test VideoRoomView
* Test VideoLobby
* Get the local video stream with useAsyncMemo
* Clean up code review nits
* Explicitly state what !important is overriding
* Use spacing variables
* Wait for video channel messaging
* Update join button copy
* Show frame on both the lobby and widget
* Force dark theme for video lobby
* Wait for the widget to be ready
* Make VideoChannelStore constructor private
* Allow video lobby to shrink
* Add invite button to video room header
* Show connected members on lobby screen
* Make avatars in video lobby clickable
* Increase video channel store timeout
* Fix Jitsi Meet getting wedged on startup in Chrome and Safari
* Revert "Fix Jitsi Meet getting wedged on startup in Chrome and Safari"
This reverts commit 9f77b8c227c1a5bffa5d91b0c48bf3bbc44d4cec.
* Disable device buttons while connecting
* Factor RoomFacePile into a separate file
* Fix i18n lint
* Fix switching video channels while connected
* Properly limit number of connected members in face pile
* Fix CSS lint
* Remove radio component
* "Voice room" → "video room"
* Remove interactivity from video room tiles
* Update connection state when joining via widget
* Simplify room header buttons for video rooms
* Split out video room creation into a separate menu option
* Simplify room options for video rooms
* Update video room tile layout
* Tell the Jitsi widget whether it's a video channel
* Update tests
* "Voice" → "video" in more places
* Fix tests
* Re-add frame to immersive Jitsi widgets
* Comment ack
* Make updateDevices more readable
* Type FacePile
* display live share warning only when geolocation is happening
Signed-off-by: Kerry Archibald <kerrya@element.io>
* kill beacons when geolocation is unavailable or permissions denied
Signed-off-by: Kerry Archibald <kerrya@element.io>
* polish and comments
Signed-off-by: Kerry Archibald <kerrya@element.io>
* Add utility for getting connected voice participants
* Allow voice room members to send connected device state
* Update connected devices when connecting/disconnecting voice
* Show voice room participants in room tile when not connected
* Update voice room tests
* Add null types and guards
* Remove deprecated feature_communities_v2_prototypes
* Update _components
* i18n
* delint
* Cut out a bit more dead code
* Carve into legacy components
* Carve into mostly the room list code
* Carve into instances of "groupId"
* Carve out more of what comes up with "groups"
* Carve out some settings
* ignore related groups state
* Remove instances of spacesEnabled
* Fix some obvious issues
* Remove now-unused css
* Fix variable naming for legacy components
* Update i18n
* Misc cleanup from manual review
* Update snapshot for changed flag
* Appease linters
* rethemedex
* Remove now-unused AddressPickerDialog
* Make ConfirmUserActionDialog's member a required prop
* Remove useless override from RightPanelStore
* Remove extraneous CSS
* Update i18n
* Demo: "Communities are now Spaces" landing page
* Restore linkify for group IDs
* Demo: Dialog on click for communities->spaces notice
* i18n for demos
* i18n post-merge
* Update copy
* Appease the linter
* Post-merge cleanup
* Re-add spaces_learn_more_url to the new SdkConfig place
* Round 1 of post-merge fixes
* i18n
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Add voice room labs flag
Signed-off-by: Robin Townsend <robin@robin.town>
* Add more widget actions for interacting with Jitsi
Signed-off-by: Robin Townsend <robin@robin.town>
* Factor out a more generic Jitsi creation utility
Signed-off-by: Robin Townsend <robin@robin.town>
* Add utilities for managing voice channels
Signed-off-by: Robin Townsend <robin@robin.town>
* Enable creation of voice rooms
Signed-off-by: Robin Townsend <robin@robin.town>
* Force a maximized view of voice channel widgets
Signed-off-by: Robin Townsend <robin@robin.town>
* Add voice channel store
Signed-off-by: Robin Townsend <robin@robin.town>
* Factor out a more generic FacePile
Signed-off-by: Robin Townsend <robin@robin.town>
* Implement room tile changes for voice rooms
Signed-off-by: Robin Townsend <robin@robin.town>
* Add interactive radio component to the left panel
Signed-off-by: Robin Townsend <robin@robin.town>
* Test voice rooms
Signed-off-by: Robin Townsend <robin@robin.town>
* Update name of call room type
Signed-off-by: Robin Townsend <robin@robin.town>
* Clarify that voice rooms are under development
Signed-off-by: Robin Townsend <robin@robin.town>
* Use readonly
Signed-off-by: Robin Townsend <robin@robin.town>
* Move acks to the end of handlers
Signed-off-by: Robin Townsend <robin@robin.town>
* Add comment about avatar URLs coming from Jitsi
Signed-off-by: Robin Townsend <robin@robin.town>
* Don't use unicode ellipses
for translation reasons?
Signed-off-by: Robin Townsend <robin@robin.town>
* Fix tests
Signed-off-by: Robin Townsend <robin@robin.town>
* Fix tests, again
Signed-off-by: Robin Townsend <robin@robin.town>
* Remove unnecessary export
Signed-off-by: Robin Townsend <robin@robin.town>
* Ack Jitsi events when we wait for them
Signed-off-by: Robin Townsend <robin@robin.town>
* Test basic pinned message functionality
Signed-off-by: Robin Townsend <robin@robin.town>
* Test pinned polls
Signed-off-by: Robin Townsend <robin@robin.town>
* Fix test
Signed-off-by: Robin Townsend <robin@robin.town>
* Hide unpinnable pinned messages in more cases
Signed-off-by: Robin Townsend <robin@robin.town>
* Fix typo
Signed-off-by: Robin Townsend <robin@robin.town>
* Test that unpinnable pinned messages get hidden
Signed-off-by: Robin Townsend <robin@robin.town>
* Fix cli.relations error in test
Signed-off-by: Robin Townsend <robin@robin.town>
* Use event: true shortcut when calling mkEvent
Signed-off-by: Robin Townsend <robin@robin.town>
* Use mockResolvedValue instead of mockReturnValue for async mock
Signed-off-by: Robin Townsend <robin@robin.town>
* Actually mock redacted messages correctly
Signed-off-by: Robin Townsend <robin@robin.town>
* Ensure that panel is updated before assertions are made
Signed-off-by: Robin Townsend <robin@robin.town>
* Test that pinned messages reflect edits correctly
Signed-off-by: Robin Townsend <robin@robin.town>
* Fix warning about missing date
Signed-off-by: Robin Townsend <robin@robin.town>
* Move calls to update out of act
They don't need to be there.
Signed-off-by: Robin Townsend <robin@robin.town>
* Move calls to update out of act
They don't need to be there.
Signed-off-by: Robin Townsend <robin@robin.town>
* Fix lint
Signed-off-by: Robin Townsend <robin@robin.town>
* Hide unpinnable pinned messages in more cases
Signed-off-by: Robin Townsend <robin@robin.town>
* Fix typo
Signed-off-by: Robin Townsend <robin@robin.town>
* Test that unpinnable pinned messages get hidden
Signed-off-by: Robin Townsend <robin@robin.town>
* Fix cli.relations error in test
Signed-off-by: Robin Townsend <robin@robin.town>
* Use event: true shortcut when calling mkEvent
Signed-off-by: Robin Townsend <robin@robin.town>
* Use mockResolvedValue instead of mockReturnValue for async mock
Signed-off-by: Robin Townsend <robin@robin.town>
* Actually mock redacted messages correctly
Signed-off-by: Robin Townsend <robin@robin.town>
* Ensure that panel is updated before assertions are made
Signed-off-by: Robin Townsend <robin@robin.town>
* Move calls to update out of act
They don't need to be there.
Signed-off-by: Robin Townsend <robin@robin.town>