* handle beacon location events in ForwardDialog
* add transformer for forwarded events in MessageContextMenu
* remove canForward
* update snapshots for beacon model change
* add comments
* fix bad copy pasted test
* add test for beacon locations
* 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
* Crude way of layering the waveform and seek bar
Not intended for production.
* Use a layout prop instead of something less descriptive
* Fix alignment properly, and play with styles
* Convert back to a ball
* Use `transparent` which makes NVDA happy enough
* Allow keyboards in the seek bar
* Try to make the clock behave more correctly with screen readers
MIDNIGHT
* Remove legacy export
* Remove redundant attr
* Appease the linter
* Remove all mentions of Piwik
* Kill off all consumer of the old Piwik Analytics module
* Simplify ModalManager interface
* i18n
* Attempt to fix old e2e tests
* Remove unused component
* Iterate PR
* Convert sticker end-to-end tests to Cypress
Reference materials:
* https://www.cypress.io/blog/2020/02/12/working-with-iframes-in-cypress/
* https://github.com/cypress-io/cypress/issues/136
* https://docs.cypress.io/api/commands/origin#Other-limitations
Ideally we'd be able to use `cy.origin()` to jump into the iframe, but it's explicitly not supported. Instead we disable web security as instructed by cypress because it's our only reasonable option here. Thankfully, disabling web security doesn't appear to remove the crypto libraries from the browser so we can still function in that respect.
Rationale for why we can't just serve the sticker picker off the app domain is included in the code.
* Appease the linter
* More linter appeasement
* Place room tiles with grid
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Set padding inside of name stack
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Remove overflow:hidden (to be cancelled)
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Replace text-align with margin
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Style invite failure dialog with display:grid
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Merge style rules of room tiles and tiles on invitation failure dialog
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Normalize avatar size for multiInviterError
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Set text overflow with ellipsis
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Use spacing variables
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Set narrow gap to nameStack
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Rename mx_InviteDialog_inviterErrorTile_error
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Create mx_InviteDialog_tile
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Set padding to room tiles only
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Remove space between name / userID and time (there is gap by default)
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Remove the margin from the last child
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* 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>
* Use updates stable relations from js-sdk
* Relations is now accessible on the Room instead
* Reuse more existing code and ditch confusing `isThreadRelation`
* Fix last usage of removed `isThreadRelation`
* Update tests to match removal of isThreadRelation
* Tweak method naming to closer match spec
* Fix missing method name change
* navigate to live location tile from left panel live warning
Signed-off-by: Kerry Archibald <kerrya@element.io>
* navigate to beacon tile from room live share warning
Signed-off-by: Kerry Archibald <kerrya@element.io>
* add cursor
Signed-off-by: Kerry Archibald <kerrya@element.io>
* Improve widet buttons behaviour and layout
Relates to vector-im/element-web#20506
See PSC-79
Signed-off-by: Michael Weimann <michaelw@matrix.org>
* Add AppTile tests
* test most basic paths in messageactionbar
Signed-off-by: Kerry Archibald <kerrya@element.io>
* tidy
Signed-off-by: Kerry Archibald <kerrya@element.io>
* use rtl for MessageActionBar test
Signed-off-by: Kerry Archibald <kerrya@element.io>
* make beacon_info events semi actionable
Signed-off-by: Kerry Archibald <kerrya@element.io>
* remove log
Signed-off-by: Kerry Archibald <kerrya@element.io>
* test thread exception for beacon
Signed-off-by: Kerry Archibald <kerrya@element.io>
* eat click events in beacon status to stop jumping from reply tile
Signed-off-by: Kerry Archibald <kerrya@element.io>
* set max width on beaconbody for render in thread panel
* Tests for roundtrips md<->HTML
* Convert roundtrip tests to it.each table style
* Fix lint errors
* Remove extraneous "f "
Co-authored-by: Travis Ralston <travisr@matrix.org>
* Test __ -> **
* Test for code blocks containing markdown
* Test for more ordered lists
* Test for code blocks with language specifiers
* Additional cases for HTML->markdown->HTML
Co-authored-by: Travis Ralston <travisr@matrix.org>
* Move spaces tests from Puppeteer to Cypress
* Add missing fixture
* Tweak synapsedocker to not double error on a docker failure
* Fix space hierarchy loading race condition
Fixes https://github.com/matrix-org/element-web-rageshakes/issues/10345
* Fix race condition when creating public space with url update code
* Try Electron once more due to perms issues around clipboard
* Try set browser permissions properly
* Try to enable clipboard another way
* Try electron again
* Try electron again again
* Switch to built-in cypress feature for file uploads
* Mock clipboard instead
* TMPDIR ftw?
* uid:gid pls
* Clipboard tests can now run on any browser due to mocking
* Test Enter as well as button for space creation
* Make the test actually work
* Update cypress/support/util.ts
Co-authored-by: Eric Eastwood <erice@element.io>
Co-authored-by: Eric Eastwood <erice@element.io>
* Write tests around composer badly handling gendered facepalm emoji
* Commit export for tests to be happy
* Fix edge case around composer handling gendered facepalm emoji
* Fix offset calculations and make code more readable
* 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>
* Add test case for null identity_providers for SSO
* Fix typing for identity_providers
* Make null idp explicit and handle in analytics
* chore: whitespace fix
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Add an option to ignore (block) a user when reporting their events
This is primarily useful if the content being reported really doesn't belong on your screen, and the room moderators are slow to react.
Ideally we'd use the word "block" instead of "ignore", but we call it "ignore user" everywhere else. See https://github.com/vector-im/element-web/issues/19590 for further context on the word choice.
This change includes a minor refactor to the styles of labelled toggles (for reusability).
* Appease the linter
* Use a checkbox instead of toggle in the dialog
* Update classnames handling for toggle switch
* Appease the linter
* Go to space landing page when clicking on a selected space
Signed-off-by: Robin Townsend <robin@robin.town>
* Go to home landing page when clicking on selected home space
Signed-off-by: Robin Townsend <robin@robin.town>
* Remove metaspace behavior
* Add tests
* Use the dispatcher action enum
* Break up the onClick assignment