Commit graph

1195 commits

Author SHA1 Message Date
Michael Telatynski
5966fade0b Fix joining room using via servers regression 2021-04-28 09:04:02 +01:00
Travis Ralston
c2bcdae8a9 Switch global var to the store for easier debugging 2021-04-27 23:04:49 -06:00
Šimon Brandner
46bfbbadf9
Enable indent rule and fix indent
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-04-27 17:23:27 +02:00
J. Ryan Stinnett
dd8abb0206
Merge pull request #5912 from matrix-org/jryans/convert-flow-to-ts
Convert some Flow-typed files to TypeScript
2021-04-27 13:44:47 +01:00
Michael Telatynski
f18a24025a
Merge branch 'develop' into t3chguy/fix/17022 2021-04-27 11:16:02 +01:00
Michael Telatynski
62f8c9aab9
Merge pull request #5924 from matrix-org/t3chguy/fix/17069
Disable spaces context switching for when exploring a space
2021-04-27 09:45:58 +01:00
J. Ryan Stinnett
cddcedcce2 Merge remote-tracking branch 'origin/develop' into jryans/convert-flow-to-ts 2021-04-26 15:57:28 +01:00
J. Ryan Stinnett
25e4feeb38 Add more types in WidgetEchoStore 2021-04-26 15:38:43 +01:00
Travis Ralston
ddb8947c15
Merge pull request #5897 from matrix-org/travis/error-states
Improve message error states
2021-04-26 08:16:26 -06:00
Michael Telatynski
751568cef2 Disable spaces context switching for when exploring a space 2021-04-26 14:55:11 +01:00
J. Ryan Stinnett
b8a915bb76 Tweak private / underscores for fields and methods 2021-04-26 14:02:53 +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
3bb6edbda7 Fix accepting invite edge case where it wouldn't show the newly joined space 2021-04-25 09:24:26 +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
da46e90896 Fix SpaceStore reset behaviour 2021-04-24 11:32:12 +01:00
Michael Telatynski
f85d3643ee Test and fix subspace invite receipt behaviour 2021-04-24 11:31:52 +01:00
Travis Ralston
82119ad595 Merge branch 'develop' into travis/error-states 2021-04-23 15:53:37 -06:00
J. Ryan Stinnett
3d41b48543 Check for null room in VisibilityProvider
Hopefully fixes https://github.com/vector-im/element-web/issues/16898
2021-04-23 17:27:20 +01:00
J. Ryan Stinnett
2344ddd164 Merge remote-tracking branch 'origin/develop' into jryans/convert-flow-to-ts 2021-04-23 17:19:52 +01:00
J. Ryan Stinnett
d7e6f4b4b5 Add basic types 2021-04-23 17:05:50 +01:00
J. Ryan Stinnett
31a28b1a9e Update extensions for some files with types
This migrates one bucket of files using some amount of Flow typing to mark them
as TypeScript instead. The remaining type errors are fixed in subsequent
commits.
2021-04-23 16:05:30 +01:00
Michael Telatynski
f5ab75cfdd Fix automatic space switching behaviour to prioritise canonical parents 2021-04-23 14:45:34 +01:00
Germain
65d55bd0d9
Merge pull request #5908 from matrix-org/gsouquet-messagepreview-nodom
Remove reliance on DOM API to generated message preview
2021-04-23 14:37:19 +01:00
Michael Telatynski
320ff7b870 Fix invites relating to a space not showing in the space 2021-04-23 13:41:42 +01:00
Michael Telatynski
86a30a2ad5 Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/fix/17022 2021-04-23 10:05:45 +01:00
Michael Telatynski
1075756929 add more tests 2021-04-23 09:55:30 +01:00
Germain Souquet
2b6551d06a Remove reliance on DOM API to generated message preview 2021-04-22 16:17:53 +01:00
Michael Telatynski
ba9cfa0942
Merge pull request #5902 from matrix-org/t3chguy/fix/17020
Show invites to spaces at the top of the space panel
2021-04-22 14:32:48 +01:00
Michael Telatynski
3fb4b6258a
Merge pull request #5899 from matrix-org/t3chguy/spaces-stability
Improve edge cases with spaces context switching
2021-04-22 14:30:35 +01:00
Michael Telatynski
e219fe082a Tweak context switching edge case for space invites 2021-04-22 12:08:54 +01:00
Michael Telatynski
7efd4a43a5 Show space invites at the top of the space panel 2021-04-22 12:07:58 +01:00
Michael Telatynski
60ef657f64 Properly hide spaces from the room list 2021-04-22 12:07:58 +01:00
Michael Telatynski
28fa1cb44c Reset space contexts as some users may have loops stuck in their local storage 2021-04-22 09:05:02 +01:00
Michael Telatynski
b64b956aa4 when automatically switching space to match room fall back to the home space 2021-04-22 08:39:16 +01:00
Michael Telatynski
ec0612f70d Fix spaces notification dots wrongly including upgraded (hidden) rooms 2021-04-22 08:31:26 +01:00
Michael Telatynski
e1ba04716e Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/spaces-stability
 Conflicts:
	src/stores/SpaceStore.tsx
