Commit graph

40 commits

Author SHA1 Message Date
Michael Telatynski
9b5b053148
Use MatrixClientPeg::safeGet for strict typing (#10989) 2023-06-21 17:29:44 +01:00
Michael Telatynski
6fa005dcfc
Inhibit interactions on forward dialog message previews (#11025)
* Inhibit interactions on forward dialog message previews

and improve inhibiting of video message body

* Consolidate prop types

* Iterate

* Update src/components/views/messages/IBodyProps.ts

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

---------

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2023-06-06 08:20:21 +00:00
Michael Telatynski
6b46d6e4f8
Add MatrixClientPeg::safeGet and use it in tests (#10985) 2023-06-05 18:12:23 +01:00
Michael Telatynski
82e32035fd
Conform more of the codebase to strictNullChecks (#10842) 2023-05-11 09:56:56 +01:00
renovate[bot]
0ea2ff85d0
Update dependency typescript to v5 (#10532)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2023-04-06 13:17:50 +01:00
Kerry
583050c8c0
Render poll end events in timeline (#10027)
* wip

* remove dupe

* use poll model relations in all cases

* update mpollbody tests to use poll instance

* update poll fetching login in pinned messages card

* add pinned polls to room polls state

* add spinner while relations are still loading

* handle no poll in end poll dialog

* strict errors

* render a poll body that errors for poll end events

* add fetching logic to pollend tile

* extract poll testing utilities

* test mpollend

* strict fix

* more strict fix

* strict fix for forwardref

* update poll test utils

* implicit anys

* tidy and add jsdoc
2023-02-07 21:12:39 +00:00
Andy Balaam
a756b33fe9
Rename RoomCreate -> RoomPredecessorTile (#10047) 2023-02-03 16:58:52 +00:00
Janne Mareike Koschinski
f1a08cd572
Gitter sunsetting: Use findPredecessor in EventTileFactory (#10075) 2023-02-03 15:36:37 +00:00
Michael Weimann
c6f6fa62f7
Implement broadcast UTD handling (#10021) 2023-02-01 13:32:49 +01:00
Andy Balaam
a21929dba0
Convert RoomCreate to a functional component (#9999) 2023-01-30 10:02:32 +00:00
Travis Ralston
badb2c4b27
Use js-sdk imports for poll event types instead of events-sdk (#9904)
* Use js-sdk imports for poll event types instead of events-sdk

* Attempt to appease some tsc --strict errors

* Manually create poll response in cypress test
2023-01-13 10:02:33 -07:00
Travis Ralston
fb761c70d5
Remove unused function/file (#9863) 2023-01-05 09:11:30 -07:00
Michael Weimann
488a08a25e
Allow reactions for broadcasts (#9856) 2023-01-05 08:40:09 +01:00
Michael Weimann
27c5b793e9
Merge branch 'develop' into weeman1337/prettier 2022-12-12 16:09:11 +01:00
Michael Weimann
57e1822add
Add voice broadcast ended message (#9728) 2022-12-12 16:03:56 +01:00
Michael Weimann
526645c791
Apply prettier formatting 2022-12-12 12:24:14 +01:00
Robin
1f8fbc8197
Don't allow group calls to be unterminated (#9710)
If group calls can be unterminated, this makes it very difficult to determine the duration of past calls. This was also causing duplicate event tiles to be rendered if multiple people tried to terminate a call simultaneously.
2022-12-05 16:11:23 +00:00
Michael Weimann
36a574a14f
Use server side relations for voice broadcasts (#9534) 2022-11-07 14:19:49 +00:00
Michael Weimann
1b74782854
Voice Broadcast live state / extract RelationsHelper (#9432)
* Extract RelationsHelper

* Make RelationsHelper.relations optional
2022-10-17 13:31:03 +01:00
Michael Weimann
cb5667b4a4
Voice Broadcast playback (#9372)
* Implement actual voice broadcast playback

* Move PublicInterface type to test

* Implement pausing a voice broadcast playback

* Implement PR feedback

* Remove unnecessary early return
2022-10-14 15:48:54 +01:00
Michael Weimann
b871456681
Hide voice broadcast chunks (#9397) 2022-10-12 17:58:57 +02:00
Robin
ff59f68a9f
New group call experience: Call tiles (#9332)
* Add call tiles

* Factor CallDuration out into a reusable component

* Correct the separator character in LiveContentSummary
2022-09-30 19:26:08 +00:00
Michael Weimann
8e719d57a2
Add voice broadcast recording body (#9316)
* Add voice broadcast recording body

* Change icon element; update css variables

* Update Icon-test snapshots
2022-09-26 15:29:38 +02:00
RiotRobot
d85d79d92b Reset matrix-js-sdk back to develop branch 2022-08-31 16:38:16 +01:00
RiotRobot
c89c02f4e0 Merge branch 'master' into develop
# Conflicts:
#	src/events/EventTileFactory.tsx
#	yarn.lock
2022-08-31 16:36:50 +01:00
Travis Ralston
37a527c61f Convert several internal maps to real maps 2022-08-31 09:21:11 -06:00
Robin
0d6a550c33
Prepare for Element Call integration (#9224)
* Improve accessibility and testability of Tooltip

Adding a role to Tooltip was motivated by React Testing Library's
reliance on accessibility-related attributes to locate elements.

* Make the ReadyWatchingStore constructor safer

The ReadyWatchingStore constructor previously had a chance to
immediately call onReady, which was dangerous because it was potentially
calling the derived class's onReady at a point when the derived class
hadn't even finished construction yet. In normal usage, I guess this
never was a problem, but it was causing some of the tests I was writing
to crash. This is solved by separating out the onReady call into a start
method.

* Rename 1:1 call components to 'LegacyCall'

to reflect the fact that they're slated for removal, and to not clash
with the new Call code.

* Refactor VideoChannelStore into Call and CallStore

Call is an abstract class that currently only has a Jitsi
implementation, but this will make it easy to later add an Element Call
implementation.

* Remove WidgetReady, ClientReady, and ForceHangupCall hacks

These are no longer used by the new Jitsi call implementation, and can
be removed.

* yarn i18n

* Delete call map entries instead of inserting nulls

* Allow multiple active calls and consolidate call listeners

* Fix a race condition when creating a video room

* Un-hardcode the media device fallback labels

* Apply misc code review fixes

* yarn i18n

* Disconnect from calls more politely on logout

* Fix some strict mode errors

* Fix another updateRoom race condition
2022-08-30 15:13:39 -04:00
Michael Telatynski
2e32a4d4b6
Fix invisible power levels tile when showing hidden events (#9162)
* Fix invisible power levels tile when showing hidden events

* Add regression test
2022-08-10 13:33:13 +00:00
Michael Telatynski
e576347b62
Fix pinned messages not re-linkifying on edit (#9042)
* Fix pinned messages not re-linkifying on edit

* Fix tests
2022-07-12 07:27:45 +01:00
Šimon Brandner
19e514d83c
Remove dead code (#9035) 2022-07-11 07:52:44 +02:00
Kerry
ed92071046
Live location share - open latest location in map site (#8981)
* move getForwardableBeacon to beacon utils

* move event transform type up

* add helper to get shareable-as-locaion events

* use getShareableLocationEvent in MessageContextMenu

* test opening in maplink

* fix bad copy pasted tests
2022-07-04 16:05:55 +02:00
Kerry
eaf13d490e
Live location share - disallow message pinning (PSF-1084) (#8928)
* unmock isContentActionable

* test message pinning

* disallow pinning for beacon events

* try to make tests more readable
2022-06-29 07:11:33 +00:00
Kerry
b51ef246ab
Live location share - forward latest location (PSF-1044) (#8860)
* handle beacon location events in ForwardDialog

* add transformer for forwarded events in MessageContextMenu

* remove canForward

* update snapshots for beacon model change

* add comments

* fix bad copy pasted test

* add test for beacon locations
2022-06-17 15:27:08 +02:00
Kerry
36fd9cb0d4
display beacon tiles in timeline regardless of labs flag (#8423)
Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-04-29 14:12:10 +00:00
Kerry
a3a7c60dd7
LLS: Remove beacon info illegal replace relation (#8390)
* dont apply illegal replace relation to beacon_info event

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

* only display tiles for beacon infos with live prop

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

* copyrights

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-04-22 11:38:27 +00:00
Michael Telatynski
bbe0c945d3
Fix regression around haveRendererForEvent for hidden events (#8379) 2022-04-21 16:57:08 +00:00
Robin
7335b35fbb
Avoid looking up settings during timeline rendering (#8313)
* Avoid showHiddenEventsInTimeline lookups

* Avoid MSC3531 feature lookups

* Test that showHiddenEventsInTimeline doesn't get looked up while
rendering

* Fix code review nits

Co-authored-by: Travis Ralston <travisr@matrix.org>
2022-04-14 23:23:22 +00:00
Michael Telatynski
0aa8b93c07
Fix regression of edits showing up in the timeline with hidden events shown (#8260) 2022-04-08 12:10:10 +01:00
Kerry
f63923d60f
Live location sharing - add configs to render beacon_info in timeline (#8251)
* add configs to render beacon_info in timeline

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

* fix copyright

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

* one more comment

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

* update beacon identifier

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

* use special case for beacon_info tile mapper

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-04-08 09:05:26 +00:00
Travis Ralston
9350c50f87 Step 6: Refactor event rendering to stop using getComponent
We move all of the event tile rendering into a factory manager for a couple reasons:
1. `EventTile` is uncomfortably large for a file
2. A simple map isn't possible anymore (can't convert the existing maps like `eventTileTypes` to `Record<string, typeof React.Component>` because the types are actually incompatible)

So, by having a factory manager place we can more easily render components without having to use `getComponent()` all over the place, and without lying to ourselves about how simple the event rendering path is.

This change also moves quite a bit of the rendering path into the new `EventTileFactory` file so it can be easily seen by future developers.
2022-03-28 14:02:31 -06:00