* Add safety to the spotlight search dialog
Fixes https://github.com/vector-im/element-web/issues/22851
This test was triggering the mentioned bug only occasionally because it was dependent on when the search settled: if it settled early then the length was wrong. In testing, the dialog was caught multiple times to have passed the length chat but update to show duplicated results before the test closed the client, indicating a race condition within the tests.
To fix this, we just make sure everything settles before moving on. We do this on unaffected tests too to ensure they don't regress later.
The affected test was "should find group DMs by usernames or user ids".
* Update cypress/e2e/spotlight/spotlight.spec.ts
Co-authored-by: Robin <robin@robin.town>
Co-authored-by: Robin <robin@robin.town>
* Prefer using the canonical alias in spotlight search
Public rooms on other homeservers are not joinable via the roomId if they haven't been joined by other users on your homeserver.
* Ensure we call the action with the room_alias
* lint
* Drop display
* Always provide roomId
* Add rationale to room_id, room_alias
* whoops
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Extract room general context menu from roomtile
* Create hook to access and change a room’s notification state
* Extract room notification context menu from roomtile
* Add room context menus to rooms in spotlight
* Make arrow movement apply to the whole dialog, not just the input box
* Implement searching for public rooms and users in new search experience
* Implement loading indicator for spotlight results
* Moved spotlight dialog into own subfolder
* Extract search result avatar into separate component
* Build generic new dropdown menu component
* Build new network menu based on new network dropdown component
* Switch roomdirectory to use new network dropdown
* Replace old networkdropdown with new networkdropdown
* Added component for public room result details
* Extract hooks and subcomponents from SpotlightDialog
* Create new hook to get profile info based for an mxid
* Add hook to automatically re-request search results
* Add hook to prevent out-of-order search results
* Extract member sort algorithm from InviteDialog
* Keep sorting for non-room results stable
* Sort people suggestions using sort algorithm from InviteDialog
* Add copy/copied tooltip for invite link option in spotlight
* Clamp length of topic for public room results
* Add unit test for useDebouncedSearch
* Add unit test for useProfileInfo
* Create cypress test cases for spotlight dialog
* Add test for useLatestResult to prevent out-of-order results