2021-04-22 08:24:19 +01:00
Michael Telatynski
ee80c27b2b Improve edge cases with spaces context switching 2021-04-22 08:22:11 +01:00
Travis Ralston
4be9c51dad Move all the RED_EXCLAMATION badges to a single definition 2021-04-21 16:43:25 -06:00
Michael Telatynski
8373b0e69c
Merge pull request #5893 from matrix-org/t3chguy/fix/16978
Fix spaces filtering sometimes lagging behind or behaving oddly
2021-04-21 09:20:18 +01:00
Michael Telatynski
bae47bbd79
Merge pull request #5894 from matrix-org/t3chguy/fix/17026
Fix issue with spaces context switching looping and breaking
2021-04-21 09:11:26 +01:00
Michael Telatynski
ecd9b8d6de Fix issue with spaces context switching looping and breaking 2021-04-21 09:01:22 +01:00
Michael Telatynski
1507f64f2b Fix spaces filtering sometimes lagging behind or behaving oddly 2021-04-21 08:52:56 +01:00
Šimon Brandner
9b81f5b4a0
Add a comment
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-04-20 16:11:34 +02:00
Šimon Brandner
3adb2635ba
Revert "Remove unnecessary check"
This reverts commit 08c0f0a67e.

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-04-20 15:40:32 +02:00
Michael Telatynski
ace8d59a2a Fix Spaces NPE when a room with no tags gains its first tag 2021-04-20 13:12:28 +01:00
Šimon Brandner
4344ff9097
Update src/stores/SpaceStore.tsx
Co-authored-by: Michael Telatynski <7t3chguy@googlemail.com>
2021-04-20 13:31:50 +02:00
Šimon Brandner
d4ca087c2e
Make getLastViewedRoomsStorageKey() make sense
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-04-20 13:24:23 +02:00
Šimon Brandner
1934c4a32f
Add getLastViewedRoomsStorageKey()
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-04-20 12:39:11 +02:00
Šimon Brandner
f9292c364c
Check if we are joined
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-04-20 12:25:56 +02:00
Šimon Brandner
08c0f0a67e
Remove unnecessary check
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-04-20 12:22:25 +02:00
Šimon Brandner
a3d0ccf306
Merge branch 'develop' into spaces/context-switching 2021-04-20 12:06:59 +02:00
Michael Telatynski
6127669c53
Merge pull request #5882 from matrix-org/t3chguy/fix/17002
Trigger lazy loading when filtering using spaces
2021-04-19 19:25:15 +01:00
Michael Telatynski
344e4b6c5b Trigger lazy loading when filtering using spaces
so that the filtered DMs are correct
2021-04-19 16:15:24 +01:00
Travis Ralston
f955f33071 Merge branch 'develop' into travis/voice/countdown 2021-04-16 10:00:11 -06:00
David Baker
d39b7175f7 Don't include invisible rooms in notify summary
This could cause rogue title bar natifications if you had invisible rooms
2021-04-16 15:31:01 +01:00
Travis Ralston
0677cf866c Cap recording length, and warn at 10s remaining
See diff for details. Note that this introduces an "Uploading" state which is not currently used.

