1
0
mirror of https://github.com/matrix-org/matrix-react-sdk.git synced 2025-07-16 22:01:54 +03:00
Commit Graph

192 Commits

Author SHA1 Message Date
a0a4fe62d5 make hide joins/parts work for MELS and highlighted/permalink event
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-06-15 19:53:34 +01:00
c1cbdbcc4f Merge branches 'develop' and 'kegan/hide-join-part' of github.com:matrix-org/matrix-react-sdk into kegan/hide-join-part
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

# Conflicts:
#	src/components/structures/UserSettings.js
2017-06-12 13:22:52 +01:00
5e2e550bf9 don't lose date seperator when the first event of the new day is redacted
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-06-02 04:39:44 +01:00
d2d0ba952a allow hiding redactions. no point onAccountData as it'd cause a full
refresh, this may need to be handled differently in the future.
Currently handling same as the new timestamp stuff

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-06-02 04:23:07 +01:00
ab1e277f5f Support 12hr time on DateSeparator
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-06-01 09:53:24 -06:00
fc93517094 WIP join/part hiding
- Doesn't work with MELS
- Doesn't work with read markers
- Doesn't work with jumping to events

Shelving this for now as I fix some of this mess.
2017-05-31 13:36:19 +01:00
03194e66b3 actually wire up alwaysShowTimestamps 2017-05-27 00:14:16 +01:00
47e5e8d678 Moved isTwelveHour alllll the way up to TimelinePanel. 2017-05-19 23:04:37 +01:00
bfa3123f9b Combine data-scroll-token and -contained-scroll-tokens
- Instead of using one attribute, use one that might just contain one token
 - Use the first token when tracking a child
 - Mandate that no commas can be in individual tokens
2017-05-04 10:00:13 +01:00
3f25928380 Fix jumping to an unread event when in MELS
This adds the `data-contained-scroll-tokens` API to elements in `ScrollPanel` which allows arbitrary containers of elements with scroll tokens to declare their contained scroll tokens. When jumping to a scroll token inside a container, the `ScrollPanel` will act as if it is scrolling to the container itself, not the child.

MELS has been modified such that it exposes the scroll tokens of all events that exist within it.This means "Jump to unread message" will work if the unread event is within a MELS (which is any member event, because even individual member events surrounded by other events are put inside a MELS).
2017-05-02 16:34:39 +01:00
2012513c0e Allow MELS to have its own RM
This inserts a RM if any of the events in a MELS if the RM is tracking an event within it.

Fixes https://github.com/vector-im/riot-web/issues/3749
2017-04-27 14:16:50 +01:00
24f2aed45f summarise profile changes in MELS
fixes https://github.com/vector-im/riot-web/issues/3463
2017-04-23 04:05:50 +01:00
c431c9ab22 Clarify comment 2017-04-18 15:18:21 +01:00
d38520dfb4 Undo change in ghost RM logic
Put a XXX to indicate that the ghost tile should be replaced with something mor e stable. As it stands, the ghost will appear, potentially at a different position to the RMs actual position
2017-04-18 15:17:42 +01:00
424aae6b91 Prevent the ghost and real RM tile from both appearing 2017-04-12 15:04:38 +01:00
d4ed9e816b Display timestamps and profiles for redacted events
This is part of fixing https://github.com/vector-im/riot-web/issues/3390
2017-03-16 17:00:10 +00:00
c0fc3ba3fe Make redactions appear when the event has been redacted (on Room.redaction) 2017-03-06 14:20:24 +00:00
edccfeb20b No text required, do not continuate after redacted even
It's curious, however, that a continuation occured after a redacted event, given that the event shouldn't have a sender
2017-03-06 10:26:26 +00:00
2bd9885288 Start to show redacted events 2017-03-03 15:42:24 +00:00
fd3c1ab9e1 Merge pull request #718 from matrix-org/luke/ignore-no-tile-events
Do not push a dummy element with a scroll token for invisible events
2017-02-23 10:17:16 +00:00
f92708fbe6 In practice the MELS-1,2,3 solves nothing, revert it 2017-02-22 16:54:32 +00:00
581c8c138e Do not push a dummy element with a scroll token for invisible events
If an event does not `wantTile`, do not add a dummy element with a scroll token, as this can be unperformant with 1000s of events.
2017-02-21 15:01:18 +00:00
6fead66f89 MELS: check scroll on load + use mels-1,-2,... key
To fix https://github.com/vector-im/riot-web/issues/2916, force the checking of scroll position by calling _onWidgetLoad (might need renaming...) when a MELS is expanded/contracted.

Also use an keying scheme for MELS that doesn't depend on the events contained, but rather a simple incrementing index based on the order of the MELS as it appears amongst all MELS.
2017-02-20 10:59:11 +00:00
bd106968ce Merge branch 'develop' into luke/fix-join-part-collapsing-causality
Conflicts:
	src/components/structures/MessagePanel.js
