* Add note against using force push in PRs
Because apparently this wasn't here which probably explains why I have to keep asking people not to force push.
* Okay prettier
* Set up the MatrixClient before each RecoveryPanelOutOfSync test
Without this, we can't override MatrixClient methods until we've called
`renderComponent`, which is awkward.
* Actually test that we load the decryption key in RecoveryPanelOutOfSync
It turns out the existing test didn't actually go down the expected code
path and call loadSessionBackupPrivateKeyFromSecretStorage.
* Reset key storage if restoring from Recovery encounters the wrong decryption key
Fixes https://github.com/element-hq/element-web/issues/31793
Depends on https://github.com/matrix-org/matrix-js-sdk/pull/5202
When we try to load the key storage decryption key from Recovery, but we
find that it does not match the public key of the current key storage
backup, create a new key storage backup.
* Refactor className? to component property in EncryptionEventView
* Refactor extraClassNames to default react className as component property for DecryptionFailureBodyView
* Refactor className to component property for MessageTimestampView
* Refactor className and children to component properties for ReactionsRowButton
* Refactor className to component property for DisambiguatedProfile
* Refactor className to a component property in DateSeparatorView
* Fix for lint errors and EncryptionEventView unsupported icon color
* EncryptionEventView fix for icon color css specificity/order
* refactor: move `MessagePreviewStore` and previews into its own directory
The `MessagePreviewStore` is used widly and not only by the room list.
Moving to its own folder to be able to remove old room list later with
less friction
* test: add more tests
* refactor: extract `getTagsForRoom` from old rls
`getTagsForRoom` doesn't rely on the rls state. We can extract it safely
to an external function.
The function is not moved into the rls v3 because the rls is for the
room list and not for other ui elements.
* refactor: remove dead code
* test: add more tests for `getTagsForRoom`
* refactor: `getTagsForRoom` in old rls
* doc: add missing tsdoc for `room`
* Update ghcr.io/element-hq/synapse:develop Docker digest to b256d74
* Update screenshot due to new API availability on Synapse
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>
* refactor: move `DefaultTagID` and `TagID` to rls v3
Move the enum and type in rls v3 and update imports
* refactor: move `getChangedOverrideRoomMutePushRules` from rls to rls v3
* refactor: replace `VisiblityProvider` by `isRoomVisible` and move it to rls v3
* Add widget lifecycle API at top level
* Integrate while still falling back to the legacy api
* Remove WidgetKind
* Update module api
to the one that includes the new widget lifecycle api
* lint
* Make preload checks easier to understand
- Have single code path for preload checks.
- Remove duplicated logic for preapproveIdentity check
- Fix headers
* lint
* perf(room list): clear room list item vm only when changing space
Clearing all the item vms at every room list change is causing massive
re-render of all the room list items. References to the vms are already
removed when out of view (see RoomListViewMode.updateVisibleRooms) and
handled by GC.
* perf(room list): avoid to re-render filters at every room list update
RoomListView re-renders on update but the filters (children) don't need
to.
Add a memo to avoid excessive-rerenders.
* chore: add `keepIfSame` to do diff on vm objects
* perf(room list): avoid to create new filter ids and keys when the room list is updated
The filterKeys are passed in the virtuoso context so it should reduce
internal computing
The filter ids array has always the same value, there is no point to
create a new instance.
* test(room list): remove no longer relevant test
* test(room list): add new test to ensure that room list item vms are preserved
* feat(call store): add new `CallEvent.Participants` event
The room list needs to listen to `CallEvent.Participants` to be able to
display the Call icon. This was working before
https://github.com/element-hq/element-web/pull/32663 due to an excessive
re-renders or relying on the notification events.
* chore(room list): listen to `CallEvent.Participants`
* test(room list): add test for new listener
* test(call store): add tests for `CallEvent.Particpants`
* Revert "feat(call store): add new `CallEvent.Participants` event"
This reverts commit d2a7a009a4c55325404ad38f23fa662a8103cff4.
* Revert "test(call store): add tests for `CallEvent.Particpants`"
This reverts commit 4455182fb3aea54ea10cfabb8beb7946cfdf8a6c.
* chore(room list): listen to `Call#CallEvent.Participants` insteaf of listening to `CallStore`
* test(room list): update added test
* fix(room list): clean properly listeners on previous call
* test(room list): add missing test
* fix(room list): don't use trackListeners to avoid leaking memory when listening to call event
* fix(room list): listen to participant change when vm is created
* test(room list): add test case when there is an existing call
terser-webpack-plugin depends on ^6 but there's a CVE that's only
fixed in version 7. The CVE probably isn't terribly important for
a dependecy only used for building but it's breaking the dependabot
job which breaks our CD.
https://github.com/webpack/terser-webpack-plugin/issues/644 is the bug
tracking upgrading the dependency upstream.
* Init shared component structure
* Storybook implementation
* Add snapshots of storybook examples
* ViewModel Creation + Implementation In EventTile.tsx
* Prettier
* Update HTML snapshot
* Add onhover pointer on bottons
* Added compound web tooltip
* Removed possible of undefined on label
* Update snapshots
* Update setters to use merge instead of updating full snapshot
* adapt view model test for setters change
* Actions should be passed to viewmodel fix
* replace ReactionsRowWrapper forceRender with explicit reaction state
* Update snapshot
* Refactor DateSeparator using MVVM and move to shared-components
* Add a few more stories, tests and screenshots
* Use the shared component and viewmodel in element-web
* Renaming custom content property an updating snapshots
* Fix lint errors and update snapshot after merge
* Change lifecycle handling for DateSeparatoreViewModel in components where manual handling is preferrable over wrapper component.
* Move context menu from viewmodel to shared components - step 1
* Create a jump to date picker component in shared components
* Add tests for coverage and fix layout issues and roving indexes
* Make element-web use the new component
* Simplify context menu and adjusting tests
* The HTMLExport now render shared components and need a I18nContext.Provider
* Updating unit tests for context menu
* Changed to {translate: _t} to let scripts pick up translations
* Fix lint issue and updating screenshots after merge
* Update snaps for element web components
* Renaming MVVM view components with suffix View.
* Fixing problem with input date calendar icon and system dark theme
* Changed the rendering of the menu and added a separate button component
* Handle input control with useRef in onKeyDown
* Updating DateSeparator snapshots on unit tests
* Updating layout after compound Menu got a className property
* Move files to new subfolder after merge
* Updated snapshot after merge
* Updating lock file
* Updates to styling from PR review
* Updates to focus/blur functionality
* Fixed tabbing and export documentation to stories
* Updated snapshots
---------
Co-authored-by: Zack <zazi21@student.bth.se>
* widget-api: Implement driver `readStickyEvents`
* Bump matrix widget api version to get new driver interface
* review: add comment about capabilitiesm check
* bump matrix-widget-api version to ^1.17.0
* Update the jest option for the sonar reporter
'testResultsProcessor' is deprecated: jest-sonar-reporter supports being
a regular 'reporter'.
* Just add sonar reporter in GHA
* Prettier
* oh yeah, ??= is a thing
* Update comment
* Replace copy-res with a webpack plugin
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Specify writeToDisk=true for webpack-dev-server
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Use async fs methods
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix invite-specific join errors not being shown
* remove horrible non-jest function of getAccountData
* Use an Error
* Always dispatch an Error
* Throw a UserFriendlyError
* Update critical gradient for room status bar
As per design request, this has been updated to be much more subtle
https://github.com/element-hq/compound-design-tokens/pull/232
* update shared-component
* Cleanup
* Update snaps
* description fix color
* More cleanup
* Use the correct border color
* new snaps
* fix border, button placement, fonts etc
* update lock
* Update status bar
* Update playwright snaps
* Update snap icon
* Update other banners
* update snap
* fixup
* Add stable support for MSC4380 invite blocking
MSC4380 has completed FCP, so we can add stable support for it.
* Set account data to empty value when allowing invites
... because that's what the spec says
* Use identifiers from js-sdk