At the moment, if a user hits the maximum time then their recording will be broken. This is expected to be fixed in a future PR.
2021-04-14 21:15:06 -06:00
Travis Ralston
3cafed478c Run voice recording updates through a dedicated store 2021-04-14 20:11:34 -06:00
Michael Telatynski
bf33775a14 Fix space store wrongly switching to a non-space filter 2021-04-12 11:45:22 +01:00
Travis Ralston
3c25979520
Merge pull request #5824 from robintown/ignore-punctuation
Ignore punctuation when filtering rooms
2021-04-08 20:10:08 -06:00
Travis Ralston
479df8ac5f Clarify docs 2021-04-02 19:35:10 -06:00
Travis Ralston
343ce3b502 Make log spam more quiet 2021-04-01 00:02:05 -06:00
Travis Ralston
746856ed10 Appease the linter 2021-03-31 23:40:25 -06:00
Travis Ralston
70db749430 Restabilize room list ordering with prefiltering on spaces/communities
Fixes https://github.com/vector-im/element-web/issues/16799

This change replaces the "relative priority" system for filters with a kind model. The kind is used to differentiate and optimize when/where a filter condition is applied, resulting in a more stable ordering of the room list. The included documentation describes what this means in detail.

This also introduces a way to inhibit updates being emitted from the Algorithm class given what we're doing to the poor thing will cause it to do a bunch of recalculation. Inhibiting the update and implicitly applying it (as part of our updateFn.mark()/trigger steps) results in much better performance.

