Commit Graph

976 Commits (2aebf103ed3f7379afa006e6f5392f4e072a9bd8)

Author SHA1 Message Date
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
Michael Telatynski 2b9c2daaf4 Fix auto-pinned widget ordering
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-10-20 16:07:21 +01:00
Michael Telatynski b0acae6e77 fix remaining type mismatches
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-10-19 21:13:31 +01:00
Michael Telatynski 5ee0262da2 Post-merge tidy up
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-10-19 20:56:41 +01:00
Michael Telatynski bec1d718e0 Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/feat/room-list-widgets
 Conflicts:
	src/components/views/elements/AppTile.js
	src/utils/WidgetUtils.ts
2020-10-19 20:50:16 +01:00
Michael Telatynski 16362440b3 Iterate Modal Widgets
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-10-19 20:39:43 +01:00
Michael Telatynski 00b1a03a3e Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/feat/modal-widgets
 Conflicts:
	src/@types/global.d.ts
	src/FromWidgetPostMessageApi.js
	src/WidgetMessaging.js
	src/widgets/WidgetApi.ts
2020-10-19 19:46:07 +01:00
Michael Telatynski 5fcdaf66cc Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/feat/widgets 2020-10-19 18:50:02 +01:00
J. Ryan Stinnett 7fe98b4e9d Adjust for new widget messaging APIs
As part of changing to the `events` package, the API surface changed slightly.

Related to https://github.com/vector-im/element-web/issues/15493
2020-10-19 16:42:20 +01:00
Michael Telatynski 744a4abd1c Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/feat/widgets 2020-10-19 13:08:17 +01:00
Michael Telatynski 81990d36b5 Fix Jitsi OpenIDC auth
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-10-19 10:49:07 +01:00
Michael Telatynski f198b95579 Iterate PR; tidy and improve widget context menu
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-10-15 15:24:42 +01:00
Michael Telatynski a6c81a903c Iterate with new buttons and resize locking
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-10-15 11:14:48 +01:00
Travis Ralston edcdd950f7
Merge pull request #5323 from matrix-org/travis/jitsi-popout-fix
Don't supply popout widgets with widget parameters
2020-10-14 16:37:06 -06:00
Travis Ralston 3edb6b2234
Merge pull request #5309 from RinkiyaKeDad/fix-final-10
Renamed TagPanel and TagOrderStore
2020-10-14 16:33:31 -06:00
Travis Ralston 3a88b263c8 Don't supply popout widgets with widget parameters
Fixes https://github.com/vector-im/element-web/issues/15443
2020-10-14 13:54:27 -06:00
Travis Ralston dccea97762 Fix/clarify boolean logic for reaction previews 2020-10-14 08:56:08 -06:00
Arsh Sharma 49d99c6dc7 Merge branch 'develop' of https://github.com/matrix-org/matrix-react-sdk into fix-final-10 2020-10-14 16:58:05 +05:30
Arsh Sharma f705796477 fixing errors 2020-10-14 16:04:41 +05:30
Michael Telatynski d36fafd0c6 Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/feat/widgets
 Conflicts:
	res/css/views/rooms/_AppsDrawer.scss
	src/components/views/elements/AppTile.js
	src/components/views/rooms/AppsDrawer.js
2020-10-14 10:23:44 +01:00