* Switch shared-components from yarn classic to pnpm
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Switch element-web from yarn classic to pnpm
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Switch CI to pnpm
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update docs & comments
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Hold back postcss to match yarn.lock & use workspace protocol
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Tweak CI
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Rid the world of `$(res)`
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Switch to type=module
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix module import
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Make knip happy
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update playwright imports
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Make docker build happy
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Remove stale params
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix badly formatted logging
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Switch to lodash-es
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Make jest happier
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Switch element-web to ESM
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update testcontainers imports
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix modernizr cjs
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix modernizr cjs ignore files
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Move modernizr sonar exclusion to exclude everything
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Update playwright tests for esm compat
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Add pnpm-link utility
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Test matrix-web-i18n
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>
* Discard changes to src/vector/index.ts
* Update playwright-common
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Use catalogs
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Improve pnpm-link script
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Use pnpm import to regenerate lockfile from yarn.lock
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix room list not being cleared
RoomListV3 was lacking an onNotReady which meant that the room list
would sometimes not be cleared between logins.
* Fix return type
---------
(cherry picked from commit 81b111371fba05085d50493ceafd84639d59c9e7)
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
Co-authored-by: Florian Duros <florianduros@element.io>
* fix: Update `globalBlacklistUnverifiedDevices` on setting change
Signed-off-by: Skye Elliot <actuallyori@gmail.com>
* fix: Use `SettingLevel.DEVICE` filter on blacklisted device watcher
* tests: Add playwright test for blacklist unverified devices toggle
* docs: Correct test step description
Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
* tests: Add test for local vs global blacklist unverified devices
* tests: Ensure local toggle overrides global toggle.
* tests: Add unit tests for blacklistUnverifiedDevices listener
---------
Signed-off-by: Skye Elliot <actuallyori@gmail.com>
Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
* Fix room list not being cleared
RoomListV3 was lacking an onNotReady which meant that the room list
would sometimes not be cleared between logins.
* Fix return type
Co-authored-by: Florian Duros <florianduros@element.io>
---------
Co-authored-by: Florian Duros <florianduros@element.io>
* Extract logic for this device from DeviceListener
* Remove a listener that I assume we forgot in DeviceListener
* Use a code block for JSON in a comment
Co-authored-by: Skye Elliot <actuallyori@gmail.com>
* Rename to DeviceListenerCurrentDevice
---------
Co-authored-by: Skye Elliot <actuallyori@gmail.com>
* Move SlashCommands into slash-commands
* Move SlashCommands test prep into a function that can be re-used from multiple files
* Move slash command tests into separate files
* Fix super-linear regexes and test some more slash commands
* Move splitAtFirstSpace tests into a separate file
* Test for parseCommandString
* Make parseCommandString able to handle leading whitespace and tabs
* Implement parseCommandString using splitAtFirstSpace
* Extract emoticons slash commands into a separate file and share their code
* doc: add typedoc generation for shared component
* ci: add SC doc publish
* ci: push doc on changes on develop
* ci: fix working directory
* doc: add typedoc generation into storybook
* doc: build i18n files for storybook static sites
* ci: change workflow to deploy storybook
* chore: exclude non-ui tests from vitest visual tests
* chore: try to fix error in CI
* doc: fix broken link in README
* doc: add typedoc missing export plugin
Add https://github.com/Gerrit0/typedoc-plugin-missing-exports to avoid
to have to explicit export all the types which are not used outside SC
* doc: add mapping to external docs
* fix: remove shebang
* 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>