* Add NotificationDecoration component
Add the NotificationDecoration component to shared-components.
This is a leaf component that renders notification badges and indicators
for rooms/items including mentions, unread counts, call indicators, etc.
* Add RoomListItem component
Add the RoomListItem component to shared-components.
Includes context menu, hover menu, notification menu, and more options menu.
* Add RoomListPrimaryFilters component
Add filter chips component for filtering the room list by
unread, people, rooms, favourites, mentions, invites, and low priority.
* Update VirtualizedList component
Update VirtualizedList to support the room list virtualization requirements.
* Add RoomList component
Add RoomList component that renders a virtualized list of room items.
Includes story mocks for testing.
* Add RoomListView component
Add RoomListView component that composes RoomList with filters,
empty states, and loading skeleton.
* Export room-list components from shared-components
Add exports for RoomListView, RoomListItem, RoomListPrimaryFilters, and RoomList.
Include i18n strings for room list components.
* Add RoomListItemViewModel
Add view model for individual room list items.
Manages per-room subscriptions and updates only when specific room data changes.
* Add RoomListViewViewModel
Add view model for the room list view.
Manages room list state, filtering, keyboard navigation, and child view models.
* Integrate shared components into RoomListView
Update RoomListView to use the new ViewModels and shared components.
Includes i18n string updates for element-web.
* Remove old room list implementation
Remove old ViewModels, hooks, and view components that are now
replaced by the shared-components implementation.
* Update sliding-sync playwright test
Update test expectations for new room list implementation.
* Add figma links
* Move viewModels to the right folder
* Rename to RoomListEmptyStateView
* Update VirtualizedRoomListView naming
* Update screenshots and snapshots
* Move viewmodel tests to the right location and fix some imports
* lint
* Use unknown as an Opaque type rather than any. It discourages property access within shared components and can still be cast back in EW.
* Update screenshots for new shared component rendering params
* Make room order tests deterministic
* Update dependency @playwright/test to v1.58.1
* Update snapshots & screenshots
* Another screenshot
* Un-focus room tile and scroll it into view
possibly some change in what ends up focused after a popup disappears
* uncomment the screenshots
* Correct screenshot
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
* fix: Remove state_key: null from Seshat search results
Seshat includes "state_key": null for non-state events, which causes
matrix-js-sdk to incorrectly treat them as state events. This prevents
encrypted messages from rendering properly in search results.
This fix removes the null state_key from search results and context
events before passing them to the SDK.
* test: cover local search null state_key edge cases
* test: satisfy strict types in searching coverage test
---------
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
* Refactor TimelineSeparator to shared-components package
• New TimelineSeparator component in packages/shared-components/
• Updated MessagePanel.tsx to import from shared-components
* Fix copyright text
* Timeline Unit Tests + Timeline Snapshot Tests
* Imported correct timeline seperator
* Update snapshots because of css update
* Apply suggestion from @florianduros
Co-authored-by: Florian Duros <florian.duros@ormaz.fr>
* Created className prop
* Removal of element x unused css
* Update snapshot because of Flex
* Update snapshots because of Flex
* Update css to correct values and compund name
* Added letter spacing to timelineseperator
* rremoval of letter spacing
* added align center to flex to apply correct css changes
* Update snapshots to reflect new css changes
* Update snapshots to reflect css changes
* Added letter-spacing to timeline seperator
* Update snapshots after css update
* update snapshots
---------
Co-authored-by: Florian Duros <florian.duros@ormaz.fr>
* Update npm non-major dependencies
* Fix type
* Katex comes with its own types now
Or possibly it always had them but they just put them in the package.json
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
* Move the code for running the upgrade command into its subdir
* Replace use of deprecated currentState property in runUpgradeRoomCommand
* Move upgraderoom command options into their own file
* Move upgraderoom tests into their own file and add a couple
* Move EventTileBubble to shared components as is
* Added documentation and updated stories and unit tests
* Move 'global' element web css to _common.pcss
* Adding playwright snapshots
* Updated comments
* Added legacy mx_MessageTimestamp class and updated snapshots
* Regenerate snapshots with correct hash
* Changes to css and removed timestamp from properties after review.
* Update screenshot for room-list and fix flaky CI playwright test.
* Blur the play button before matching screenshots
* Changed to button focused instead of blur for consistancy
* Stabilize play button appearance in CI (disabled due to decoding)
* Force play button appearance in CI (disabled due to decoding)
* Add comments on playwright test changes.
Change from React.RefObject<any> to Ref<HTMLDivElement> in EncryptionEvent.tsx
* Update playwright/e2e/composer/CIDER.spec.ts
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Update playwright/e2e/composer/CIDER.spec.ts
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Update playwright/e2e/crypto/toasts.spec.ts
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Add `HistoryVisibilityBadge` shared component
* Add `historyVisibility` to `RoomSummaryCardViewModel`
* Add a history visibility badge to the room info panel
* Allow roominfo panel badges to wrap
Now that we have an extra one, it's quite likely we'll have to spill onto more
lines.
* update screenshots
* Set icons in badges to be 16px
Having discussed this with the design team, the icons in badges should be 16px, not 13px,
at default font size settings.
* Add stories for all history visibility states
* fix incorrect use of useRoomState
* fix snapshots
* more snapshot updates
* Update screenshots
* Fix failure to update room info panel on joinrule change
Currently, if the join rules are updated, the room info panel is not updated
until the panel is re-rendered. This is due to a misuse of `useRoomState`.
* Update documentation and types on `useRoomState`
This hook is useless without a `mapper` function, so let's mandate it. Also
improve the documentation while we're here.
Because every room in a space will emit a notification state change
when push rules change so we would otherwise recalculate the space
notification state for every room in the space, On^2 style.
* Refactor DecryptionFailureBody to MVVM and moving it to shared components
* Added unit test for DecryptionFailureBodyViewModel
* Removing the dependency to matrix.js-sdk from the shared component
* Kepp class mx_EventTile_content for tile layout
* Required changes after rebase
* Updates after PR review requests
* Clean up unused translation tags in element-web
* Added missing unit tests to improve coverage
* Additional unit tests to improve test coverage
* Removing obsolete tests from the snap
* Only listen to verification state changes in the wrapper components and also limit the view model to only allow updates in verification state.
* Updates after review requests
* Updated and added missing playwright snapshots
* Bettter structure on view model
---------
Co-authored-by: Florian Duros <florianduros@element.io>
Co-authored-by: Zack <zazi21@student.bth.se>
* Setting up structure for the init refactoring of ReactionsRowButtonTooltip
* implemented example to follow for refactoring to MVVM
* Refactoring of ReactionsRowButtonTooltipView
* updated reactionrowbutton to use our new viewmodel and removed unessecery comments
* Updated children from reactnode to propswithchildren
* removal of children on the vm have it as a props
* implemented constructor into reactionrowbutton to use vm to viewmodel
* Removal of old component
* Added ViewModel Tests for new viewmodel
* Fix issues after merging develop
* Updated import placement for eslint failure CI
* Add tests for ReactionsRowButton ViewModel integration and click handlers to pass coverage
* Added more tests to cover all conditions
* Pass MatrixClient as prop instead of using global; replace expect(true).toBe(true) with not.toThrow()
* Added new snapshot to reflect modifications on tests
* Update images to fit the CI tests
* Optimize reactions tooltip viewmodel updates
* Removal of module.css for reactionbuttontooltip, we dont need it since we dont use any css
* Fixed snapshots to show the tooltip by introducing a boolean to set open to true in Storybook.
* Update snapshots
---------
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Extract SasEmoji to shared-components
and improve responsive layout
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Add baseline screenshots
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update tests
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix e2e test
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Add SasEmoji snapshot test
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Add figma link
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Improve doc
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Add new dir to crypto-web-reviewers codeowners as per ask
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Create WidgetContextMenu component in shared-components
* Modify WidgetMenuContext call (apptile, extensioncard, widgetcard), test and stories
* Correctly use new widgetcontextmenu component
* WidgetContextMenuViewModel unit test
* Lint and add comments
* Finalize widgetcontextmenuviewmodel test
* fix lint errors
* Fix test error
* Update playwright screenshots
* add userWidget in widgetcontexstmenu props
* Fix some a11y issues on playwright
* fix linter error widget card
* Use new i18n way for share component widget context menu
* Add i18n context provider for widget context menu
* chore: lint and update snapshot widgetcontextmenu