Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement MSC3869: Read event relations with the Widget API #9210

Merged
merged 5 commits into from
Sep 14, 2022

Conversation

dhenneke
Copy link
Contributor

@dhenneke dhenneke commented Aug 22, 2022

matrix-org/matrix-spec-proposals#3869

Depends on:

Checklist

  • Tests written for new code (and old code if feasible)
  • Linter and other CI checks pass
  • Sign-off given on the changes (see CONTRIBUTING.md)

Notes: Allow widgets to read related events
element-web notes: Allow widgets to read related events


Here's what your changelog entry will look like:

✨ Features

  • Allow widgets to read related events (#9210). Contributed by @dhenneke.

Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>
@dhenneke dhenneke marked this pull request as ready for review August 30, 2022 16:59
@dhenneke dhenneke requested a review from a team as a code owner August 30, 2022 16:59
@robintown robintown added the T-Enhancement New features, changes in functionality, performance boosts, user-facing improvements label Aug 30, 2022
Copy link
Member

@turt2live turt2live left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

generally this seems fine, thank you!

@matrix-org/element-call-reviewers : before this can land there will need to be an element-web PR to bump the widget-api version (noting to not allow the lockfile to use two versions)

Comment on lines 383 to 386
const dir =
direction && Object.values(Direction as Record<string, string>).includes(direction)
? direction as Direction
: undefined;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

direction should already be compatible with the Direction enum, which means this shouldn't be needed as a check.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added it as a safeguard since the type guards of typescript are relatively weak hints considering this value was provided over the post message channel. On the other hand, we don't really do a similar input validation for the other fields so we could as well skip it here.

direction && Object.values(Direction as Record<string, string>).includes(direction)
? direction as Direction
: undefined;
const room = roomId !== undefined ? roomId : RoomViewStore.instance.getRoomId();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"room" typically means a Room object in our code - we should be able to redefine the roomId variable with roomId = roomId ?? RoomViewStore.instance.getRoomId();

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

getRoomId() returns string | null | undefined which is incompatible with roomId?: string, but roomId = roomId ?? RoomViewStore.instance.getRoomId() ?? undefined would work.

Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>
Signed-off-by: Dominik Henneke <dominik.henneke@nordeck.net>
@dhenneke
Copy link
Contributor Author

dhenneke commented Sep 7, 2022

I needed to force push because I forgot to sign off the last two commits. But it included no further changes.

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

@turt2live turt2live left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks :)

