Commit graph

35 commits

Author SHA1 Message Date
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
d3281db2bf Update widgets in the room upon join 2021-01-22 17:49:18 -07:00
Travis Ralston
29780d902c Try to reduce WidgetStore causing downstream problems 2021-01-20 14:44:30 -07:00
Travis Ralston
1768d6ea5f Move all widget pinning logic to the WidgetLayoutStore 2021-01-18 20:26:47 -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
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
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
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
Michael Telatynski
758a4b79ce stash
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-10-13 16:18:02 +01:00
Michael Telatynski
7be5ff0fe6 First cut of app drawer tiled resizing
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-10-13 12:29:12 +01:00
Michael Telatynski
37558f1f0d Improve the context menu
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-10-12 09:51:49 +01:00
Michael Telatynski
c784039cf6 Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/feat/widgets
 Conflicts:
	src/components/views/right_panel/WidgetCard.tsx
	src/stores/WidgetStore.ts
2020-10-07 10:04:45 +01:00
Michael Telatynski
17a04f2915 Fix naive pinning limit and app tile widgetMessaging NPE
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-10-06 10:48:55 +01:00
Michael Telatynski
1e34365caa
Merge pull request #5268 from matrix-org/t3chguy/fix/15349
Fix right panel for peeking rooms
2020-10-06 00:32:05 +01:00
Michael Telatynski
a9cee7cf70 Fix right panel for peeking rooms
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-10-01 12:30:41 +01:00
Michael Telatynski
edfef2df0b Increase max pinned widgets to 3
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-09-30 17:09:45 +01:00
Travis Ralston
5534206e77
Merge pull request #5223 from matrix-org/travis/ft-sep1620/04-jitsi-hangup
Make the hangup button do things for conference calls
2020-09-29 11:06:21 -06:00
Michael Telatynski
2e6bad8b07 Convert WidgetUtils to TS and improve typing
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-09-23 11:01:19 +01:00
Travis Ralston
e849cd8fe5 Null-check the widget before continuing
Deleted widgets should return isPinned=false
2020-09-16 22:51:39 -06:00
Travis Ralston
1ffc6d5bd3 Make the hangup button do things for conference calls
Behaviour constraints:
* If you're not in the conference, use a grey button that does nothing.
* If you're in the conference, show a button:
  * If you're able to modify widgets in the room, annotate it in the context of ending the call for everyone and remove the widget. Use a confirmation dialog.
  * If you're not able to modify widgets in the room, hang up.

For this we know that persistent Jitsi widgets will mean that the user is in the call, so we use that to determine if they are actually participating.
2020-09-16 14:35:55 -06:00
Michael Telatynski
73608c4aa9 Don't count widgets which no longer exist towards pinned count 2020-09-14 14:03:51 +01:00
Michael Telatynski
04d2f93902 Fix WidgetStore handler bindings 2020-09-09 13:15:19 +01:00
Michael Telatynski
a17b2ba1e5 use constant 2020-09-08 17:38:13 +01:00
Michael Telatynski
1532048f33 Fix behaviour WidgetStore for new/unknown rooms 2020-09-08 16:49:50 +01:00
Michael Telatynski
8d14d26e2b do the todos 2020-09-08 16:27:09 +01:00
Michael Telatynski
ef0843d4ad Iterate to match design 2020-09-08 15:43:40 +01:00
Michael Telatynski
98b59fb217 Consolidate all the work thus far 2020-09-08 15:43:38 +01:00
Michael Telatynski
eb7f6f4c4b Create new WidgetStore to track all widgets stuff 2020-09-08 15:42:31 +01:00