This has been tested on my own account with both communities and spaces of varying complexity: it feels faster, though the measurements appear to be within an error tolerance of each other (read: there's no performance impact of this).
2021-03-31 23:36:36 -06:00
Robin Townsend
b13dae1fc6 Ignore punctuation when filtering rooms
Signed-off-by: Robin Townsend <robin@robin.town>
2021-03-31 22:45:53 -04:00
Germain Souquet
3f33060cdd increase default visible tiles for room sublists 2021-03-31 11:15:16 +01:00
J. Ryan Stinnett
3a09c22173
Merge pull request #5812 from matrix-org/jryans/cancel-security-key
Tweak security key error handling
2021-03-29 17:58:11 +01:00
J. Ryan Stinnett
02548cf743 Tweak security key error handling
This reworks error handling of "use security key" so we stop the overall
operation when cancelling access (instead of just the immediate prompt). In
addition, flowing the error to outer catch block also handles resetting state to
re-display the initial verification choices.

Fixes https://github.com/vector-im/element-web/issues/15584
2021-03-26 18:01:03 +00:00
Šimon Brandner
d68afcc4ce
Use else if
Maybe it looks a little nicer, I don't know

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-03-26 13:52:41 +01:00
Šimon Brandner
a707524aad
Delete comment
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-03-26 13:49:01 +01:00
Šimon Brandner
f62e2c0042
Use compound keys
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-03-26 13:44:51 +01:00
Šimon Brandner
f64008e239
Check if room is defined
Sometimes it isn't and that leads to errors. We can't use ? here because we also use !

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-03-26 13:39:16 +01:00
Michael Telatynski
aff05eff48 Fix suggested room vanishing when you peek it 2021-03-26 11:48:31 +00:00
Šimon Brandner
65ef2b845e
Go to /#/home if there is no saved room
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-03-26 08:18:49 +01:00
Šimon Brandner
7e425ce939
Empty object if nothing saved
This isn't nice but I'll rework this soon anyway

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-03-26 08:18:49 +01:00
Šimon Brandner
efb8c89433
Don't save if isSpaceRoom()
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-03-26 08:18:42 +01:00
Šimon Brandner
c26da1bce6
Use this.activeSpace
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-03-26 07:58:09 +01:00
Šimon Brandner
e39f7caf59
Don't export as we don't need to
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-03-26 07:55:52 +01:00
Šimon Brandner
2dcb60b489
Move persisting of last viewed into SpaceStore
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-03-26 07:54:27 +01:00
Šimon Brandner
67dcb3a448
If no roomId was saved go to space home
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-03-25 20:51:21 +01:00
Šimon Brandner
ef3d87f8e8
First implementation of context switching
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-03-25 20:44:15 +01:00
Michael Telatynski
1b22cc8f6d delint 2021-03-25 17:41:26 +00:00
Michael Telatynski
a2fe964a31 Fix case where room list did not show DM when user joined space after filtering 2021-03-25 17:37:39 +00:00
Michael Telatynski
a61f4c1811 Auto-select space if joined whilst being viewed 2021-03-24 20:01:21 +00:00
Michael Telatynski
56dbd5f628 Remove unused autoJoin prop and move viaServers logic into RVS
this fixes the issue where autoJoining ignored viaServers
2021-03-24 16:45:53 +00:00
Michael Telatynski
d873791369 update comments 2021-03-24 14:01:24 +00:00
Michael Telatynski
796bfd851d Fix left spaces not disappearing from the space panel 2021-03-22 17:47:48 +00:00
Michael Telatynski
128c7db28e
Merge pull request #5777 from matrix-org/t3chguy/spaces4.9
Spaces improve creation journeys
2021-03-22 13:24:10 +00:00
David Baker
8a765cf67a
Merge pull request #5770 from matrix-org/dbkr/jitsi_display_name
Fix username showing instead of display name in Jitsi widgets
2021-03-19 13:41:35 +00:00
Michael Telatynski
2b4c670b89 Fix favourites not showing up in home until a refresh 2021-03-19 13:20:30 +00:00
Michael Telatynski
c6f6d24b32 Iterate space creation and previews 2021-03-19 13:20:30 +00:00
David Baker
4a734ef70b Clear displayname / vatar if they're unset 2021-03-19 11:29:14 +00:00
Travis Ralston
1d43c8b791 Remove forgotten rooms from the room list once forgotten
Fixes https://github.com/vector-im/element-web/issues/15559

This isn't exactly perfect as an implementation: if the user refreshes immediately after forgetting then there is a good chance the room re-appears because of the sync accumulator. At the very least this change makes it so in *most* cases the room goes away, which is probably good enough until https://github.com/vector-im/element-web/issues/14038 can be implemented properly.
2021-03-18 23:28:59 -06:00
David Baker
2b608aa919
Remove blank line 2021-03-17 19:18:32 +00:00
David Baker
d95955d90b
Merge branch 'develop' into dbkr/jitsi_display_name 2021-03-17 19:17:52 +00:00
David Baker
f6a87386bc Fix username showing instead of display name in Jitsi widgets
If you opened element and entered a jitsi conference straight away
in the room you landed in, your jitsi display name would be your
matrix username rather than your display name. This was because
OwnProfileStore was still busy fetching your profile from the server
while the room, and therefore jitsi widget, was rendered.

Blocking these widgets loading on this profile fetch completing isn't
really an option, so store the profile data in localstorage and seed
OwnProfileStore with the values from there.

Bonus: the name in the top left will now be your display name as
soon as the app is loaded, rather than being your username for the
first several seconds after you load the app.

Fixes https://github.com/vector-im/element-web/issues/16577
2021-03-17 19:09:43 +00:00
Travis Ralston
a9a4bd50ca Merge branch 'develop' into travis/media-customization 2021-03-11 08:37:49 -07:00
J. Ryan Stinnett
6a939c4de8
Merge pull request #5727 from matrix-org/matthew/rework-cross-signing-login
Rework cross-signing login flow
2021-03-11 12:53:55 +00:00
Travis Ralston
1ac12479ca Convert cases of mxcUrlToHttp to new media customisation 2021-03-10 12:32:18 -07:00
J. Ryan Stinnett
0583ea6a25 Ignore to-device decryption in the room list store
This avoids meaningless warnings about "unknown" rooms.
2021-03-10 12:11:48 +00:00
Michael Telatynski
98338f1505
Merge pull request #5736 from matrix-org/t3chguy/spaces4.5
Spaces suggested rooms support
2021-03-10 10:56:17 +00:00
Michael Telatynski
e6370a970b Tweak call handler stuff to not explode the room list on unsupported servers 2021-03-09 14:03:58 +00:00
Michael Telatynski
1cfeb36927 Update suggested room on join 2021-03-09 13:41:37 +00:00
Matthew Hodgson
41c87c7570 remove obsolete comment 2021-03-09 13:35:45 +00:00
Matthew Hodgson
d388f877b4 add PHASE_LOADING to SetupEncryptionStore to avoid flashing cross-signing setup 2021-03-08 23:28:44 +00:00
Matthew Hodgson
9d99b2f239 remove errand whitespace 2021-03-08 17:59:10 +00:00
Michael Telatynski
6a5efad142 Show suggested rooms from the selected space 2021-03-08 15:52:21 +00:00
David Baker
d71999114b
Merge pull request #5707 from matrix-org/dbkr/audiostream
Option for audio streaming
2021-03-08 11:50:45 +00:00
Matthew Hodgson
997d6e1281 lint 2021-03-08 05:08:01 +00:00
Matthew Hodgson
c02d03cc5b Merge branch 'develop' of git+ssh://github.com/matrix-org/matrix-react-sdk into develop 2021-03-08 04:57:10 +00:00
Matthew Hodgson
d477f964d2 only prompt to verify if we have an MSK or we have devices to verify against 2021-03-08 04:49:59 +00:00
Michael Telatynski
ab4220b20d Defer auto-joining within spaces and switch to using suggested 2021-03-04 13:04:58 +00:00
Michael Telatynski
d1a75885a7 Protect onAction dispatch handler on the SpaceStore with Spaces disabled 2021-03-02 15:35:02 +00:00
David Baker
20e57d15fd Option for audio streaming 2021-03-02 15:20:54 +00:00
Michael Telatynski
c10512fd56 Initial SpaceRoomView work 2021-03-01 18:53:11 +00:00
Michael Telatynski
bfe3d648e2
Update src/stores/room-list/algorithms/Algorithm.ts
Co-authored-by: Travis Ralston <travpc@gmail.com>
2021-02-26 22:08:36 +00:00
Michael Telatynski
f21aedc6cf Add Space Panel with Room List filtering 2021-02-26 10:41:26 +00:00
Michael Telatynski
7030c636f0 Initial Space Store for keeping track of space hierarchies from sync 2021-02-25 16:36:35 +00:00
Michael Telatynski
79daf615e4 First special treatment of space-rooms 2021-02-19 14:20:57 +00:00
Michael Telatynski
6b3f05a3cd Switch RoomListStore to only including the filtered subset
Without this it'd include notification counts from Community B when Community A is selected and such.
2021-02-19 14:10:36 +00:00
Michael Telatynski
63d95706e9 Create setHasDiff helper and use it
The usage here is identical to how it'll work in Spaces
2021-02-19 12:58:23 +00:00
Michael Telatynski
8fc244452c Prevent error being thrown so that we can throw our own better one 2021-02-18 18:06:26 +00:00
Travis Ralston
64974eb3ee
Merge pull request #5661 from matrix-org/travis/clear-preview
Clear message previews when the maximum limit is reached for history
2021-02-18 07:31:54 -07:00
Travis Ralston
47d73bef57 Clear message previews when the maximum limit is reached for history 2021-02-17 22:36:26 -07:00
David Baker
6130bdf0d2 Use creation content to signal virtual-ness
This makes things a lot simpler.
2021-02-17 18:51:21 +00:00
David Baker
e787d11c73 Merge remote-tracking branch 'origin/develop' into dbkr/virtual_rooms_v2 2021-02-16 19:41:54 +00:00
David Baker
79455d99b4 Unused import 2021-02-15 19:38:17 +00:00
David Baker
89b2dae035 Send onNewInvitedRoom via VisibilityProvider 2021-02-15 18:13:13 +00:00
David Baker
196507a730 VoIP virtual rooms, mk II
Does a thirdparty protocol lookup to the homeserver to get the
corresponding native/virtual user for a matrix ID. Stores the
mappings in room account data. Involves some slightly nasty workarounds
for that fact that room account data has no local echo.
2021-02-12 20:55:54 +00:00
Jason Robinson
6ccce7142c Merge branch 'develop' into jaywink/hosting-provider-iframe-minimize-wip 2021-02-03 22:35:22 +02:00
J. Ryan Stinnett
e4629878bc Lock widget room ID when added
This changes the widget room ID available to widget URL templates so that it's
locked to the room the widget was added in.

Fixes https://github.com/vector-im/element-web/issues/16337
2021-02-02 14:36:44 +00:00
J. Ryan Stinnett
2c313e0c5e Add managed hybrid call widgets when supported
If your homeserver is configured with an experiment `widget_build_url`, this
will take over the functionality of the call buttons and turn them into a
general widget installer.
2021-01-29 14:45:25 +00:00
Travis Ralston
d6dbe5596a
Merge pull request #5581 from matrix-org/travis/widgets/sticker-picker
Allow stickerpickers the legacy "visibility" capability
2021-01-28 07:46:17 -07:00
Travis Ralston
61f6fa0633
Merge pull request #5582 from matrix-org/travis/widgets/fix-jitsi-unpin
Remove check that prevents Jitsi widgets from being unpinned
2021-01-27 14:59:34 -07:00
Travis Ralston
c1b33d3e2c Fix Jitsi widgets causing localized tile crashes
Seems to be that as part of the layout work the timing sequence for when `.getRoom().widgets` will work changed. We can get around this with `initIfNeeded` which will no-op in the worst case.

This also includes a copy change to make ended conferences stop lying about where to find the widget. This is work towards https://github.com/vector-im/element-web/issues/15739
2021-01-27 14:40:04 -07:00
Travis Ralston
08b067fd68 Remove check that prevents Jitsi widgets from being unpinned
Later in the code we do a conditional on the widget type to auto-pin the widget, so we don't need this one to force the widget higher.

Fixes https://github.com/vector-im/element-web/issues/16280
2021-01-27 14:31:48 -07:00
Travis Ralston
edb363b751 Allow stickerpickers the legacy "visibility" capability
Fixes https://github.com/vector-im/element-web/issues/16237
2021-01-27 14:22:55 -07:00
J. Ryan Stinnett
84b1f2e6c6 Resolve typing errors after TypeScript upgrade 2021-01-27 12:42:37 +00:00
Travis Ralston
d3281db2bf Update widgets in the room upon join 2021-01-22 17:49:18 -07:00
David Baker
f703383ab6
Merge pull request #5560 from matrix-org/dbkr/voip_user_mapper
Add VoIP user mapper
2021-01-22 14:12:08 +00:00
Travis Ralston
f023fc50e2
Update src/stores/widgets/WidgetLayoutStore.ts
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2021-01-21 13:22:44 -07:00
David Baker
0a90c982c7 Add VoIP user mapper
The accompanying element-web PR with the config documentation should
explain what this is & why. Internally, this breaks the assumption
that call.roomId is the room that the call appears in for the user.
call.roomId may now be a 'virtual' room while the react SDK actually
displays it in a different room. React SDK always stores the calls
under the user-facing rooms, and provides a function to get the
user-facing room for a given call.
2021-01-21 19:20:35 +00:00
Travis Ralston
29780d902c Try to reduce WidgetStore causing downstream problems 2021-01-20 14:44:30 -07:00
Travis Ralston
f8fe454c59 Replace looping resizer with actual math 2021-01-20 14:42:24 -07:00
Travis Ralston
ab51404421 Appease the tests? 2021-01-18 21:07:44 -07:00
Travis Ralston
6d770cb4d1 Appease the linter 2 2021-01-18 21:00:47 -07:00
Travis Ralston
6227d3c183 Appease the linters 2021-01-18 20:53:15 -07:00
Travis Ralston
04d1f5dd28 Implement a "Copy my layout to the room" button 2021-01-18 20:42:21 -07:00
Travis Ralston
5c393cc2d0 Add in some local echo support to make changes appear faster 2021-01-18 20:29:51 -07:00
Travis Ralston
7ff76b2500 Don't forget to run cleanup 2021-01-18 20:28:09 -07:00
Travis Ralston
1768d6ea5f Move all widget pinning logic to the WidgetLayoutStore 2021-01-18 20:26:47 -07:00
Travis Ralston
0d29d15a46 Support room-defined height as well
Much like widget widths, it is acceptable for us to forget what everyone's height was previously at.
2021-01-18 19:27:11 -07:00
Travis Ralston
cfb583d193 Calculate widget widths in the WidgetLayoutStore
Note that this ditches all previously set width values, however this is probably acceptable for now. Trying to remain backwards compatible gets tricky on top of already tricky code, and the impact of Element forgetting widths is not as severe as forgetting which widgets were/are pinned.
2021-01-18 18:50:36 -07:00
Travis Ralston
0001e1e684 Support initial ordering and calculation for widgets by layout 2021-01-18 17:41:42 -07:00
Travis Ralston
4ee29d4e63 Split out ready states of stores to its own store 2021-01-18 17:41:17 -07:00
Travis Ralston
83fb698bbc
Merge pull request #5527 from matrix-org/travis/widget-nav
Wire up MSC2931 widget navigation
2021-01-18 09:09:32 -07:00
J. Ryan Stinnett
8a341446aa Use room-specific listeners for community prototype
Similar to message previews, this changes another area to use room-specific
listeners for better performance and avoiding warnings.
2021-01-15 14:34:56 +00:00
J. Ryan Stinnett
729356394e Use room-specific listeners for message previews
This should be a bit faster (since we now only notify one tile instead of all
for each update). It also resolves the max listener warning.

Fixes https://github.com/vector-im/element-web/issues/15121
2021-01-15 14:21:21 +00:00
Jason Robinson
d6af5b3bbd WIP minimize 2021-01-14 12:20:42 +02:00
Jason Robinson
d4a58bdb2a WIP minimize 2021-01-14 11:53:20 +02:00
Travis Ralston
7e0cf5c783 Wire up MSC2931 widget navigation
Fixes https://github.com/vector-im/element-web/issues/16006
**Requires https://github.com/matrix-org/matrix-widget-api/pull/27**
2020-12-29 12:35:48 -07:00
Travis Ralston
b870de14ed
Merge pull request #5488 from matrix-org/travis/chat-effects-widgets
Run chat effects on events sent by widgets too
2020-12-11 21:52:24 -07:00
Travis Ralston
c80ccf6386 Remove unused import 2020-12-11 08:27:46 -07:00
Travis Ralston
b6123506d4 Run chat effects on events sent by widgets too 2020-12-10 21:00:37 -07:00
Travis Ralston
10930b8404 Fix being unable to pin widgets
Turns out that we were obliterating the entire store of widgets each time we loaded a widget, which is less than helpful. This commit fixes that.

This commit also improves the cleanup of the pinned event object to remove unpinned widgets, reducing accumulation over time.

Fixes https://github.com/vector-im/element-web/issues/15948
2020-12-10 20:57:20 -07:00
Travis Ralston
d38a6ad1be Add more widget sanity checking
This is for https://github.com/vector-im/element-web/issues/15705

https://github.com/matrix-org/matrix-react-sdk/pull/5459 was unable to track down all the instances of where the issue happens, so this commit tries to do a more complete job.

Specifically, this replaces the getRoomId() function given widgets cannot reliably be referenced by widget ID in this way, and the store has been updated to handle a more unique widget ID for the store (just in case).

Further sanity checking has also been added to ensure that we are at least returning a valid result.
2020-12-02 12:20:59 -07:00
Travis Ralston
5df6932051 Add various amounts of sanity checking for widget pinning
This should also help https://github.com/vector-im/element-web/issues/15705 by either implicitly fixing the problem, causing chaos as described in the issue, or by forcing a crash to identify the problem more easily.
2020-12-01 13:19:51 -07:00
Travis Ralston
bd1de8d45b Require a room ID for WidgetStore's pinned widget contracts
This should alleviate https://github.com/vector-im/element-web/issues/15705 from happening, though the cause is still unknown.

Requiring a room ID is safe for this because only room widgets can be pinned, and widget IDs are not globally unique which means from a logical standpoint the contract still makes sense here.
2020-12-01 13:05:48 -07:00
Travis Ralston
f4979065e4
Merge pull request #5445 from matrix-org/travis/hide-rooms
Make it possible in-code to hide rooms from the room list
2020-11-27 07:07:18 -07:00
Travis Ralston
c2c328e23c Appease the linter 2020-11-26 08:06:48 -07:00
Travis Ralston
b9c57f47b0 Remove example 2020-11-26 08:01:38 -07:00
Travis Ralston
24f3ecb69a
Merge branch 'develop' into travis/modal-widget-fixes 2020-11-26 08:00:02 -07:00
Travis Ralston
80b93e0843 Mute all updates from rooms that are invisible 2020-11-25 20:03:58 -07:00
Travis Ralston
b9af446c1b Make it possible in-code to hide rooms from the room list
Fixes https://github.com/vector-im/element-web/issues/15745

This was surprisingly easy given the number of errors I remember last time, but here it is. This also includes an over-engineered VisibilityProvider with the intention that it'll get used in the future for things like Spaces and other X as Rooms stuff.
2020-11-25 19:42:57 -07:00
Travis Ralston
c2cb791f7d Appease the linter 2020-11-25 18:58:30 -07:00
Travis Ralston
fc820c4b1a Construct modal widgets in the same way we do any other widget
Fixes https://github.com/vector-im/element-web/issues/15800
2020-11-25 18:51:27 -07:00
Travis Ralston
5da27aed94 Replace the concept of a Widget Security Key with an OIDC state
The security key naming/practice was misguided, so let's call it what it is (a settings key) and abstract away the complexity to a new store.

Fixes https://github.com/vector-im/element-web/issues/15820 while we're here.
2020-11-25 18:39:11 -07:00
Travis Ralston
c91dc55bc1 Make modal widgets static to avoid being destroyed
Fixes https://github.com/vector-im/element-web/issues/15818
2020-11-25 18:35:00 -07:00
Travis Ralston
3780afff7d Fix existing widgets not having approved capabilities for their function
Fixes https://github.com/vector-im/element-web/issues/15827

This also fixes sticker pickers.
2020-11-25 14:40:01 -07:00
Travis Ralston
1db130b8f0
Merge pull request #5440 from matrix-org/travis/openid2
Use the WidgetDriver to run OIDC requests
2020-11-24 09:44:27 -07:00
Travis Ralston
28c78509a1 Use the WidgetDriver to run OIDC requests
Fixes https://github.com/vector-im/element-web/issues/15775
2020-11-23 14:10:14 -07:00
Travis Ralston
da32d9decd Add a customisation point for widget permissions and fix amnesia issues
The "remember my selection" option wasn't working because the `missing` set still included the approved permission. Solution: remove it from `missing`.

The customisation point is to allow forks to change which widgets get which additional capabilities dependent on their own rules.
2020-11-23 11:59:38 -07:00
Travis Ralston
107fa98180 Support arbitrary widgets sticking to the screen + sending stickers
Following https://github.com/matrix-org/matrix-react-sdk/pull/5385, it is now possible for a widget to request these capabilities without being a video conference or sticker picker. This commit actually enables this support for those kinds of widgets.

This commit also fixes an issue in the URL templating where some variables might get set to 'undefined' - this appears to be a scoping issue, so StopGapWidget now stores the definition alongside the superclass. 

Fixes https://github.com/vector-im/element-web/issues/15001
2020-11-20 16:53:15 -07:00
Travis Ralston
dec47a260c Appease the linter 2020-11-19 12:12:00 -07:00
Travis Ralston
21663314ee Minor touchups to the dialog 2020-11-19 11:24:17 -07:00
Travis Ralston
55592d365c Merge branch 'develop' into travis/msc-send-widget-events 2020-11-18 15:57:53 -07:00
Travis Ralston
a212dab84c Developer design a permissions dialog 2020-11-17 20:38:59 -07:00
Travis Ralston
94550546eb Merge branch 'develop' into travis/msc-send-widget-events 2020-11-16 15:08:52 -07:00
Travis Ralston
33b7367d82 Fix room ID handling 2020-11-12 10:36:30 -07:00
Michael Telatynski
36ef9ec341 Update styling of the Analytics toast to try and decrease number of users blindly pressing No 2020-11-09 14:21:45 +00:00
Michael Telatynski
0da23e2cbd Fix copy for call hangup previews 2020-11-03 15:22:23 +00:00
Travis Ralston
fc90531c9f Appease the linter 2020-11-02 21:38:59 -07:00
Travis Ralston
f5cd079a16 Add support for sending/receiving events from widgets
Part of MSC2762: https://github.com/matrix-org/matrix-doc/pull/2762
Requires: https://github.com/matrix-org/matrix-widget-api/pull/9

This is the bare minimum required to send an event to a widget and receive events from widgets. Like the view_room action, this is controlled by a well-known permission key.

**Danger**: This allows widgets to potentially modify room state. Use the permissions with care.
2020-11-02 21:32:49 -07:00
Travis Ralston
e15041bd53 Add a custom widget API action for viewing a different room 2020-11-02 15:21:18 -07:00
Michael Telatynski
997679e648 Fix Widget OpenID Permissions for realsies 2020-10-30 22:12:46 +00:00
Michael Telatynski
bf124c4379 Fix regression with OpenID permissions on widgets 2020-10-30 21:13:01 +00:00
Michael Telatynski
c3a355097d Initial Countly work 2020-10-29 15:57:16 +00:00
Michael Telatynski
17717e27c6 Fix theme variable passed to Jitsi 2020-10-27 11:26:16 +00:00
Michael Telatynski
0004dd4475 Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/feat/modal-widgets 2020-10-22 21:40:05 +01:00
Michael Telatynski
5f2058a6a0 Fix WidgetStore wrongly hanging onto old Widget definitions during removal
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-10-21 16:06:22 +01:00
Michael Telatynski
4e12aeca9e Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/feat/room-list-widgets
 Conflicts:
	src/components/views/elements/AppTile.js
2020-10-21 12:48:51 +01:00