Commit graph

149 commits

Author SHA1 Message Date
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
Šimon Brandner
7eaed1a3f8
Add option to stop sending read receipts (delabs MSC2285: private read receipts) (#8629)
Co-authored-by: Travis Ralston <travisr@matrix.org>
2022-08-05 17:33:57 +02:00
Michael Telatynski
0bc2f1c101
Fix event list summaries including invalid events (#9041) 2022-07-11 16:25:11 +01:00
Kerry
7a80ea4bbe
Test typescriptification - MessagePanel (#8943)
* mv test/components/structures/MessagePanel-test.js test/components/structures/MessagePanel-test.tsx

* convert simpler messagepanel tests to rtl

* add data-testid to eventlistsummary

* convert read marker tests to rtl

* formatting

* remove commented
2022-06-30 14:41:53 +02:00
Michael Telatynski
21d0aaf524
Use updates stable relations from js-sdk (#8715)
* Use updates stable relations from js-sdk

* Relations is now accessible on the Room instead

* Reuse more existing code and ditch confusing `isThreadRelation`

* Fix last usage of removed `isThreadRelation`

* Update tests to match removal of isThreadRelation

* Tweak method naming to closer match spec

* Fix missing method name change
2022-06-07 11:16:54 +01:00
Michael Telatynski
59b9d1e818
Don't consider threads for breaking continuation until actually created (#8581)
* Don't consider threads for breaking continuation until they've actually been created

* Update tests

* Make hasThreadSummary null thread safe

* Apply feedback from pr review
2022-05-13 11:59:50 +00:00
Šimon Brandner
99543a7858
Implement changes to MSC2285 (private read receipts) (#7993) 2022-05-06 21:32:47 +02:00
Kerry
c5633a24fe
Live location sharing: don't group beacon info with room creation summary (#8468)
* dont group beacon info with room creation summary

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

* remove debugs

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

* add comment

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

* update comment

Signed-off-by: Kerry Archibald <kerrya@element.io>
2022-05-03 09:04:47 +00:00
Michael Telatynski
a70f11704f
Don't form continuations on either side of a thread root (#8408) 2022-04-26 08:30:36 +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
Janne Mareike Koschinski
579a166113
Fix: Remove jittery timeline scrolling after jumping to an event (#8263)
* Fix: Remove jittery timeline scrolling after jumping to an event

* Fix: Remove onUserScroll handler and merge it with onScroll

* Fix: Reset scrollIntoView state earlier

Co-authored-by: Janne Mareike Koschinski <jannemk@element.io>
2022-04-08 20:48:57 +02:00
Travis Ralston
97efdf7094 Merge branch 'develop' into travis/remove-skinning 2022-03-31 19:25:43 -06:00
Michael Telatynski
c3e02b21cb
Fix issue with redacting via edit composer flow causing stuck editStates (#8184) 2022-03-29 13:33:11 +01:00
Travis Ralston
cfbad115c7 Step 8.5: Move event rendering utilities 2022-03-28 14:02:31 -06: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
Travis Ralston
997d6d40bf Step 1: Remove all usage of @replaceableComponent 2022-03-28 14:02:31 -06:00
Robin
1e060fed84
Don't form continuations from thread roots (#8166)
* Don't form continuations from thread roots

* Only apply the continuation break in the main timeline
2022-03-26 18:06:25 -04:00
Travis Ralston
fce36ec826
Delete groups (legacy communities system) (#8027)
* Remove deprecated feature_communities_v2_prototypes

* Update _components

* i18n

* delint

* Cut out a bit more dead code

* Carve into legacy components

* Carve into mostly the room list code

* Carve into instances of "groupId"

* Carve out more of what comes up with "groups"

* Carve out some settings

* ignore related groups state

* Remove instances of spacesEnabled

* Fix some obvious issues

* Remove now-unused css

* Fix variable naming for legacy components

* Update i18n

* Misc cleanup from manual review

* Update snapshot for changed flag

* Appease linters

* rethemedex

* Remove now-unused AddressPickerDialog

* Make ConfirmUserActionDialog's member a required prop

* Remove useless override from RightPanelStore

* Remove extraneous CSS

* Update i18n

* Demo: "Communities are now Spaces" landing page

* Restore linkify for group IDs

* Demo: Dialog on click for communities->spaces notice

* i18n for demos

* i18n post-merge

* Update copy

* Appease the linter

* Post-merge cleanup

* Re-add spaces_learn_more_url to the new SdkConfig place

* Round 1 of post-merge fixes

* i18n

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-03-22 23:07:37 +00:00
Michael Telatynski
782ce016d1
Wrap EventTile rather than its children in an error boundary (#7945) 2022-03-09 11:22:36 +00:00
Robin
aadb64615f
Fix duplicate EventListSummarys (#7952)
* Fix duplicate EventListSummarys

Signed-off-by: Robin Townsend <robin@robin.town>

* Add regression test

Signed-off-by: Robin Townsend <robin@robin.town>
2022-03-02 11:46:51 -05:00
Michael Telatynski
16e67e7716
Wrap all EventTiles with a TileErrorBoundary and guard parsePermalink (#7916)
Co-authored-by: Travis Ralston <travisr@matrix.org>
2022-03-01 08:41:48 +00:00
Michael Telatynski
482d756bd0
Ensure EventListSummary key does not change during backpagination (#7915) 2022-03-01 08:33:07 +00:00
Michael Telatynski
c257bc3f7a
Prefer RoomStateEvent.Update where possible as it fires far less (#7878) 2022-02-24 14:39:25 +00:00
Michael Telatynski
fe2fceb0ba
Tidy up timelineRenderingType to be passed over context (#7872) 2022-02-24 11:25:13 +00:00
J. Ryan Stinnett
d8ac7cf202
Fix thread summary layout for narrow right panel timeline (#7838) 2022-02-23 14:03:46 +00:00
Michael Telatynski
b0737b6e31
Throttle RoomState.members handlers (#7876) 2022-02-22 17:20:30 +00:00
Michael Telatynski
7fa01ffb06
Improve typing around event emitter handlers (#7816) 2022-02-22 12:18:08 +00:00
Michael Telatynski
5f5bb4a4fe
Consolidate TileShape into TimelineRenderingType (#7843) 2022-02-18 15:56:05 +00:00
Michael Telatynski
c2cf3a2d9e
Fix room create tile not showing up with hidden events shown (#7810)
* Replace m.room.create with enum

* Fix room create tile not showing up with hidden events shown
2022-02-15 21:05:41 +00:00
Michael Telatynski
0cf15d27dc
Fix edge cases around event list summaries with hidden events and redactions (#7797) 2022-02-14 23:58:29 +00:00
Germain
15a9303d29
Improve thread partitioning for 2nd degree relations (#7748) 2022-02-10 15:18:55 +00:00
Michael Telatynski
714136d4f7
Consolidate RedactionGrouper and HiddenEventGrouper into MELS (#7739) 2022-02-09 10:51:12 +00:00
Eric Eastwood
7fa27f5834
Add jump to date functionality to date headers in timeline v2 (#7339)
Fix https://github.com/vector-im/element-web/issues/7677

Utilizes MSC3030: https://github.com/matrix-org/matrix-doc/pull/3030

https://user-images.githubusercontent.com/558581/150060664-79627573-f4fd-497c-b726-dc3485854bd0.png
2022-01-27 16:32:12 -06:00
Michael Telatynski
074fec359b
Fix issue with tile error boundaries collapsing in bubbles layout (#7653) 2022-01-27 13:34:26 +00:00
Michael Telatynski
f2249b3e37
Fix CallEventGrouper map building to not occur during a Render phase (#7638) 2022-01-27 11:08:28 +00:00
Michael Telatynski
50f8c61fa8
Fix search results view for layouts other than Group/Modern (#7648) 2022-01-26 20:15:44 +00:00
Michael Telatynski
2f209c4346
Add grouper for hidden events (#7649) 2022-01-26 19:10:16 +00:00
Germain
038f67e844
Improved threads stability (#7639)
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-01-26 14:11:09 +00:00
Robin
cb152a575d
Unhide display names when switching back to modern layout (#7601) 2022-01-24 11:49:26 +00:00
Robin
f59ea6d7ad
Show a tile at beginning of visible history (#5887) 2022-01-20 09:51:31 +00:00
David Teller
6b870ba1a9
MSC3531 - Implementing message hiding pending moderation (#7518)
Signed-off-by: David Teller <davidt@element.io>
2022-01-17 16:04:37 +01:00
Michael Telatynski
8f60d8d2c7
Consider continuations when resolving whether a tile is last in section (#7461) 2022-01-10 12:53:37 +00:00
Michael Telatynski
13028d33c2
Move hideSender logic into state so it causes re-render (#7413)
* Move hideSender logic into state so it causes re-render

* change method signature
2021-12-23 16:03:25 +00:00
Michael Telatynski
314475985c
Fix bubble radius wrong when followed by a state event from same user (#7393) 2021-12-16 18:35:28 +00:00
Aaron Raimist
7b94e13a84 Merge branch 'develop' into sort-imports
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2021-12-09 08:34:20 +00:00
Germain
9d52c23e06
Add option to disable grouping in TimelinePanel (#7221) 2021-11-29 17:01:23 +00:00
Travis Ralston
3c06e7f7a0
Add option to change the size of images/videos in the timeline (#7017)
Co-authored-by: Šimon Brandner <simon.bra.ag@gmail.com>
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
Co-authored-by: Timo K <toger5@hotmail.de>
2021-11-17 15:19:30 +00:00
Aaron Raimist
f3867ad0a9 Merge branch 'develop' into sort-imports 2021-10-27 21:50:56 -05:00
Šimon Brandner
c3ad8b4eed
Cleanup re-dispatching around timelines and composers (#7023)
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2021-10-25 11:43:54 +00:00