@turt2live turt2live requested review from robintown and removed request for kerryarchibald, justjanne and duxovni September 10, 2022 03:12
@robintown robintown merged commit 0c22b15 into matrix-org:develop Sep 14, 2022
@dhenneke dhenneke deleted the nic/feat/read-relations branch September 15, 2022 12:27
su-ex added a commit to SchildiChat/element-desktop that referenced this pull request Sep 28, 2022
* Element Call video rooms ([\#9267](matrix-org/matrix-react-sdk#9267)).
* Device manager - rename session ([\#9282](matrix-org/matrix-react-sdk#9282)).
* Allow widgets to read related events ([\#9210](matrix-org/matrix-react-sdk#9210)). Contributed by @dhenneke.
* Device manager - logout of other session ([\#9280](matrix-org/matrix-react-sdk#9280)).
* Device manager - logout current session ([\#9275](matrix-org/matrix-react-sdk#9275)).
* Device manager - verify other devices ([\#9274](matrix-org/matrix-react-sdk#9274)).
* Allow integration managers to remove users ([\#9211](matrix-org/matrix-react-sdk#9211)).
* Device manager - add verify current session button ([\#9252](matrix-org/matrix-react-sdk#9252)).
* Add NotifPanel dot back. ([\#9242](matrix-org/matrix-react-sdk#9242)). Fixes element-hq/element-web#17641.
* Implement MSC3575: Sliding Sync ([\#8328](matrix-org/matrix-react-sdk#8328)).
* Add the clipboard read permission for widgets ([\#9250](matrix-org/matrix-react-sdk#9250)). Contributed by @stefanmuhle.
* Make autocomplete pop-up wider in thread view ([\#9289](matrix-org/matrix-react-sdk#9289)).
* Fix soft crash around inviting invalid MXIDs in start DM on first message flow ([\#9281](matrix-org/matrix-react-sdk#9281)). Fixes matrix-org/element-web-rageshakes#15060 and matrix-org/element-web-rageshakes#15140.
* Fix in-reply-to previews not disappearing when swapping rooms ([\#9278](matrix-org/matrix-react-sdk#9278)).
* Fix invalid instanceof operand window.OffscreenCanvas ([\#9276](matrix-org/matrix-react-sdk#9276)). Fixes element-hq/element-web#23275.
* Fix memory leak caused by unremoved listener ([\#9273](matrix-org/matrix-react-sdk#9273)).
* Fix thumbnail generation when offscreen canvas fails ([\#9272](matrix-org/matrix-react-sdk#9272)). Fixes element-hq/element-web#23265.
* Prevent sliding sync from showing a room under multiple sublists ([\#9266](matrix-org/matrix-react-sdk#9266)).
* Fix tile crash around tooltipify links ([\#9270](matrix-org/matrix-react-sdk#9270)). Fixes element-hq/element-web#23253.
* Device manager - filter out nulled metadatas in device tile properly ([\#9251](matrix-org/matrix-react-sdk#9251)).
* Fix a sliding sync bug which could cause rooms to loop ([\#9268](matrix-org/matrix-react-sdk#9268)).
* Remove the grey gradient on images in bubbles in the timeline ([\#9241](matrix-org/matrix-react-sdk#9241)). Fixes element-hq/element-web#21651.
* Fix html export not including images ([\#9260](matrix-org/matrix-react-sdk#9260)). Fixes element-hq/element-web#22059.
* Fix possible soft crash from a race condition in space hierarchies ([\#9254](matrix-org/matrix-react-sdk#9254)). Fixes matrix-org/element-web-rageshakes#15225.
* Disable all types of autocorrect, -complete, -capitalize, etc on Spotlight's search field ([\#9259](matrix-org/matrix-react-sdk#9259)).
* Handle M_INVALID_USERNAME on /register/available ([\#9237](matrix-org/matrix-react-sdk#9237)). Fixes element-hq/element-web#23161.
* Fix issue with quiet zone around QR code ([\#9243](matrix-org/matrix-react-sdk#9243)). Fixes element-hq/element-web#23199.
su-ex added a commit to SchildiChat/element-web that referenced this pull request Sep 28, 2022
* Element Call video rooms ([\element-hq#9267](matrix-org/matrix-react-sdk#9267)).
* Device manager - rename session ([\element-hq#9282](matrix-org/matrix-react-sdk#9282)).
* Allow widgets to read related events ([\element-hq#9210](matrix-org/matrix-react-sdk#9210)). Contributed by @dhenneke.
* Device manager - logout of other session ([\element-hq#9280](matrix-org/matrix-react-sdk#9280)).
* Device manager - logout current session ([\element-hq#9275](matrix-org/matrix-react-sdk#9275)).
* Device manager - verify other devices ([\element-hq#9274](matrix-org/matrix-react-sdk#9274)).
* Allow integration managers to remove users ([\element-hq#9211](matrix-org/matrix-react-sdk#9211)).
* Device manager - add verify current session button ([\element-hq#9252](matrix-org/matrix-react-sdk#9252)).
* Add NotifPanel dot back. ([\#9242](matrix-org/matrix-react-sdk#9242)). Fixes element-hq#17641.
* Implement MSC3575: Sliding Sync ([\element-hq#8328](matrix-org/matrix-react-sdk#8328)).
* Add the clipboard read permission for widgets ([\element-hq#9250](matrix-org/matrix-react-sdk#9250)). Contributed by @stefanmuhle.
* Make autocomplete pop-up wider in thread view ([\element-hq#9289](matrix-org/matrix-react-sdk#9289)).
* Fix soft crash around inviting invalid MXIDs in start DM on first message flow ([\element-hq#9281](matrix-org/matrix-react-sdk#9281)). Fixes matrix-org/element-web-rageshakes#15060 and matrix-org/element-web-rageshakes#15140.
* Fix in-reply-to previews not disappearing when swapping rooms ([\element-hq#9278](matrix-org/matrix-react-sdk#9278)).
* Fix invalid instanceof operand window.OffscreenCanvas ([\element-hq#9276](matrix-org/matrix-react-sdk#9276)). Fixes element-hq#23275.
* Fix memory leak caused by unremoved listener ([\element-hq#9273](matrix-org/matrix-react-sdk#9273)).
* Fix thumbnail generation when offscreen canvas fails ([\element-hq#9272](matrix-org/matrix-react-sdk#9272)). Fixes element-hq#23265.
* Prevent sliding sync from showing a room under multiple sublists ([\element-hq#9266](matrix-org/matrix-react-sdk#9266)).
* Fix tile crash around tooltipify links ([\element-hq#9270](matrix-org/matrix-react-sdk#9270)). Fixes element-hq#23253.
* Device manager - filter out nulled metadatas in device tile properly ([\element-hq#9251](matrix-org/matrix-react-sdk#9251)).
* Fix a sliding sync bug which could cause rooms to loop ([\element-hq#9268](matrix-org/matrix-react-sdk#9268)).
* Remove the grey gradient on images in bubbles in the timeline ([\element-hq#9241](matrix-org/matrix-react-sdk#9241)). Fixes element-hq#21651.
* Fix html export not including images ([\element-hq#9260](matrix-org/matrix-react-sdk#9260)). Fixes element-hq#22059.
* Fix possible soft crash from a race condition in space hierarchies ([\element-hq#9254](matrix-org/matrix-react-sdk#9254)). Fixes matrix-org/element-web-rageshakes#15225.
* Disable all types of autocorrect, -complete, -capitalize, etc on Spotlight's search field ([\element-hq#9259](matrix-org/matrix-react-sdk#9259)).
* Handle M_INVALID_USERNAME on /register/available ([\element-hq#9237](matrix-org/matrix-react-sdk#9237)). Fixes element-hq#23161.
* Fix issue with quiet zone around QR code ([\element-hq#9243](matrix-org/matrix-react-sdk#9243)). Fixes element-hq#23199.
su-ex added a commit to SchildiChat/matrix-react-sdk that referenced this pull request Sep 28, 2022
* Element Call video rooms ([\matrix-org#9267](matrix-org#9267)).
* Device manager - rename session ([\matrix-org#9282](matrix-org#9282)).
* Allow widgets to read related events ([\matrix-org#9210](matrix-org#9210)). Contributed by @dhenneke.
* Device manager - logout of other session ([\matrix-org#9280](matrix-org#9280)).
* Device manager - logout current session ([\matrix-org#9275](matrix-org#9275)).
* Device manager - verify other devices ([\matrix-org#9274](matrix-org#9274)).
* Allow integration managers to remove users ([\matrix-org#9211](matrix-org#9211)).
* Device manager - add verify current session button ([\matrix-org#9252](matrix-org#9252)).
* Add NotifPanel dot back. ([\matrix-org#9242](matrix-org#9242)). Fixes element-hq/element-web#17641.
* Implement MSC3575: Sliding Sync ([\matrix-org#8328](matrix-org#8328)).
* Add the clipboard read permission for widgets ([\matrix-org#9250](matrix-org#9250)). Contributed by @stefanmuhle.
* Make autocomplete pop-up wider in thread view ([\matrix-org#9289](matrix-org#9289)).
* Fix soft crash around inviting invalid MXIDs in start DM on first message flow ([\matrix-org#9281](matrix-org#9281)). Fixes matrix-org/element-web-rageshakes#15060 and matrix-org/element-web-rageshakes#15140.
* Fix in-reply-to previews not disappearing when swapping rooms ([\matrix-org#9278](matrix-org#9278)).
* Fix invalid instanceof operand window.OffscreenCanvas ([\matrix-org#9276](matrix-org#9276)). Fixes element-hq/element-web#23275.
* Fix memory leak caused by unremoved listener ([\matrix-org#9273](matrix-org#9273)).
* Fix thumbnail generation when offscreen canvas fails ([\matrix-org#9272](matrix-org#9272)). Fixes element-hq/element-web#23265.
* Prevent sliding sync from showing a room under multiple sublists ([\matrix-org#9266](matrix-org#9266)).
* Fix tile crash around tooltipify links ([\matrix-org#9270](matrix-org#9270)). Fixes element-hq/element-web#23253.
* Device manager - filter out nulled metadatas in device tile properly ([\matrix-org#9251](matrix-org#9251)).
* Fix a sliding sync bug which could cause rooms to loop ([\matrix-org#9268](matrix-org#9268)).
* Remove the grey gradient on images in bubbles in the timeline ([\matrix-org#9241](matrix-org#9241)). Fixes element-hq/element-web#21651.
* Fix html export not including images ([\matrix-org#9260](matrix-org#9260)). Fixes element-hq/element-web#22059.
* Fix possible soft crash from a race condition in space hierarchies ([\matrix-org#9254](matrix-org#9254)). Fixes matrix-org/element-web-rageshakes#15225.
* Disable all types of autocorrect, -complete, -capitalize, etc on Spotlight's search field ([\matrix-org#9259](matrix-org#9259)).
* Handle M_INVALID_USERNAME on /register/available ([\matrix-org#9237](matrix-org#9237)). Fixes element-hq/element-web#23161.
* Fix issue with quiet zone around QR code ([\matrix-org#9243](matrix-org#9243)). Fixes element-hq/element-web#23199.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
T-Enhancement New features, changes in functionality, performance boosts, user-facing improvements Z-Community-PR Issue is solved by a community member's PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants