Commit Graph

184 Commits (605322d9ea74ebf736619f0e3e59c8626b2d1876)

Author SHA1 Message Date
Robin 1f64835fab
Update video rooms to new design specs (#8207)
* Remove radio component

* "Voice room" → "video room"

* Remove interactivity from video room tiles

* Update connection state when joining via widget

* Simplify room header buttons for video rooms

* Split out video room creation into a separate menu option

* Simplify room options for video rooms

* Update video room tile layout

* Tell the Jitsi widget whether it's a video channel

* Update tests

* "Voice" → "video" in more places

* Fix tests

* Re-add frame to immersive Jitsi widgets

* Comment ack

* Make updateDevices more readable

* Type FacePile
2022-04-01 14:36:10 +00:00
Travis Ralston 97efdf7094 Merge branch 'develop' into travis/remove-skinning 2022-03-31 19:25:43 -06:00
Kerry 1175226bcb
Live location sharing - display wire error in room (#8198)
* expose wire errors in more useful way

* add wire error state to room live share warning bar

Signed-off-by: Kerry Archibald <kerrya@element.io>

* stylelint

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add types to getLabel helper

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-03-31 10:57:12 +02:00
Kerry d09205122d
Live location sharing - Stop publishing location to beacons with consecutive errors (#8194)
* add error state after consecutive errors

Signed-off-by: Kerry Archibald <kerrya@element.io>

* polish

Signed-off-by: Kerry Archibald <kerrya@element.io>

* comment

Signed-off-by: Kerry Archibald <kerrya@element.io>

* remove debug

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-03-30 14:01:44 +00:00
Kerry 2adc972eec
Live location sharing - stop sharing to beacons in rooms you left (#8187)
* remove beacons on membership changes

* add addMembershipToMockedRoom test util

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test remove beacons on membership changes

Signed-off-by: Kerry Archibald <kerrya@element.io>

* removelistener

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-03-29 18:18:34 +02:00
Travis Ralston d5ed1eb66e Step 8.3: Convert `RoomViewStore` to a more modern singleton for imports 2022-03-28 14:02:31 -06:00
Travis Ralston a987ead7d2 Step 8.1: Remove skinning setup from all tests 2022-03-28 14:02:31 -06:00
Kerry d2b97e251e
Live location sharing - handle geolocation errors (#8179)
* display live share warning only when geolocation is happening

Signed-off-by: Kerry Archibald <kerrya@element.io>

* kill beacons when geolocation is unavailable or permissions denied

Signed-off-by: Kerry Archibald <kerrya@element.io>

* polish and comments

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-03-28 18:46:39 +02:00
Robin 8baf06c3ff
Show voice room participants when not connected (#8136)
* Add utility for getting connected voice participants

* Allow voice room members to send connected device state

* Update connected devices when connecting/disconnecting voice

* Show voice room participants in room tile when not connected

* Update voice room tests

* Add null types and guards
2022-03-28 14:12:09 +01:00
Kerry e9b2aea97b
Live location sharing - send geolocation beacon events - happy path (#8127)
* geolocation utilities

Signed-off-by: Kerry Archibald <kerrya@element.io>

* messy send events

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add geolocation services

Signed-off-by: Kerry Archibald <kerrya@element.io>

* geolocation tests

Signed-off-by: Kerry Archibald <kerrya@element.io>

* debounce with backup emit every 30s

Signed-off-by: Kerry Archibald <kerrya@element.io>

* import reorder

Signed-off-by: Kerry Archibald <kerrya@element.io>

* some more working tests

Signed-off-by: Kerry Archibald <kerrya@element.io>

* complicated timeout testing

Signed-off-by: Kerry Archibald <kerrya@element.io>

* publish first location immediately

Signed-off-by: Kerry Archibald <kerrya@element.io>

* move advanceDateAndTime to utils, tidy

Signed-off-by: Kerry Archibald <kerrya@element.io>

* typos

Signed-off-by: Kerry Archibald <kerrya@element.io>

* types and lint

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-03-28 10:48:38 +00:00
Kerry b04d31b5be
Live location sharing: live share warning in room (#8100)
* add duration dropdown to live location picker

Signed-off-by: Kerry Archibald <kerrya@element.io>

* tidy comments

Signed-off-by: Kerry Archibald <kerrya@element.io>

* setup component

Signed-off-by: Kerry Archibald <kerrya@element.io>

* replace references to beaconInfoId with beacon.identifier

Signed-off-by: Kerry Archibald <kerrya@element.io>

* icon

Signed-off-by: Kerry Archibald <kerrya@element.io>

* component for styled live beacon icon

Signed-off-by: Kerry Archibald <kerrya@element.io>

* emit liveness change whenever livebeaconIds changes

Signed-off-by: Kerry Archibald <kerrya@element.io>

* Handle multiple live beacons in room share warning, test

Signed-off-by: Kerry Archibald <kerrya@element.io>

* un xdescribe beaconstore tests

Signed-off-by: Kerry Archibald <kerrya@element.io>

* missed copyrights

Signed-off-by: Kerry Archibald <kerrya@element.io>

* i18n

Signed-off-by: Kerry Archibald <kerrya@element.io>

* tidy

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-03-22 13:57:12 +00:00
Kerry a80e55d38d
add helpers for beacon duration calculations (#8101)
* add helpers for beacon duration calculations

Signed-off-by: Kerry Archibald <kerrya@element.io>

* makeBeaconInfoEvent timestsamp prop

Signed-off-by: Kerry Archibald <kerrya@element.io>

* ad copyright

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-03-22 10:46:47 +00:00
Kerry ab934a2a08
kill beacons on expiry (#8075)
Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-03-18 14:38:41 +01:00
Kerry bb6ae3fdbc
Live beacons: track users live beacons (#8061)
* add simple live share warning

Signed-off-by: Kerry Archibald <kerrya@element.io>

* rough first cut of OwnBeaconStore

Signed-off-by: Kerry Archibald <kerrya@element.io>

* working (?) has live beacons status

Signed-off-by: Kerry Archibald <kerrya@element.io>

* lint

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add left panel share warning

Signed-off-by: Kerry Archibald <kerrya@element.io>

* setup for tests

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test ownbeaconstore

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add copyright

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add copyright

Signed-off-by: Kerry Archibald <kerrya@element.io>

* remove warning banner

Signed-off-by: Kerry Archibald <kerrya@element.io>

* fix test

Signed-off-by: Kerry Archibald <kerrya@element.io>

* fix tests for weird asyncstore closure issues

Signed-off-by: Kerry Archibald <kerrya@element.io>

* fix OwnBeaconStore more...

Signed-off-by: Kerry Archibald <kerrya@element.io>

* revert loose change to LeftPanel

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-03-16 17:35:09 +01:00
Kerry df6c53ff41
include /test/stores in tsconfig (#8026)
* fix space store emits

Signed-off-by: Kerry Archibald <kerrya@element.io>

* fix spacestore-test imports

* fix export-test.tsx

Signed-off-by: Kerry Archibald <kerrya@element.io>

* include test/utils to tsconfig

Signed-off-by: Kerry Archibald <kerrya@element.io>

* fix types in SpaceStore-test

Signed-off-by: Kerry Archibald <kerrya@element.io>

* fix ts issues in rest of test/stores

Signed-off-by: Kerry Archibald <kerrya@element.io>

* include test/stores in tsconfig

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-03-11 17:03:33 +01:00
Michael Telatynski b8f37a46f0
Fix bug with some space selections not being applied (#7971) 2022-03-03 21:42:18 +00:00
Michael Telatynski f25e6813bb
Mandate use of js-sdk/src/matrix import over js-sdk/src (#7933) 2022-03-01 20:42:05 +00:00
Michael Telatynski 08c47ac473
Fix changing space sometimes bouncing to the wrong space (#7910) 2022-03-01 08:33:29 +00:00
Kerry 130bd6aa63
manage voicerecording state when deleting or sending a voice message (#7896)
* manage voicerecording state when deleting or sending a voice message

Signed-off-by: Kerry Archibald <kerrya@element.io>

* comment

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-02-24 18:54:06 +01:00
Kerry 5e76d988ca
convert test-utils to typescript (#7877)
* move js utils into directory

Signed-off-by: Kerry Archibald <kerrya@element.io>

* typescripterize js test-utils

Signed-off-by: Kerry Archibald <kerrya@element.io>

* move test utils to directory

Signed-off-by: Kerry Archibald <kerrya@element.io>

* move remaining mock functions to directory

Signed-off-by: Kerry Archibald <kerrya@element.io>

* update imports

Signed-off-by: Kerry Archibald <kerrya@element.io>

* missed copyright

Signed-off-by: Kerry Archibald <kerrya@element.io>

* type wait for update

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-02-23 11:21:11 +00:00
Kerry 5b8d440406
type Actions (#7862)
* type ViewHomPage action

Signed-off-by: Kerry Archibald <kerrya@element.io>

* type spacestore actions

Signed-off-by: Kerry Archibald <kerrya@element.io>

* lint

Signed-off-by: Kerry Archibald <kerrya@element.io>

* add action types

Signed-off-by: Kerry Archibald <kerrya@element.io>

* use new action types in stores

Signed-off-by: Kerry Archibald <kerrya@element.io>

* remove debug change

Signed-off-by: Kerry Archibald <kerrya@element.io>

* stricter keyboard shortcut types

Signed-off-by: Kerry Archibald <kerrya@element.io>

* action comments

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-02-22 10:04:27 +00:00
Kerry 08a0c6f86c
Don't aggregate rooms and users in SpaceStore (#7723)
* add direct child maps

* track rooms, users and space children in flat hierarchy in spacestore

Signed-off-by: Kerry Archibald <kerrya@element.io>

* update spacefiltercondition to use new spacestore

* remove unused code

Signed-off-by: Kerry Archibald <kerrya@element.io>

* typos

Signed-off-by: Kerry Archibald <kerrya@element.io>

* only build flattened rooms set once per space when updating notifs

* copyright

Signed-off-by: Kerry Archibald <kerrya@element.io>

* remove unnecessary currying

Signed-off-by: Kerry Archibald <kerrya@element.io>

* rename SpaceStore spaceFilteredRooms => roomsIdsBySpace, spaceFilteredUsers => userIdsBySpace

Signed-off-by: Kerry Archibald <kerrya@element.io>

* cache aggregates rooms and users by space

Signed-off-by: Kerry Archibald <kerrya@element.io>

* emit events recursively up parent spaces on changes

Signed-off-by: Kerry Archibald <kerrya@element.io>

* exclude meta spaces from aggregate cache

Signed-off-by: Kerry Archibald <kerrya@element.io>

* stray log

* fix emit on member update

Signed-off-by: Kerry Archibald <kerrya@element.io>

* call order

Signed-off-by: Kerry Archibald <kerrya@element.io>

* extend existing getKnownParents fn

Signed-off-by: Kerry Archibald <kerrya@element.io>

* refine types and comments

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-02-17 21:24:05 +01:00
Michael Telatynski 658590e5bc
More posthog tracking around joining rooms and room search (#7807) 2022-02-17 18:03:27 +00:00
David Baker 3be74d38d6
Fix src/lib import (#7825) 2022-02-17 10:06:19 +00:00
David Baker 01b00bf3fe
Add test for RoomNotificationState (#7820)
Regression test for https://github.com/vector-im/element-web/issues/20859
2022-02-17 09:18:37 +00:00
J. Ryan Stinnett 0dc1355441
Fix right panel data flow (#7811) 2022-02-16 11:19:28 +00:00
Michael Telatynski cfa6e266cd
Wire up new fields on the ViewRoom posthog event and more interactions (#7787) 2022-02-14 19:31:13 +00:00
Kerry f7a3027e50
runAllTimers -> runOnlyPendingTimers in SpaceStore-test (#7634)
* runAllTimers -> runOnlyPendingTimers in SpaceStore-test

Signed-off-by: Kerry Archibald <kerrya@element.io>

* runAllTimers for switch to first valid space when selected metaspace is disabled

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-01-26 11:38:07 +01:00
Michael Telatynski 8ddd677c35
De-labs Metaspaces (#7613) 2022-01-25 12:33:17 +00:00
Travis Ralston 65987e6b72
Move all polls processing to events-sdk & prep for stable polls (#7517)
* Move all polls processing to events-sdk

This makes polls support the full range of extensible events (both parsing and generation).

* Appease the linter

* Fix & update tests

* Update events-sdk for polls bugfix

* Update events-sdk for typechecking

* Add missing type cast

* Update per review
2022-01-17 10:06:30 -07:00
Michael Telatynski ec6c1b8272
Fix RoomViewStore forgetting some details of a view room call (#7512) 2022-01-12 13:12:28 -07:00
J. Ryan Stinnett 6199c337ea
Fix spacing errors (#7484) 2022-01-10 12:57:20 +00:00
Michael Telatynski 39c4b78371
Space preferences for whether or not you see DMs in a Space (#7250) 2021-12-17 09:26:32 +00:00
Andy Balaam 43839adec0
Use constants from js-sdk in polls code (#7381) 2021-12-15 14:26:26 +00:00
Andy Balaam fc96af5014
Show poll question in message preview (#7320) 2021-12-10 12:17:26 +00:00
Aaron Raimist 2e8a93834b Auto fix
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2021-12-09 09:10:23 +00:00
Michael Telatynski 3b9e39ffca
When accepting DM from People metaspace don't switch to Home (#7272) 2021-12-03 11:17:51 +00:00
Renan Cleyson ae0dba4e87
Add `view_room` to `Action` enum (#7203)
* Add ViewRoom action to Action enum

Signed-off-by: Renan <renancleyson.f@gmail.com>

* Change view_room occurrences to Action.ViewRoom

Signed-off-by: Renan <renancleyson.f@gmail.com>

* Add missing Action import
2021-11-25 21:49:43 +01:00
Timo 556cfc7ed8
Add maximise widget functionality (#7098)
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2021-11-16 15:43:18 +01:00
Michael Telatynski 5ad3261cb2
Implement more meta-spaces (#7077) 2021-11-11 13:07:41 +00:00
Michael Telatynski be0fa6da7b
Fix removing a room from a Space and interaction with `m.space.parent` (#6944) 2021-10-25 14:06:00 +01:00
Michael Telatynski 82ad85a974 Mock usage of getRoomUpgradeHistory in SpaceStore tests 2021-10-08 10:30:46 +01:00
Michael Telatynski 911ca07da4 Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/fix/18088 2021-09-08 15:28:58 +01:00
Michael Telatynski c915288044 Respect m.space.parent relations if they hold valid permissions 2021-09-06 14:34:06 +01:00
Michael Telatynski a688e5b8b3 Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/fix/18088
 Conflicts:
	src/components/structures/LoggedInView.tsx
	src/stores/SpaceStore.tsx
2021-09-06 11:41:09 +01:00
Michael Telatynski bbd420096b don't bother awaiting SpaceStore::setActiveSpace as it is no longer async 2021-08-31 17:03:43 +01:00
Michael Telatynski da110855f0 delint and remove groups-specific tests and setups 2021-08-11 15:36:35 +01:00
Michael Telatynski 3c436c9617 update setting naming to match style 2021-07-30 12:20:02 +01:00
Michael Telatynski 776435f620 Switch all-rooms toggle for spaces to non-feature settings key 2021-07-27 21:17:24 +01:00
Michael Telatynski 0a9d3302ba Fix home vs all rooms requiring app reload and change default to `home`
Consolidate ALL_ROOMS and HOME_SPACE storage
Fix behaviour when recalled room is no longer part of the target space
Improve tests
2021-07-27 21:11:47 +01:00
Michael Telatynski ec173e74e6 Test & Refactor SpaceWatcher to allow all rooms/home change without needing reload 2021-07-27 20:15:40 +01:00
Michael Telatynski 755007cbee Conclude labs flags and write more tests 2021-07-27 14:39:14 +01:00
Michael Telatynski de42a00ca4 Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/fix/17686
 Conflicts:
	src/components/views/avatars/RoomAvatar.tsx
	test/stores/SpaceStore-test.ts
	test/test-utils.js
2021-07-19 16:47:31 +01:00
Michael Telatynski 316b21408d Fix tests 2021-07-15 10:59:52 +01:00
Michael Telatynski 04c923bd75 fix tests by including client field on the Room stub and stubbing getJoinedMemberCount 2021-07-06 11:35:56 +01:00
J. Ryan Stinnett ae0a8b8da4 Auto-fix lint errors 2021-06-29 13:11:58 +01:00
Michael Telatynski 9e20e5dfc4 mock new settings in tests 2021-06-16 09:14:07 +01:00
David Baker 31604c13c0 Lint the typescript tests
Turns out we hadn't told eslint to lint .ts in tests/

Also fix all the lint errors, including removing a use of assert that
had randomly crept in.
2021-06-04 16:52:50 +01:00
Michael Telatynski 90fa738734 Fix that one final pesky test 2021-05-07 11:22:10 +01:00
Michael Telatynski f0e61e6286 short circuit automatic switch to related space behaviour and fix tests 2021-05-07 11:08:18 +01:00
Michael Telatynski 9d9dce7a91 update orphan room behaviour test to expect new home space behaviour 2021-05-07 10:48:55 +01:00
Michael Telatynski 203425c8de Test and fix space store wrongly treating room invites as space invites 2021-04-26 08:37:45 +01:00
Michael Telatynski 47c12a7d23 Add tests for rooms moving around the SpaceStore 2021-04-25 09:24:00 +01:00
Michael Telatynski 98851f8e64 Text space switching behaviour and fix invalid space edge case 2021-04-24 11:32:55 +01:00
Michael Telatynski f85d3643ee Test and fix subspace invite receipt behaviour 2021-04-24 11:31:52 +01:00
Michael Telatynski dd2a1d063a Write tests for spaces context switching behavious 2021-04-23 16:14:55 +01:00
Michael Telatynski 4446022327 Add automatic space switching tests 2021-04-23 14:45:22 +01:00
Michael Telatynski c35678c64a Add yet more tests 2021-04-23 13:40:16 +01:00
Michael Telatynski a3ca48b4da Write more space store tests 2021-04-23 12:19:38 +01:00
Michael Telatynski a38419defb extend space tests some more 2021-04-23 11:20:26 +01:00
Michael Telatynski 1075756929 add more tests 2021-04-23 09:55:30 +01:00
Michael Telatynski fba7465ad4 Initial SpaceStore tests work 2021-04-22 14:45:13 +01:00
Travis Ralston 54f3288dea Fix imports for tests
This doesn't fix the fact that someone called it "peg".
2020-01-09 17:23:27 -07:00
Michael Telatynski 802092bf9a All tests passing locally. We no longer need Chrome in buildkite 2019-12-17 11:53:18 +00:00
Michael Telatynski e6d8487302 Fix more tests 2019-12-17 11:47:01 +00:00
Michael Telatynski 0041dae664 26 test failures to go :D 2019-12-16 11:55:01 +00:00
Michael Telatynski 6ad31fe023 30 test failures to go :D 2019-12-16 11:12:48 +00:00
Michael Telatynski 18f81d80db Initial jest stuff. Blocked on Babel 7 2019-12-13 13:43:48 +00:00
Michael Telatynski d4d51dc61f Rip out the remainder of Bluebird 2019-11-18 10:03:05 +00:00
Richard van der Hoff 0254d2b3a2 q(...) -> Promise.resolve
```
find src test -name '*.js' | xargs perl -i -pe 's/\b[qQ]\(/Promise.resolve(/'
```
2017-07-12 18:05:08 +01:00
Richard van der Hoff a06bd84213 replace imports of `q` with bluebird
update `package.json`

```
find src test -name '*.js' |
   xargs perl -i -pe 'if (/require\(.[qQ].\)/) { $_ = "import Promise from '\''bluebird'\'';\n"; }'

find src test -name '*.js' |
   xargs perl -i -pe 'if (/import [qQ]/) { $_ = "import Promise from '\''bluebird'\'';\n"; }'
```
2017-07-12 18:05:08 +01:00
Luke Barnard 3218cae6e3 Expect to join by alias if given to RVS 2017-06-08 17:47:48 +01:00
Luke Barnard 7808994b71 Modify RVS test to wait until room loaded
This allows for the alias resolution to occur before a join is attempted. In theory, join_room could in future do an optional view_room-esque thing before attemping a join which would be less fragile than dispatching things in the right order.

Also, make sure the store indicates that it is not loading when a room ID has been used - no alias resolution need take place.
2017-06-02 09:22:48 +01:00
Luke Barnard 298c5e4df3 Implement a store for RoomView
This allows for a truely flux-y way of storing the currently viewed room, making some callbacks (like onRoomIdResolved) redundant and making sure that the currently viewed room (ID) is only stored in one place as opposed to the previous many places.

This was required for the `join_room` action which can be dispatched to join the currently viewed room.

Another change was to introduce `LifeCycleStore` which is a start at encorporating state related to the lifecycle of the app into a flux store. Currently it only contains an action which will be dispatched when the sync state has become PREPARED. This was necessary to do a deferred dispatch of `join_room` following the registration of a PWLU (PassWord-Less User).

The following actions are introduced:
 - RoomViewStore:
    - `view_room`: dispatch to change the currently viewed room ID
    - `join_room`: dispatch to join the currently viewed room
 - LifecycleStore:
    - `do_after_sync_prepared`: dispatch to store an action which will be dispatched when `sync_state` is dispatched with `state = 'PREPARED'`
 - MatrixChat:
    - `sync_state`: dispatched when the sync state changes. Ideally there'd be a SyncStateStore that emitted an `update` upon receiving this, but for now the `LifecycleStore` will listen for `sync_state` directly.
2017-05-24 16:56:13 +01:00