Commit Graph

263 Commits (269a9dfd22a126f0f752103416548d1b5c28845d)

Author SHA1 Message Date
Michael Telatynski 47877ba2da
Switch to importing matrix-js-sdk from its main export (#11360)
* Switch to importing TypedEventEmitter from main js-sdk export

* Switch to importing js-sdk/matrix in cypress

* Remove duplicated imports

* Fix lint:js-fix to run prettier last otherwise ESLint --fix may cause a mess

* Add lint rule

* Fix cypress-axe import

* Fix cypress-axe import
2023-08-03 12:56:30 +00:00
Michael Telatynski 8166306e0f
Fix clicking on home all rooms space notification not working (#11337)
* Fix clicking on home all rooms space notification not working

* Add test
2023-08-02 09:55:49 +00:00
Michael Weimann e33a7e41a4
Handle own profile 404 (#11319) 2023-07-26 09:54:45 +00:00
Kerry 0b0d77cbcc
OIDC: Persist details in session storage, create store (#11302)
* utils to persist clientId and issuer after oidc authentication

* add dep oidc-client-ts

* persist issuer and clientId after successful oidc auth

* add OidcClientStore

* comments and tidy

* format
2023-07-20 21:30:19 +00:00
Timo 58710d129d
Autoapprove Element Call oidc requests (#11209)
* autoapprove Element Call oidc requests

Signed-off-by: Timo K <toger5@hotmail.de>

* update comment

Signed-off-by: Timo K <toger5@hotmail.de>

* add tests for oidc element-call

Signed-off-by: Timo K <toger5@hotmail.de>

* fix ES lint

Signed-off-by: Timo K <toger5@hotmail.de>

---------

Signed-off-by: Timo K <toger5@hotmail.de>
2023-07-10 15:06:58 +00:00
Michael Telatynski cfd48b36aa
Enable strictPropertyInitialization (#11203) 2023-07-07 14:46:12 +01:00
Michael Telatynski 285847560b
Conform more of the codebase to strict typing (#11195) 2023-07-07 09:02:13 +01:00
Michael Telatynski 7b3a4e556a
Conform more of the codebase to `strictNullChecks` (#11100) 2023-06-22 14:39:36 +01:00
Richard van der Hoff 8570f16e31
Fix access to deprecated methods in `SetupEncryptionStore` (#11107)
* Fix access to deprecated methods in `SetupEncryptionStore`

* Updte tests

* more tests
2023-06-19 22:20:14 +00:00
Germain aca6a66f6a
Remove new room breadcrumbs (#11104)
* Deprecate new room breadcrumbs

* i18n
2023-06-19 08:18:46 +00:00
Michael Telatynski dd46db4817
Use MatrixClientPeg::safeGet in src/{stores,hooks,components/structures}/* (#10988) 2023-06-15 15:11:49 +01:00
Michael Telatynski 6b46d6e4f8
Add MatrixClientPeg::safeGet and use it in tests (#10985) 2023-06-05 18:12:23 +01:00
Michael Weimann b5727cb463
Include thread replies in message previews (#10631)
* Include thread replies to message previews

* Extend tests

* Fix type issue

* Use currentColor for thread icon

* Fix long room name overflow

* Update snapshots

* Fix preview

* Fix typing issue

* Fix type issues

* Tweak thread reply detection

* Extend tests

* Fix type issue

* Fix test
2023-06-01 07:53:48 +00:00
Michael Telatynski 30429df948
Eliminate the use of MatrixClientPeg in utils (#10910) 2023-05-23 16:24:12 +01:00
Oliver Sand a0c2676c38
Pass device id to widgets (#10209)
* Pass device id to widget

Implement the [comment in MSC 3819](https://github.com/matrix-org/matrix-spec-proposals/pull/3819#discussion_r1099833846) which requests passing a device id to a widget.

This is based on the previous work in the matrix-widget-api: https://github.com/matrix-org/matrix-widget-api/pull/78

Signed-off-by: Oliver Sand <oliver.sand@nordeck.net>

* Include all data that is shared in the permissions screen

* Update matrix-widget-api to version 1.4.0

Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>

* Fix type and test

Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>

---------

Signed-off-by: Oliver Sand <oliver.sand@nordeck.net>
Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>
Co-authored-by: Dominik Henneke <dominik.henneke@nordeck.net>
2023-05-23 13:35:31 +00:00
Michael Telatynski 6a3f59cc76
Make more of the codebase conform to strict types (#10857) 2023-05-16 14:25:43 +01:00
Michael Telatynski d53949e863
Ignore edits in message previews when they concern messages other than latest (#10868) 2023-05-15 18:27:46 +01:00
Michael Telatynski 9611cbf6c4
Fix people space notification badge not updating for new DM invites (#10849)
* Add regression test

* Fix people space notification state not updating for new DM invites
2023-05-12 10:49:41 +00:00
Kerry d103d2e3dd
set default activity ordering to natural for room list (#10820) 2023-05-08 20:58:53 +00:00
Michael Telatynski 4dd214506b
Move reaction message previews out of labs (#10601)
* Update reaction message previews to match designs

* Delabs reaction message previews

* tsc strict

* Iterate

* Add test

* Iterate
2023-05-05 07:45:14 +00:00
Kerry 44e0732144
Sort muted rooms to the bottom of their section of the room list (#10592)
* muted-to-the-bottom POC

* split muted rooms in natural algorithm

* add previous event to account data dispatch

* add muted to notification state

* sort muted rooms to the bottom

* only split muted rooms when sorting is RECENT

* remove debugs

* use RoomNotifState better

* add default notifications test util

* test getChangedOverrideRoomPushRules

* remove file

* test roomudpate in roomliststore

* unit test ImportanceAlgorithm

* strict fixes

* test recent x importance with muted rooms

* unit test NaturalAlgorithm

* test naturalalgorithm with muted rooms

* strict fixes

* comments

* add push rules test utility

* strict fixes

* more strict

* tidy comment

* document previousevent on account data dispatch event

* simplify (?) room mute rule utilities, comments

* remove debug
2023-05-05 01:53:26 +00:00
Kerry 6c36a2400d
Unit test list ordering algorithms (#10682)
* unit test ImportanceAlgorithm

* strict fixes

* unit test NaturalAlgorithm
2023-04-25 20:59:50 +00:00
Michael Telatynski 55d3548330
Conform more of the codebase to `strictNullChecks` (#10518
* Conform more of the codebase to `strictNullChecks`

* Iterate

* Fix tests
2023-04-06 11:10:14 +01:00
Michael Weimann df89d2ce28
Check profiles before starting a DM (#10472) 2023-04-05 13:13:51 +02:00
Michael Telatynski bc60a9b594
Conform more of the codebase to `strictNullChecks` (#10504
* Conform more of the codebase to `strictNullChecks`

* Iterate
2023-04-04 11:41:46 +01:00
RiotRobot 0475e7107f Merge branch 'master' into develop 2023-03-28 14:30:52 +01:00
Michael Weimann c30b2637c5 Changes for v3.69.0 2023-03-28 11:23:16 +01:00
Michael Weimann aec454dd6f
Add `UserProfilesStore`, `LruCache` and cache for user permalink profiles (#10425) 2023-03-27 10:07:43 +02:00
Dominik Henneke ef68650594
Implement MSC3973: Search users in the user directory with the Widget API (#10269)
* Add an action to search for users in the user directory according to MSC3973

Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>

* Fix linter errors

Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>

* Update the matrix-widget-api package to version 1.3.0

Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>

* Improve the test

Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>

---------

Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>
2023-03-21 11:38:41 +00:00
Michael Telatynski 127a3b667c
Conform more of the codebase to `strictNullChecks` (#10350
* Conform more of the codebase to `strictNullChecks`

* Iterate

* Generics ftw

* Iterate
2023-03-10 14:55:06 +00:00
Andy Balaam b646250c90
Support dynamic room predecessors in OwnBeaconStore (#10339)
* Support dynamic room predecessors in OwnBeaconStore

* Fix type of dynamicWatcherRef

* Mock a function missing from client
2023-03-10 09:15:54 +00:00
Andy Balaam f90bc40cfc
Support dynamic room predecessors in StopGapWidgetDriver (#10338) 2023-03-09 13:02:29 +00:00
Andy Balaam edd8865670
Support dynamic room predecessors in WidgetLayoutStore (#10326)
* Support dynamic room predecessors in WidgetLayoutStore

* Improve TS correctness in WidgetLayoutStore

* Test to cover onNotReady to quieten SonarCloud

---------

Co-authored-by: Janne Mareike Koschinski <janne@kuschku.de>
2023-03-09 10:18:23 +00:00
Andy Balaam acb7dd84ac
Support dynamic room predecessors in SpaceStore (#10332) 2023-03-09 09:31:02 +00:00
Michael Weimann 28abae60a6
Fix breadcrumb store test (#10330) 2023-03-08 16:10:23 +00:00
Andy Balaam 4ee57a36e0
Support dynamic room predecessors in BreadcrumbsStore (#10295)
* Tests for BreadcrumbsStore.meetsRoomRequirements

* Tests for appending rooms to BreadcrumbsStore

* Support dynamic room predecessors in BreadcrumbsStore
2023-03-08 15:13:32 +00:00
Andy Balaam b8d502be2e
Support dynamic room predecessors in RoomNotificationStateStore (#10297)
* Tests for RoomNotificationStateStore emitting events

* Support dynamic room predecessors in RoomNotificationStateStore

* Remove unused arguments from emit call.

UPDATE_STATUS_INDICATOR is used in:
* SpacePanel
* MatrixChat
* RoomHeaderButtons

but these arguments are not used in any of those places. Remove them so
when I refactor I don't have to make up values for them.

* Fix broken test (wrong expected args to emit)

UPDATE_STATUS_INDICATOR is used in:
* SpacePanel
* MatrixChat
* RoomHeaderButtons

but these arguments are not used in any of those places. Remove them so
when I refactor I don't have to make up values for them.

* Update the RoomNotificationStore whenever the predecessor labs flag changes

* Fix type errors

* Fix other tests that trigger our new watcher
2023-03-08 14:18:03 +00:00
Michael Telatynski 4b8bada24b
Apply `strictNullChecks` around the codebase (#10302
* Apply `strictNullChecks` around the codebase

* Iterate PR
2023-03-07 13:19:18 +00:00
Michael Weimann 5398db21ad
Add ESLint Jest (#10261) 2023-03-01 16:23:35 +01:00
Aaron Raimist d9d0ab3d98
Provide a more detailed error message than "No known servers" (#6048)
* Provide a more detailed error message than "No known servers"

Signed-off-by: Aaron Raimist <aaron@raim.ist>

* Fix PR since file was refactored

Signed-off-by: Aaron Raimist <aaron@raim.ist>

* Fix formatting

Signed-off-by: Aaron Raimist <aaron@raim.ist>

* lint

Signed-off-by: Aaron Raimist <aaron@raim.ist>

* Update src/stores/RoomViewStore.tsx

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>

* Add example identifiers and a more detailed explanation

Signed-off-by: Aaron Raimist <aaron@raim.ist>

* Lint

Signed-off-by: Aaron Raimist <aaron@raim.ist>

* Lint

Signed-off-by: Aaron Raimist <aaron@raim.ist>

* Revert back to original wording (except s/alias/address)

Alias was a better name imo but Element calls them addresses now so changed to be consistent.

Signed-off-by: Aaron Raimist <aaron@raim.ist>

* Prettier

Signed-off-by: Aaron Raimist <aaron@raim.ist>

* Fix ts error

* Add snapshot test

* Check the Modal props

* Add test case to reach quality gate

---------

Signed-off-by: Aaron Raimist <aaron@raim.ist>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
Co-authored-by: Florian Duros <florianduros@element.io>
2023-02-24 15:59:30 +00:00
maheichyk 7b77f76486
Widget permissions customizations using module api (#10121)
* Using module api to customize widget permissions

Signed-off-by: Mikhail Aheichyk <mikhail.aheichyk@nordeck.net>

* Revert type export and use ComponentProps instead.

Signed-off-by: Mikhail Aheichyk <mikhail.aheichyk@nordeck.net>

---------

Signed-off-by: Mikhail Aheichyk <mikhail.aheichyk@nordeck.net>
Co-authored-by: Mikhail Aheichyk <mikhail.aheichyk@nordeck.net>
2023-02-23 14:53:44 +00:00
Michael Weimann eb6278df1d
Do not prompt for a password when doing a „reset all“ after login (#10208) 2023-02-23 08:46:49 +01:00
Germain 8c22584f64
Remove threads labs flag and the ability to disable threads (#9878) 2023-02-20 14:46:07 +00:00
Michael Telatynski 4574c665ea
Conform more code to strict null checking (#10167)
* Conform more code to strict null checking

* Delint

* Iterate PR based on feedback
2023-02-16 17:21:44 +00:00
Michael Telatynski e8b92b308b
Conform more code to strict null checking (#10169)
* Conform more code to strict null checking

* delint

* Iterate

* delint

* Fix bad test
2023-02-16 09:38:44 +00:00
Michael Telatynski da7aa4055e
Conform more of the code base to strict null checking (#10147)
* Conform more of the code base to strict null checking

* More strict fixes

* More strict work

* Fix missing optional type

* Iterate
2023-02-13 17:01:43 +00:00
Michael Telatynski 61a63e47f4
Comply with noImplicitAny (#9940)
* Stash noImplicitAny work

* Stash

* Fix imports

* Iterate

* Fix tests

* Delint

* Fix tests
2023-02-13 11:39:16 +00:00
Germain 8fe5714673
Fix predecessor tests broken (#10123) 2023-02-09 12:46:17 +00:00
Andy Balaam c4a6cc8e65
Fix test failures: provide isIntialSyncComplete on mock client (#10122) 2023-02-09 11:36:02 +00:00
Andy Balaam add23e4d5d
Pass the dynamic predecessor feature flag when listing rooms (#10068) 2023-02-03 14:09:31 +00:00
Germain 6dd578e5a7
Devtools for stuck notifications (#10042) 2023-02-03 11:07:24 +01:00
Andy Balaam b7cd28bd29
Support MSC3946 in RoomListStore (#10054) 2023-02-03 09:14:44 +00:00
Andy Balaam b416e15cbd
Tests for RoomListStore's predecessor handling (#10046) 2023-02-02 13:22:30 +00:00
Germain 703587b8e9
Cleanup pre MSC3773 thread unread notif logic (#10023) 2023-01-31 16:59:24 +00:00
Clark Fischer 431afaafc6
Unify unread notification state determination (#9941)
* Add tests for unread notification facilities

Add some tests to guarantee some consistency in `useUnreadNotifications` and
`RoomNotificationState`.

Signed-off-by: Clark Fischer <clark.fischer@gmail.com>

* Add RoomNotifs#determineUnreadState

Intended as a singular replacement for the divergent implementations before.

Signed-off-by: Clark Fischer <clark.fischer@gmail.com>

* Unify room unread state determination

Have both the class-based facility and the hook use the new unified logic in
`RoomNotifs#determineUnreadState`.

Addresses https://github.com/vector-im/element-web/issues/24229

Signed-off-by: Clark Fischer <clark.fischer@gmail.com>

---------

Signed-off-by: Clark Fischer <clark.fischer@gmail.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-01-31 09:58:17 +00:00
Germain 3e2bf5640e
Update to supportsThreads (#9907) 2023-01-30 12:20:11 +00:00
Kegan Dougal 676c65b55c More tests 2023-01-20 13:27:03 +00:00
Kegan Dougal 744abd935e Linting 2023-01-20 12:46:51 +00:00
Kegan Dougal 6a75054e1a More tests 2023-01-20 12:38:58 +00:00
Kegan Dougal 769fd4a786 TS errors 2023-01-20 10:32:53 +00:00
Kegan Dougal 4db1928bcd Prettier and strict 2023-01-19 12:49:20 +00:00
Kegan Dougal 7c2dd7224f unbreak jest tests 2023-01-19 11:15:08 +00:00
Michael Weimann 6d354e3e10
Add test coverage (#9928) 2023-01-18 15:49:34 +01:00
Michael Telatynski 0c30b577e0
Fix reply action in message context menu notif & file panels (#9895) 2023-01-12 14:52:52 +00:00
Michael Weimann 0f7a2ce6df
Confirm listen to a broadcast while recording (#9831) 2023-01-02 12:21:33 +00:00
Michael Weimann 91e078d96b
Show room broadcast when ending a recording (#9841) 2023-01-02 11:05:51 +00:00
Michael Weimann 5912c7a637
Replace broadcast instance with SDKContext (#9824) 2022-12-27 08:39:26 +01:00
Kerry 5b9496aad8
test toastStore (#9823) 2022-12-23 09:35:41 +00:00
Germain 8541e1c4b5
Change room list sorting to activity and unread first by default (#9773) 2022-12-19 10:42:58 +00:00
Michael Weimann 35a187a231
Handle starting a call while listen to a broadcast (#9764) 2022-12-19 08:44:19 +00:00
Michael Weimann 51554399fb
Implement broadcast message preview (#9762) 2022-12-16 11:01:16 +00:00
Germain 2d2755d145
🧵 Enable threads by default (#9736)
* Delabs threads

* remove threads reload when labs is toggled

* Fix ts strict

* fix rebase mistake

* remove .only

* fix pr comments

* re-introduce backwards compat

* Fix export test

* Fix SearchREsultTile test

* strict ts
2022-12-13 15:09:15 +00:00
Michael Weimann 526645c791
Apply prettier formatting 2022-12-12 12:24:14 +01:00
Germain 3a501003e2
Add setting to hide bold notifications (#9705) 2022-12-06 09:59:17 +00:00
Robin d2109de4ca
Remove unused Element Call capabilities (#9653)
As of 44e22e268420bd4b24a110840e2edaca46653407 in the Element Call repo, Element Call widgets no longer request the capability to start calls.
2022-11-30 13:54:18 +00:00
Michael Weimann e38c59c535
Pause voice broadcast on calls (#9623) 2022-11-28 11:43:59 +00:00
kegsay acdcda78f0
sliding sync: add lazy-loading member support (#9530)
* sliding sync: add lazy-loading member support

Also swap to `$ME` constants when referring to our own member event.

* Hook into existing LL logic when showing the MemberList

* Linting

* Use consts in js sdk not react sdk

* Add jest tests

* linting

* Store the room in the test

* Fix up getRoom impl

* Add MemberListStore

* Use the right context in MemberList tests

* Fix RightPanel-test

* Always return members even if we lazy load

* Add MemberListStore tests

* Additional tests
2022-11-18 19:05:00 +00:00
Michael Weimann fca6ff271c
Extract requestMediaPermissions (#9568) 2022-11-11 10:38:51 +01:00
Michael Weimann abec724387
Add voice broadcast pre-recoding PiP (#9548) 2022-11-10 09:38:48 +01:00
Michael Telatynski 04bc8fb71c
Optimise Jest run in CI (#9542) 2022-11-04 10:48:08 +00:00
Germain 07003a5bc1
Make thread replies trigger a room list re-ordering (#9510) 2022-10-27 13:50:05 +01:00
kegsay 0453b264e3
Sliding Sync: improve sort order, show subspace rooms, better tombstoned room handling (#9484)
* Add support for include_old_rooms and by_notification_level

* Include subspaces when apply spaces filter

* Remove stray is_tombstoned

* tests: add SlidingRoomListStore jest tests; update proxy version in cypress

* Add additional tests

* Additional tests

* Linting

* Update test/stores/room-list/SlidingRoomListStore-test.ts

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-10-26 14:04:03 +01:00
Michael Telatynski b7ff56a726
Add type assertions where we know an event is a room event (has room_id) (#9498) 2022-10-25 18:57:36 +00:00
Robin e4c44dc282
Auto-approve rageshake event capabilities for virtual Element Call widgets (#9492) 2022-10-24 13:49:54 -04:00
Michael Telatynski eafc2d23a7
Ensure spaces in the spotlight dialog have rounded square avatars (#9480) 2022-10-24 08:58:36 +00:00
Germain 9eb4f8d723
Add thread notification with server assistance (MSC3773) (#9400)
Co-authored-by: Janne Mareike Koschinski <janne@kuschku.de>
2022-10-24 07:50:21 +01:00
kegsay 17c3fb89c1
Store refactor: convert WidgetPermissionStore (#9458)
* Store refactor: convert WidgetPermissionStore

Add Jest tests as well.

* More tests

* Review comments
2022-10-19 22:00:53 +02:00
kegsay 13fbd096b0
Stores refactor: convert TypingStore; rename TestStores to TestSdkContext (#9454) 2022-10-19 14:14:14 +01:00
kegsay e946674df3
Store refactor: use non-global stores in components (#9293)
* Add Stores and StoresContext and use it in MatrixChat and RoomView

Added a new kind of class:
- Add God object `Stores` which will hold refs to all known stores and the `MatrixClient`. This object is NOT a singleton.
- Add `StoresContext` to hold onto a ref of `Stores` for use inside components.

`StoresContext` is created via:
- Create `Stores` in `MatrixChat`, assigning the `MatrixClient` when we have one set. Currently sets the RVS to `RoomViewStore.instance`.
- Wrap `MatrixChat`s `render()` function in a `StoresContext.Provider` so it can be used anywhere.

`StoresContext` is currently only used in `RoomView` via the following changes:
- Remove the HOC, which redundantly set `mxClient` as a prop. We don't need this as `RoomView` was using the client from `this.context`.
- Change the type of context accepted from `MatrixClientContext` to `StoresContext`.
- Modify alllll the places where `this.context` is used to interact with the client and suffix `.client`.
- Modify places where we use `RoomViewStore.instance` and replace them with `this.context.roomViewStore`.

This makes `RoomView` use a non-global instance of RVS.

* Linting

* SDKContext and make client an optional constructor arg

* Move SDKContext to /src/contexts

* Inject all RVS deps

* Linting

* Remove reset calls; deep copy the INITIAL_STATE to avoid test pollution

* DI singletons used in RoomView; DI them in RoomView-test too

* Initial RoomViewStore.instance after all files are imported to avoid cyclical deps

* Lazily init stores to allow for circular dependencies

Rather than stores accepting a list of other stores in their constructors,
which doesn't work when A needs B and B needs A, make new-style stores simply
accept Stores. When a store needs another store, they access it via `Stores`
which then lazily constructs that store if it needs it. This breaks the
circular dependency at constructor time, without needing to introduce
wiring diagrams or any complex DI framework.

* Delete RoomViewStore.instance

Replaced with Stores.instance.roomViewStore

* Linting

* Move OverridableStores to test/TestStores

* Rejig how eager stores get made; don't automatically do it else tests break

* Linting

* Linting and review comments

* Fix new code to use Stores.instance

* s/Stores/SdkContextClass/g

* Update docs

* Remove unused imports

* Update src/stores/RoomViewStore.tsx

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>

* Remove empty c'tor to make sonar happy

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-10-19 13:07:03 +01:00
Michael Weimann 0630a9c448
End voice broadcast recording on any call (#9425) 2022-10-16 11:35:25 +00:00
Dominik Henneke 7ddc0b78b3
Correct the dir parameter of MSC3715 (#9391) 2022-10-12 16:56:52 +02:00
Robin 06dbea6255
New group call experience: Room header and PiP designs (#9351)
* Update our cancel icon

The cancel icon we're using in the app has drifted out of sync with the ones used in our designs. We also had two identical-looking icons, so this consolidates them into one.

I've simultaneously updated our chevron icons, since in the case of the 'jump to unread' timeline button, it became clear that the weight of the new close icon did not match the thinner chevron.

* Don't squish bottom/top-aligned tooltips near the edge of the screen

* Close the timeline panel when returning to the fullscreen timeline view

* Add layout switching capabilities to ElementCall

* Bring the room header in line with the group call designs

* Bring the PiP header in line with the group call designs

* Fix lints

* Clarify tooltip CSS calculations

* Test PipView

* Expand RoomHeader test coverage

* Test PipView more
2022-10-07 02:27:28 +00:00
Dominik Henneke 99488b84ec
Remove unspecced `original_event` field from the `readEventRelations` response (#9349)
Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>

Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>
2022-10-04 17:54:26 +00:00
Michael Weimann c182c1c706
Generalise VoiceRecording (#9304) 2022-09-21 18:46:28 +02:00
kegsay 06c4ba32cd
Store refactor: make it easier to test stores (#9290)
* refactor: convert RoomViewStore from flux Store to standard EventEmitter

Parts of a series of experimental changes to improve the design of stores.

* Use a gen5 store for RoomViewStore for now due to lock handling

* Revert "Use a gen5 store for RoomViewStore for now due to lock handling"

This reverts commit 1076af071d997d87b8ae0b0dcddfd1ae428665af.

* Add untilEmission and tweak untilDispatch; use it in RoomViewStore

* Add more RVS tests; remove custom room ID listener code and use EventEmitter

* Better comments

* Null guard `dis` as tests mock out `defaultDispatcher`

* Additional tests
2022-09-20 15:32:39 +00:00
Robin cb735c9439
Element Call video rooms (#9267)
* Add an element_call_url config option

* Add a labs flag for Element Call video rooms

* Add Element Call as another video rooms backend

* Consolidate event power level defaults

* Remember to clean up participantsExpirationTimer

* Fix a code smell

* Test the clean method

* Fix some strict mode errors

* Test that clean still works when there are no state events

* Test auto-approval of Element Call widget capabilities

* Deduplicate some code to placate SonarCloud

* Fix more strict mode errors

* Test that calls disconnect when leaving the room

* Test the get methods of JitsiCall and ElementCall more

* Test Call.ts even more

* Test creation of Element video rooms

* Test that createRoom works for non-video-rooms

* Test Call's get method rather than the methods of derived classes

* Ensure that the clean method is able to preserve devices

* Remove duplicate clean method

* Fix lints

* Fix some strict mode errors in RoomPreviewCard

* Test RoomPreviewCard changes

* Quick and dirty hotfix for the community testing session

* Revert "Quick and dirty hotfix for the community testing session"

This reverts commit 37056514fbc040aaf1bff2539da770a1c8ba72a2.

* Fix the event schema for org.matrix.msc3401.call.member devices

* Remove org.matrix.call_duplicate_session from Element Call capabilities

It's no longer used by Element Call when running as a widget.

* Replace element_call_url with a map

* Make PiPs work for virtual widgets

* Auto-approve room timeline capability

Because Element Call uses this now

* Create a reusable isVideoRoom util
2022-09-16 11:12:27 -04:00
kegsay a3133fa907
bugfix: fix in-reply-to previews not disappearing when swapping rooms (#9278)
* bugfix: fix in-reply-to previews not disappearing when swapping rooms

This was caused by the fix for another issue:
  - https://github.com/vector-im/element-web/issues/21462

Both bugs are now fixed with cypress regression tests.

* Linting

* Ensure the reply-to reappears when you click back

* Add jest test for replyTo in RVS

* Linting
2022-09-15 12:09:16 +00:00
Dominik Henneke 0c22b15bba
Implement MSC3869: Read event relations with the Widget API (#9210)
* Add an action to read relations according to MSC3869

Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>

* Apply review comments

Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>

* Fix test

Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>

* Update matrix-widget-api to 1.1.1

Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>

Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>
2022-09-14 10:18:51 -04:00
kegsay a9f04514fb
bugfix: fix a sliding sync bug which could cause rooms to loop (#9268)
* bugfix: fix a sliding sync bug which could cause rooms to loop

With a Jest regression test.

* Linting
2022-09-12 10:55:46 +00:00
kegsay a215027c6b
Implement MSC3575: Sliding Sync (#8328)
* Add labs flag for sliding sync; add sliding_sync_proxy_url to config.json

* Disable the labs toggle if sliding_sync_proxy_url is not set

* Do validation checks on the sliding sync proxy URL before enabling it in Labs

* Enable sliding sync and add SlidingSyncManager

* Get room subscriptions working

* Hijack renderSublists in sliding sync mode

* Add support for sorting alphabetically/recency and room name filters

* Filter out tombstoned rooms; start adding show more logic

list ranges update but the UI doesn't

* update the UI when the list is updated

* bugfix: make sure the list sorts numerically

* Get invites transitioning correctly

* Force enable sliding sync and labs for now

* Linting

* Disable spotlight search

* Initial cypress plugins for Sliding Sync Proxy

* Use --rm when running Synapse in Docker for Cypress tests

* Update src/MatrixClientPeg.ts

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Update src/components/views/rooms/RoomSublist.tsx

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Update src/settings/controllers/SlidingSyncController.ts

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Update src/components/views/rooms/RoomSublist.tsx

Co-authored-by: Travis Ralston <travisr@matrix.org>

* WIP add room searching to spotlight search

* Only read sliding sync results when there is a result, else use the local cache

* Use feature_sliding_sync not slidingSync

* Some review comments

* More review comments

* Use RoomViewStore to set room subscriptions

* Comment why any

* Update src/components/views/rooms/RoomSublist.tsx

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix cypress docker abstraction

* Iterate sliding sync proxy support

* Stash mostly functional test

* Update sliding sync proxy image

* i18n

* Add support for spaces; use list ID -> index mappings

- Mappings are more reusable and easier to understand than
  racing for index positions.
- Register for all spaces immediately on startup.

* When the active space is updated, update the list registration

* Set spaces filter in the correct place

* Skeleton placeholder whilst loading the space

* Filter out spaces from the room list

* Use the new txn_id promises

* Ensure we actually resolve list registrations

* Fix matrix-org/sliding-sync#30: don't show tombstoned search results

* Remove unused imports

* Add SYNCV3_SECRET to proxy to ensure it starts up; correct aliases for SS test

* Add another basic sliding sync e2e test

* Unbreak netlify

* Add more logging for debugging duplicate rooms

* If sliding sync is enabled, always use the rooms result even if it's empty

* Drop-in copy of RoomListStore for sliding sync

* Remove conditionals from RoomListStore - we have SlidingRoomListStore now

* WIP SlidingRoomListStore

* Add most sliding sync logic to SlidingRoomListStore

Still lots of logic in RoomSublist. Broken things:
 - Join count is wrong completely.
 - No skeleton placeholder when switching spaces.

* Migrate joined count to SS RLS

* Reinstate the skeleton UI when the list is loading

* linting

* Add support for sticky rooms based on the currently active room

* Add a bunch of passing SS E2E tests; some WIP

* Unbreak build from git merge

* Suppress unread indicators in sliding sync mode

* Add regression test for https://github.com/matrix-org/sliding-sync/issues/28

* Add invite test flows; show the invite list

The refactor to SS RLS removed the invite list entirely.

* Remove show more click as it wasn't the bug

* Linting and i18n

* only enable SS by default on netlify

* Jest fixes; merge conflict fixes; remove debug logging; use right sort enum values

* Actually fix jest tests

* Add support for favourites and low priority

* Bump sliding sync version

* Update sliding sync labs to be user configurable

* delint

* To disable SS or change proxy URL the user has to log out

* Review comments

* Linting

* Apply suggestions from code review

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Update src/stores/room-list/SlidingRoomListStore.ts

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Review comments

* Add issue link for TODO markers

* Linting

* Apply suggestions from code review

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>

* More review comments

* More review comments

* stricter types

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
Co-authored-by: Travis Ralston <travisr@matrix.org>
2022-09-07 15:42:39 +00:00