* basic implementation of an /share?msg=foo endpoint
* SharePayload
* add sharing html & md while we're at it
* remove whitespace from imports to appease linter
* lint
* Add unit test
* More tests
* Test for showScreen
* Use one of the typed strings
* Test nasty tags stripped out
* Add playwright test
* Fix flake
by not relying on the name being synced as soon as we load
---------
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
* feat: create roomsummarycard viewmodel
* feat: use roomsummurycard vm in component
* test: jest unit RoomSummaryCard and RoomSummaryCardViewModel
* chore: rename to roomsummarycardview
* feat: reput room topic without vm
* test: roomSummaryCard and roomSummaryCardVM tests
* chore: add comments on roomsummarycardVM
* fix: merge conflict with roomsummarytopic, and move to vm right_panel
* fix(roomsummarycard): remove usetransition for search update
* fix: merged file that should be deleted
* fix: roomsummurycard not well merge with roomtopic
* test: update snapshots
* Dispatch an action when room is forgotten
* Dispatch an action when room is forgotten
* Remove room on action
* Add test
* Write test for matrixchat
* Add payload info to comment
* Don't toggle to the minimised left bar size.
* Don't re-style old room list when at the minimum size
* Only apply larger minimised with on new room list
* Don't tell child views we are minimised for the new room list
* move comment to the correct place
* address PR comments
* Don't wrap search text and add truncation down to a minimum of 50px
* Put min-width on the button so that we don't have to hardcode the 50px
* Keep the flex display, shrink and truncate just the search text and keep the shortcut
* Update snapshots
* Add comment for magic value
* Make inner search text a span
* Add e2e test for smallscreen to test responsiveness
* Update snapshots
* Forcing an empty commit to fix PR
* Change minWidth to 224
* Switch from defer to PromiseWithResolvers
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Add modernizr check
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix up type for `finished` result of Modal
The `finished` promise can be called with an empty array, for example if the
dialog is closed by a background click. This was not correctly represented in
the typing. Fix that, and add some documentation while we're at it.
* Type fixes to onFinished callbacks from Modal
These can all be called with zero arguments, despite what the type annotations
may say, so mark them accordingly.
* Remove uses of Modal `onFinished` property
... because it is confusing.
Instead, use the `finished` promise returned by `createDialog`.
* Modal: remove support for now-unused `onFinished` prop
* StopGapWidgetDriver: use `await` instead of promise chaining
* Fix up unit tests
* Allow jumping to message search from spotlight
replaces the message search hint which referenced the old UX
Fixes#29831
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update RoomSummaryCard.tsx
* Update actions.ts
* Delete src/hooks/useTransition.ts
* Update RoomSummaryCard.tsx
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Add test
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update react monorepo to v19
* Import JSX explicitly for React 19 compatibility
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update usages of refs for React 19 compatibility
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update react imports
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Avoid legacy contexts as much as possible
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Avoid deprecated React symbols
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Stash
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update usages of refs for React 19 compatibility
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Switch pillify to use a html-react-parser approach rather than DOM muddling
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate react html parsing
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate react html parsing
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate html parsing
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Memoize the EventContentBody component
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate html parsing
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Simplify
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Discard changes to src/Linkify.tsx
* Discard changes to src/components/views/messages/TextualBody.tsx
* Discard changes to src/settings/handlers/AbstractLocalStorageSettingsHandler.ts
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Prepare for React 19 upgrade
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Remove stale comment
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Add report room dialog button/dialog.
* Update copy
* fixup tests / lint
* Fix title in test.
* update snapshot
* Add unit tests for dialog
* lint
* First pass at adding a report room on invite.
* Use a single line input field for reason to avoid bumping the layout.
* Fixups
* Embed reason to make it clear on grouping
* Revert accidental commit
* lint
* Add some playwright tests.
* tweaks
* Make ignored users list more accessible.
* i18n
* Fix sliding sync test.
* Add unit test
* Even more unit tests.
* move test
* Update to match designs.
* remove console statements
* fix css
* tidy up
* improve comments
* fix css
* updates
* Replace onHeightChanged with ResizeObserver
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix token expiry racing with login causing wrong error to be shown
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Add tests
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* yay jest
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix labelling of avatar menu
* Make the integration manager toggle more clear.
* fix label
* lint
* Update snapshots.
* Refactor many cases of checkbox to use the new compound component.
* Remove non-checkbox related changes
* Reset some things
* Remove usages of mx_checkbox* styling.
* Use label locators for apperance tests.
* small linter tweaks
* lint
* update screenshot
* Test updates
* lint
* Realign checkboxes for device selection.
* Fixup QuickSettings styling
* remove comment
* lint
* flex comment
* remove unused label
* remove redundant classes
* add test for spaces
* lint
* Copyright
* fixup spaces test
* spaces lint
* Replace pin with compound pin.
* Realign icons
* Remove hack for colouring icons
* Adjust existing rooms component to correctly label room.
* Add test for adding an existing room to an existing space.
* Set deterministic sort order for rooms
* lint
* In force-verify mode, prevent bypassing by cancelling device verification
* Don't show the after-login screen if we are racing with forced verification
* Unit test for not bypassing verification by cancelling device verify
* Avoid destroying calls until they are hidden from the UI
We often want calls to exist even when no more participants are left in the MatrixRTC session. So, we should avoid destroying calls as long as they're being presented in the UI; this means that the user has an intent to either join the call or continue looking at an error screen, and we shouldn't interrupt that interaction.
The RoomViewStore is now what takes care of creating and destroying calls, rather than the CallView. In general it seems kinda impossible to safely create and destroy model objects from React lifecycle hooks, so moving this responsibility to a store seemed appropriate and resolves existing issues with calls in React strict mode.
* Wait for a close action before closing a call
This creates a distinction between the user hanging up and the widget being ready to close, which is useful for allowing Element Call to show error screens when disconnected from the call, for example.
* Don't expect a 'close' action in video rooms
These use the returnToLobby option and are expected to remain visible when the user leaves the call.
* Create new labs flag
* Render empty room list view
* Reload on flag change
* Rename RoomList.tsx to LegacyRoomList.tsx
and rename NewRoomListView.tsx to RoomListView.tsx
* Update labs.md
* Don't reload roomview on offline connectivity check
Doesn't look like this was a regression as far as I can see, but
you did have to switch rooms while offline for it to start happening.
There's no use reloading the room until we're online again.
Fixes https://github.com/element-hq/element-web/issues/29072
* Add regression test
* Move it down the file to avoid changing the snapshots
* refactor(MatrixChat): remove `MatrixClient.setGlobalErrorOnUnknownDevices` call
MatrixClient.setGlobalErrorOnUnknownDevices is not implemented in the rust-crypto and will be removed when the legacy crypto will be ripped out.
* test(e2e): remove `MatrixClient.setGlobalErrorOnUnknownDevices` call
MatrixClient.setGlobalErrorOnUnknownDevices is not implemented in the rust-crypto and will be removed when the legacy crypto will be ripped out.
* Make themed widgets reflect the effective theme
So that widgets such as Element Call will show up in the right theme even if the app is set to match the system theme.
* Remove debug log line
* Fix tiny typo in existing code
* Create a hook that uses the right panel store
So that we track changes to the right panel phases
* Create a context that wraps the previous hook we created
We do this so that we can get by using a single event listener i.e we
only need to call `useCurrentPhase` in the provider as opposed to
calling it in each header icon.
* Create a hook that tells you if a panel is open or not
* Create component that wraps Icon
and adds a class name when the corresponding panel is open
* Style room header icons for when they are toggled
* Style face pile for toggle state
* Fix broken CI
* Give directory a better name
* Update year in license
* Use a stronger type
* Switch to React18 useId
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Enable react-compiler eslint
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix an easy one
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Disable in tests
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix usage of useRef as memoization
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix mutation of external values in hooks
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Make React compiler happy about some frankly non-issues
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix MapMock
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Revert MemberListViewModel.tsx changes and disable linter per line
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Make viewmodel compatible with react-compiler linter
- Remove searchQuery ref/state and instead pass this query to the
loadMember function.
- Now we no longer need a separate search function
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
Co-authored-by: R Midhun Suresh <hi@midhun.dev>
* Switch LegacyCallHandler over to TypedEventEmitter and use emits to notify consumers of protocol support updates
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Add test for dialpad
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Remove FTUE onboarding as it is incompatible with SSO/OIDC
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update tests
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Remove stale screenshots
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Add new e2e icon for the member tile
* Add new presence icon for member tile
* Implement new member tile
* Implement memberlist view model
* Implement new memberlist header view
* Support the new memberlist in Diasambiguated profile
1. Use MemberInfo instead of RoomMember
2. CSS changes to reflect the new design
* Implement new memberlist view
* Add and use a new overflow component
We used the EntityTile component as a pretend overflow tile in some
places. This new lighter component is added so that we can remove the
complex EntityTile component.
* Remove old code
* Add/remove css files from _components.pcss
* Increase minimum width as per design
* Actually use the new memberlist view
* Fix broken jest tests
* Add jest tests
* Playwright: Make it possible to disable presence
* Add playwright tests
* Fix lint error
* Undo translation changes that must be done via localazy
* Update license header
* Use waitFor instead of setTimeout
* Remove comment
* Switch over from template to container hs
* Revert unintended change
* Move config to top level
* Add commercial licence and update config files
* Update license in headers
* Revert "Update license in headers"
This reverts commit 7ed7949485.
* Update only spdx id
* Remove LicenseRef- from package.json
LicenseRef- no longer allowed in npm v3 package.json
This fixes the warning in the logs and failing build check.
* Harden Settings using mapped types
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix issues found during hardening
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Remove oidc native flow stale key
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>