2017-01-24 14:22:18 +00:00
18d4d3392a Fix a bunch of linting errors
eslint --fix and a few manual ones
2017-01-20 14:22:27 +00:00
d2d78919ce Overhaul MELS to deal with causality, kicks, etc.
The MELS can now deal with arbitrary sequences of transitions per user, where a transition is a change in membership. A transition can be joined, left, invite_reject, invite_withdrawal, invited, banned, unbanned or kicked.

Repeated segments (modulo 1 and 2), such as joined,left,joined,left,joined will be handled and will be rendered as " ... and 10 others joined and left 2 times and then joined". The repeated segments are assumed to be at the beginning of the sequence. This could be improved to handle arbitrary repeated sequences.
2017-01-12 18:55:53 +00:00
6e2a75bbee Fix redacted member events being visible
This was due to the `MemberEventListSummary` not ignoring redacted joins/leaves. This was also causing bug #2765.
2017-01-11 11:27:07 +00:00
2a63017372 Account for timezone in date separator calculation (#595)
* Account for timezone in date separator calculation

Decide on date separators using MatrixEvent.getDate(). This requires matrix-org/matrix-js-sdk#311
2016-12-22 17:54:30 +00:00
4804fb3a1c Revert "Fix performance issues with wantsDateSeperator"
This change broke timezone handling, so that date-separators are shown at the
wrong time of day.

This reverts commit b908e7ef29.
2016-12-21 09:48:41 +00:00
b8c0fa507e Merge pull request #590 from matrix-org/luke/fix-membereventlistsummary-performance
Improve the performance of MemberEventListSummary
2016-12-16 10:53:51 +00:00
6b52b247e7 Update comment on MELS key 2016-12-15 18:26:41 +00:00
88aeb6417e Use the first member event ID or "initial" in the MELS key 2016-12-15 18:23:54 +00:00
e7564f4dc5 Spelling 2016-12-15 13:16:36 +00:00
b908e7ef29 Fix performance issues with wantsDateSeperator
This was causing rendering of MemberEventListSummary to be quite slow. Instead of creating two date objects, just check to see if they represent timestamps that happened on different days.
2016-12-14 16:01:32 +00:00
c07e5d4992 Improve the performance of MemberEventListSummary
- The MessagePanel now uses the same key for the MELS instances rendered so that entirely new instances are not created, they are simply passed new props (namely when new events arrive).
- MELS itself now uses `shouldComponentUpdate` so that it only updates if it is given a different number of events to previous or if it is toggled to expand.
2016-12-14 15:31:35 +00:00
49010c3e93 Refactor how 'readReceipts' are passed into EventTiles
Instead of passing a list of RoomMembers, pass a list of records with a
`roomMember` prop and a `ts` prop so we can display the timestamp on hover.
2016-12-09 11:24:10 +00:00
beecbc7cd7 Fix join/part collapsing regressions (#553)
* Fix join/part collapsing regressions

* Simplify loop

* Explain e,e

* Explain return null in _renderSummary

* Kill it properly

* Move . to _renderSummary

* Only use the first and last events to decide whether a net change has occured

* Do not sort events by TS before summarising

* fix loop and comment

* remove data-number-events

* Better explanation comment in _renderSummary

* Less tortuous comment
2016-11-16 14:42:30 +00:00
b718f1542c Fix infinite loop when there are a lot of invisible events (#554)
Instead of using a window of a fixed number of events, unpaginate based on the distance of the viewport from the end of the scroll range.

The ScrollPanel uses the scrollTokens to convey to its parent (the TimelinePanel, in this case) the point to unpaginate up to. The TimelinePanel then takes a chunk of events off the front or back of `this.state.events` using `timelineWindow.unpaginate`.

Fixes https://github.com/vector-im/vector-web/issues/2020
2016-11-16 14:25:52 +00:00
2a1d32f4d5 Add key prop to memberlist summary 2016-11-11 13:49:25 +00:00
3ec7940d12 Inline renderEvents 2016-11-10 17:26:36 +00:00
d2d7ebc979 correct comment 2016-11-10 17:22:16 +00:00
dcbb31279f Prefer import React, set prevEvent to last MemberhsipChange 2016-11-10 14:08:11 +00:00
566034cf2b Render children EventTiles before passing to summary element 2016-11-10 13:25:48 +00:00
764959ec1c Comment on i after membershipchanges 2016-11-10 13:14:04 +00:00
0ec5eebfc9 Hoist isMembershipChange out of for loop 2016-11-10 13:03:17 +00:00
d01bb0b78f Use sdk.getComponent 2016-11-10 13:01:48 +00:00
5f0b891d47 Add date seperator to the expanded events
netsplits across midnight is not handled, and @richvdh suggested splitting the list in two
2016-11-09 17:44:43 +00:00
04a934f738 Trying to get rid of the date separator problem 2016-11-09 16:24:56 +00:00
2f02c4b84e WIP nicer join/part folding 2016-11-09 16:03:35 +00:00
cd241a4a17 Truncate consecutive member events
This is needed for the IRC bridge to be able to do full membership list syncing without cluttering the message panel.
2016-11-08 16:34:02 +00:00