* Update MemberListView.tsx
* Update MemberListViewModel.ts
* simplify 3PID invite keys to getStateKey and added regression test
* Use state_key for 3PID invite keys and set up test state before initial render
* Format common.tsx with oxfmt
* Refactor Mjolnir body to use render-only view model actions
* Extracted isMjolnirBodyAllowed from MessageEvent
* Converted the new test file to vitest
* Add EventTile root properties to view model
* Move render-related event reads into the vm
* Remove duplicate root derivation in UnwrappedEventTile
* Move data-has-reply derivation into EventTileViewModel
* Move getEventDisplayInfo() and dependencies into EventTileViewModel
* Add tests for improved coverage
* Cleanup and comments
* Fix: Replacement events have a fallback tile but must not show their own reply chain
* Combine dependency and prop updates into one atomic VM update
* Remove property which was never read and fix oxfmt issue
* Make apps/web/playwright comply with strict mode
Otherwise it sometimes fails to compile matrix-js-sdk as strict mode & noImplicitAny both impact how overloads are asserted
* Iterate
* Add new setting to store section state
* Store section state in device settings
* Wire up section header view model and new section functions
* Update room list vm tests
* Add e2e test on section state persistence
* Use more intuitive syntax for SectionExpansionState
* Formatting
* Fix chats section staying expanded
* Add CHAT section case in e2e test
* Fix joinRoom failing when the roomviewstore state changes.
* drive by type fix
* Help debugging failed dispatches
* Use proper types and include roomId in RoomViewStore tests
* remove focus
* Update apps/web/src/stores/RoomViewStore.tsx
Co-authored-by: R Midhun Suresh <hi@midhun.dev>
* fmt
* Add a test for coverage
---------
Co-authored-by: R Midhun Suresh <hi@midhun.dev>
Draw a styled 32px macOS title bar
Replace the per-surface drag-strip hacks with a single full-width title
bar band matching the design: canvas background, hairline separator, and
draggable. Recentre the traffic lights for the taller band. Dialogs and
floating overlays stay clickable when they reach into the band while the
rest of the bar remains draggable.
* Add pure sender render inputs to EventTileViewModel
* Move sender/avatar normalization to EventTile
* Split sender and avatar adapters into focused leaf components
* Add tests for the sender and avatar adapters
* Fix sonar issues
* Make sender profile consume pure member info
* Collapse sender adapter onto snapshot-driven props
* Share current-member resolution for event and reply tiles
* Fix Prettier issues
* Keep settings preview on historical sender profiles
* Update the proprty name to reflect the use of the event-time sender data instead of resolving the current room member
* Fix Sonar issue
* Tighten member to MemberInfo | null in the view model
* Remove support for MSC3391 & MSC3852
As they were both rejected & closed.
Synapse already removed support for MSC3852 which means it already did nothing: https://github.com/element-hq/synapse/pull/19430
* Update snapshot
* Fix some documentation for element-desktop
Some of these links got broken, or outdated, during the monorepo switch.
* Fix desktop docker build script
It will fail with 'workspace_node_modules: no such file or directory' if the
directory does not exist.
This got broken by https://github.com/element-hq/element-web/pull/33641.
* Clarify native modules doc
Most of this stuff does not apply when using the docker build.
* update snapshot
* Tweak CSS bundling to dedupe more styles
Previously all of compound-web & compound-design-tokens were duplicated amongst all the themes rather than just being in `bundle.css`.
* Fix highlight.js & github-markdown-css dark/light
* Fix highlight.js & github-markdown-css dark/light
* Iterate
* Add functionality to UIStore
- Make it possible to query if the window is currently being resized
- Emit WidthIncreased/WidthDecreased events
* Change resize behaviour of panel
So that the panel does not become smaller when the window is resized.
This is consistent with the old room-list design.
* Introduce a `CollapseHandler` object
This should be used by the collapse behaviours to collapse/expand the
panel. There's a good reason to not have the behaviours depend directly
on the react-resizable-panels API methods: We dont want the collapse/expand
calls to conflict with each other. See the comments in the code for more
information.
* Introduce a base class for collapse behaviour logic
Behaviours should extend this class to describe when the panel should
automatically collapse and expand.
* Add the window resize collapse behaviour
* Create a central file from which to export all behaviours
* Add a class to orchestrate the collapse behaviours
ResizerViewModel will only have a dependency on this class.
* Collapse panel on app start if necessary
For eg, if the app is started with a small window width, the panel should be
collapsed.
* Wire auto collapse code into the viewmodel
* Write jest tests
* Fix e2e tests
* Fix lint error
* Fix e2e test failures
* Expand the panel before taking screenshot
Fixes incorrect narrow screenshots in RTE.spec.ts and CIDER.spec.ts
* Make comments consistent
* Move tests from jest to vitest
* Fix lint errors
* Improve comment
* Remove variable
* Remove mock
* Fix comment formatting
* Support for reading m.call status
(well, the prefixed version)
* Abstract the details away in userStatusFromProfile
make the validate functions non-exported
* Write on on-=a-call status
* Add tests
* Move user call status logic to its own listener
* Move tests
* use vi rather than jest
* add more mocks
* call async