Commit Graph

248 Commits (be7fb33a674cf10c04b64af7e40d2c0270faf42d)

Author SHA1 Message Date
Bruno Windels 4e382b1dd9 rename onWidgetLoad to onHeightChanged
as it's easy to confuse it with room widgets, but has nothing to do with it.
2019-03-07 17:02:19 +01:00
Bruno Windels 8bb8ec141e clear min-height on timeline resets and other occasions where we load it 2019-02-26 10:49:03 +01:00
Bruno Windels 32f055bec2 clarify why we need this 2019-02-26 10:49:03 +01:00
Bruno Windels db7203ed71 make sure the min-height doesn't get cleared by checkScroll 2019-02-26 10:49:03 +01:00
Bruno Windels f7ea9cfeb2 rename all instances of permalinkCreator 2019-02-25 18:43:08 +01:00
Bruno Windels f97ea37717 permalink is one word 2019-02-25 18:43:08 +01:00
Bruno Windels 29be28919d create permalink creator in roomview and pass it on to the event tiles 2019-02-25 18:43:08 +01:00
Bruno Windels 3d393b654b clear min-height on ScrollPanel::componentDidUpdate to catch all cases 2019-02-04 18:27:22 +00:00
Bruno Windels 25aa58f29f increase/clear min-height on timeline on new message(s)
depending on whether the typing bar is visible
2019-01-21 17:35:40 +01:00
Bruno Windels c9d5c4903b set min-height of messagelist to current height when showing typing bar
this ensures the timeline never shrinks, and avoids jumpiness when
typing bar disappears again.
2019-01-18 18:53:54 +01:00
Bruno Windels 0212df922a dont render who is typing tile when no room available (like in notif panel) 2018-11-30 13:59:00 +01:00
Bruno Windels 8ddd2dd078 scroll down when showing typing notif and stuck at bottom 2018-11-13 09:15:16 +01:00
Bruno Windels 7df47cbc87 move typing notifications to WhoIsTypingTile, shown in ScrollPanel 2018-11-12 16:09:51 +01:00
Bruno Windels 5128386160 allow read receipts without an existing member in MessagePanel 2018-10-10 16:15:20 +02:00
Bruno Windels 0767c278e7 put userId next to member in read receipt, fall back when member missing 2018-10-10 16:14:09 +02:00
Michael Telatynski 7d19841e68
delint
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-06-16 09:48:57 +01:00
Michael Telatynski 61e09395d0
split continuations if longer than N
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-06-16 09:45:06 +01:00
Luke Barnard 01dd494f50 Make stickers/messages continuations of each other 2018-04-06 17:47:44 +01:00
Luke Barnard 008572afe1 Revert "Handle non-m.room.message event types."
This reverts commit f8d7ab10fa.
2018-04-06 16:42:59 +01:00
Richard Lewis ff0834ad9d Add comment. 2018-03-29 21:31:09 +01:00
Richard Lewis b2bf4d4709 Merge branch 'develop' of https://github.com/matrix-org/matrix-react-sdk into rxl881/snapshot 2018-02-23 15:37:33 +00:00
Richard Lewis f8d7ab10fa Handle non-m.room.message event types. 2018-01-17 17:19:20 +00:00
Michael Telatynski b526fc057c Add formatFullDateNoTime to DateUtils and stop passing 12/24h to DateSep 2018-01-14 18:32:17 +00:00
Michael Telatynski 1a7dc22a8d
make wantsDateSeparator generic and throw into DateUtils
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-01-10 12:06:24 +00:00
Aidan Gauland 35780f5ae0 Remove use of deprecated React.PropTypes
Replace all uses of React.PropTypes with PropTypes and importing PropTypes from
'prop-types'.
2017-12-26 14:03:18 +13:00
Travis Ralston ae10a11ac4 Convert synced settings to granular settings
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-10-29 01:43:52 -06:00
Luke Barnard 39fa866d68 Merge pull request #1535 from matrix-org/luke/fix-interactable-greyed-ui
Swap from `ui_opacity` to `panel_disabled`
2017-10-25 15:47:18 +01:00
Luke Barnard b1f2a6c1e9 Dramatically simplify use of mx_fadable
by applying it to parent elements of things that need to be faded.
2017-10-25 15:15:49 +01:00
Michael Telatynski 1bbc26a27f
fix missing date sep caused by hidden event at start of day
if first event in day was hidden, the date sep would go missing as the next event would compare its date to the hidden one instead of the one before it
due to naive N-1 check rather than a previous valid event comparison, now fixed by comparing date against the first event in MELS instead.

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-10-25 12:52:51 +01:00
Luke Barnard 2f8f2ce76e Swap from `ui_opacity` to `panel_disabled`
to simplify the process of disabling panels in the UI.
2017-10-25 11:23:51 +01:00
Luke Barnard d3f9a3aeb5 Run eslint --fix
Fixing 1000s of lint issues. Some rules cannot be `--fix`ed but this goes some way to linting the entire codebase.
2017-10-11 17:56:17 +01:00
Matthew Hodgson b06d540f4c Merge pull request #1388 from matrix-org/t3chguy/start_mels_expanded
start MELS expanded if it contains a highlighted/permalinked event.
2017-09-17 22:09:44 +01:00
turt2live 0363f73e28 Fix the MessagePanel test
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-09-14 20:57:28 -06:00
turt2live 6e00f70320 Hide read receipts and typing notifs for ignored users
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-09-14 20:25:51 -06:00
turt2live 2e72d6cd7c Hide events that were sent by ignored users
This code only kicks in if the user was ignored after an event was sent. The homeserver should prevent other events from coming in.

Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-09-14 20:16:56 -06:00
Michael Telatynski f612b1933b
start MELS expanded if it contains a highlighted/permalinked event.
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-09-14 17:53:47 +01:00
David Baker 609d61d53c Revert "Implement sticky date separators" 2017-09-06 17:40:58 +01:00
Luke Barnard a29e7da06b Merge branch 'develop' into luke/feature-sticky-date-separators 2017-08-30 14:06:06 +01:00
Luke Barnard d516906b36 Implement sticky date separators
Use `react-sticky` to implement sticky date separators. This will pin a date separator to the top of the timeline panel when the separator scrolls out of the top of the view.

A known issue of this is that the spinner, which is in line with event tiles in the timeline, will appear to push the stuck date separator down. In reality the first date separator after the spinner is in line with event tiles and is not stuck because the spinner forces the timeline to be scrolled slightly further down than it would be otherwise. But also, date separators in the timeline (not "stuck") have a greater height.

Ideally the date separator would be suppressed whilst back paginating, but this will cause the stuck separator to flicker on and off. This is why the suppression has been removed.
2017-08-30 13:52:46 +01:00
Michael Telatynski 282618d5a1
separate concepts of showing and managing RRs to fix regression 2017-08-30 13:18:14 +01:00
Michael Telatynski 615d96a065
catch hidden event being RM
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-18 11:53:52 +01:00
Michael Telatynski 14903274c0
Change OOO so that MELS generation will continue over hidden events
this fixes the scenario of N Member events, then an invisible event
e.g. (m.room.aliases) then more Member events. Pre hide-join-parts
this is how it worked.

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-16 13:20:32 +01:00
Luke Barnard 0079e70006 Display RM when it = a standalone member event
Standalone = not next to any member events in the timeline.

fixes vector-im/riot-web#4694
2017-08-14 15:40:49 +01:00
Michael Telatynski 3eb87e2aa3
change lastShownEventIndex -> lastShownEvent since some places
do not have the same i reference (namely MELS generation)
this way a member event at bottom of MELS (if is the last event
in the timeline will have last set appropriately)
2017-07-26 12:17:05 +01:00
Michael Telatynski a4abd1baa7
fix comment and remove unused const
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-07-22 12:03:32 +01:00
Michael Telatynski ae973e1e99
unrevert some more...
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-07-22 11:37:21 +01:00
Michael Telatynski 7e355f7cda
unrevert most of the logic.
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-07-21 23:18:18 +01:00
Michael Telatynski 1fa4fe0b9a
remove comments/commented code
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-07-21 22:51:31 +01:00
Michael Telatynski 5808fce60e
fix logic ordering
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-07-21 22:45:19 +01:00
Michael Telatynski 17758cd1db
attempt to incorporate more code #2
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-07-21 20:43:03 +01:00
Michael Telatynski e47e14ed19
attempt to incorporate more code #1
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-07-21 20:22:01 +01:00
Michael Telatynski 8c333dc3f7 remove debug and add comment
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-06-16 14:39:31 +01:00
Michael Telatynski f0f721aa32 make hiding redactions use new pattern
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-06-15 20:22:38 +01:00
Michael Telatynski cebb7182f0 try to make hiding events work with read markers
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-06-15 20:17:59 +01:00
Michael Telatynski c53fb08453 pass user settings from above
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-06-15 20:02:17 +01:00
Michael Telatynski 4b34a2b169 modernize imports
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-06-15 19:57:48 +01:00
Michael Telatynski 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
Michael Telatynski 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
Michael Telatynski 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
Michael Telatynski 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
turt2live ab1e277f5f Support 12hr time on DateSeparator
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-06-01 09:53:24 -06:00
Kegan Dougal 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
Matthew Hodgson 03194e66b3 actually wire up alwaysShowTimestamps 2017-05-27 00:14:16 +01:00
Kieran Gould 47e5e8d678 Moved isTwelveHour alllll the way up to TimelinePanel. 2017-05-19 23:04:37 +01:00
Luke Barnard 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
Luke Barnard 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
Luke Barnard 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
Matthew Hodgson 24f2aed45f summarise profile changes in MELS
fixes https://github.com/vector-im/riot-web/issues/3463
2017-04-23 04:05:50 +01:00
Luke Barnard c431c9ab22 Clarify comment 2017-04-18 15:18:21 +01:00
Luke Barnard 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
Luke Barnard 424aae6b91 Prevent the ghost and real RM tile from both appearing 2017-04-12 15:04:38 +01:00
Luke Barnard 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
Luke Barnard c0fc3ba3fe Make redactions appear when the event has been redacted (on Room.redaction) 2017-03-06 14:20:24 +00:00
Luke Barnard 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
Luke Barnard 2bd9885288 Start to show redacted events 2017-03-03 15:42:24 +00:00
David Baker 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
Luke Barnard f92708fbe6 In practice the MELS-1,2,3 solves nothing, revert it 2017-02-22 16:54:32 +00:00
Luke Barnard 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
Luke Barnard 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
Luke Barnard 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
David Baker 18d4d3392a Fix a bunch of linting errors
eslint --fix and a few manual ones
2017-01-20 14:22:27 +00:00
Luke Barnard 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
Luke Barnard 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
Luke Barnard 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
Richard van der Hoff 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
Richard van der Hoff 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
Luke Barnard 6b52b247e7 Update comment on MELS key 2016-12-15 18:26:41 +00:00
Luke Barnard 88aeb6417e Use the first member event ID or "initial" in the MELS key 2016-12-15 18:23:54 +00:00
Luke Barnard e7564f4dc5 Spelling 2016-12-15 13:16:36 +00:00
Luke Barnard 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
Luke Barnard 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
Kegan Dougal 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
Luke Barnard 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
Luke Barnard 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
Luke Barnard 2a1d32f4d5 Add key prop to memberlist summary 2016-11-11 13:49:25 +00:00
Luke Barnard 3ec7940d12 Inline renderEvents 2016-11-10 17:26:36 +00:00
Luke Barnard d2d7ebc979 correct comment 2016-11-10 17:22:16 +00:00
Luke Barnard dcbb31279f Prefer import React, set prevEvent to last MemberhsipChange 2016-11-10 14:08:11 +00:00
Luke Barnard 566034cf2b Render children EventTiles before passing to summary element 2016-11-10 13:25:48 +00:00
Luke Barnard 764959ec1c Comment on i after membershipchanges 2016-11-10 13:14:04 +00:00
Luke Barnard 0ec5eebfc9 Hoist isMembershipChange out of for loop 2016-11-10 13:03:17 +00:00
Luke Barnard d01bb0b78f Use sdk.getComponent 2016-11-10 13:01:48 +00:00
Luke Barnard 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
Luke Barnard 04a934f738 Trying to get rid of the date separator problem 2016-11-09 16:24:56 +00:00
Luke Barnard 2f02c4b84e WIP nicer join/part folding 2016-11-09 16:03:35 +00:00
Luke Barnard 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
Matthew Hodgson 46205ad83c back out small avatars for emotes for now as they conflict with the E2E artwork.
they will be reintroduced once we have lozenges
2016-09-11 22:49:05 +01:00
Matthew Hodgson 34bb37aaba layout for file & notif panel 2016-09-11 02:14:27 +01:00
Matthew Hodgson 7174648f94 don't show RRs if manageRRs is false 2016-09-08 03:01:38 +01:00
Matthew Hodgson e7074ef9af apply FilePanel css and fix filtering 2016-09-07 22:54:37 +01:00
wmwragg ddda435e9e Updated the MessagePanel to now take account of /me messages when working out if an event is a continuation message or not 2016-08-18 22:15:53 +01:00
Matthew Hodgson ebdac4ee50 first cut (untested) 2016-07-18 01:35:42 +01:00
David Baker 943d7e18e1 Add _ to internal member 2016-06-07 19:55:24 +01:00
David Baker d5a522fdfe Second attempt at fixing the Velocity memory leak
1) Correct fix for Velociraptor (we need to find the DOM node and pass that in)
2) Do the same leak fix for the read marker
3) Update the dependency to our fork which is fixed to make the call we do to release memory actually work.
4) Remove the velocity-ui-pack dependency which is unnecessary because velocity-ui is included in the velocity package
2016-06-07 18:22:01 +01:00
Richard van der Hoff ca0c697b6e Avoid rerendering during Room unmount
might speed up room changing by a few milliseconds
2016-04-22 17:06:53 +01:00
Richard van der Hoff fa34dee091 Rewrite Read-receipt animation
... hopefully fixing https://github.com/vector-im/vector-web/issues/1437 in the
process.

The idea here is that, when we remove a read-receipt from the DOM, we stash its
position in a map. Then, when the read-receipt appears again attached to
another event, we know where to start the transition.
2016-04-20 23:06:53 +01:00
Richard van der Hoff 568e7aef8b Avoid rerendering EventTiles when not necessary
Each individual eventtile isn't particularly expensive, but when you have 500
of them, they start adding up. Shuffle some of the stuff into MessagePanel, so
that we can shouldComponentUpdate EventTiles properly.
2016-04-19 19:41:43 +01:00
Matthew Hodgson 11f3d5f993 make the UI fadable to help with decluttering 2016-04-12 17:18:32 +01:00
Matthew Hodgson 8e48bed346 apparently we don't need this. i'm lost now 2016-04-11 17:32:10 +01:00
Matthew Hodgson 23d6edbf63 forceupdate the whole scrollPanel rather than the geminiPanel at vdh's PR review request 2016-04-08 20:21:27 +01:00
Matthew Hodgson 1d8b08040e incorporate PR feedback 2016-04-07 18:58:50 +01:00
Matthew Hodgson 7884c13d0d Merge branch 'develop' into matthew/preview_urls 2016-04-07 17:25:48 +01:00
Richard van der Hoff b64604964d Fix exception in key handling
Fix a typo introduced in PR #262 which caused scroll keys to throw console
errors.
2016-04-07 12:05:07 +01:00
Richard van der Hoff 8b8ee21765 Catch pageup/down and ctrl-home/end at the top level
Make the scroll keys work when the focus is outside the message panel.
2016-04-05 13:40:36 +01:00
Richard van der Hoff 0d7adae100 Back out animation timing changes for now
... since they seem to be a bit contentious
2016-04-05 10:46:08 +01:00
Matthew Hodgson 4388334e30 fix up scroll behaviour when loading widgets 2016-04-02 00:36:19 +01:00
Richard van der Hoff b6e4e9caf3 Fix a bug where we tried to show two ghost read markers at once.
I think this was responsible for the readmarker just disappearing rather than
animating.

While we're here, decrease the delay on the animation, and instead make it take
slightly longer to disappear.
2016-03-31 18:27:46 +01:00
Matthew Hodgson 5bd0303dda make it work, seemingly 2016-03-24 01:12:51 +00:00
Matthew Hodgson 151a9994ba WIP fix for image load popping 2016-03-24 00:13:32 +00:00
Richard van der Hoff 3736fcf80e Move read-marker past our own events when we switch to a room
This fixes an issue where the RM appeared before any events which were pending
when you switched away from that room
(https://github.com/vector-im/vector-web/issues/1241).

Also, fix a buglet in the MessagePanel which meant we didn't animate the
disappearance of a RM when it stayed at the same event but became
invisible. This didn't really cause any user-visible problems (because
typically we advance the RM at the same time as it became invisible), but
confused me a bit while I was trying to debug this.
2016-03-22 17:23:23 +00:00
Richard van der Hoff 8a4a810d1f Merge pull request #214 from matrix-org/rav/gemini-resize
Use our fork of react-gemini-scrollbar to fix resize issues
2016-03-14 13:59:11 +00:00
Richard van der Hoff 88b3f2ed8c Use our fork of react-gemini-scrollbar to fix resize issues
Rather than telling react-gemini-scrollbar to update every time something that
changes its size happens, try out our fork of it which uses some hackery to
listen for resizes.
2016-03-14 12:46:13 +00:00
Richard van der Hoff 3fd066c2d4 Put direct-linked events and search clickthroughs in the middle
We need two modes of operation for ScrollPanel.scrollToToken:

For jump-to-read-marker, we want it 1/3 of the way down the screen.
For search clickthrough, and hyperlinked events, we want put the event in the
*middle* of the screen.

Fixes https://github.com/vector-im/vector-web/issues/1032
2016-03-10 17:27:46 +00:00
Richard van der Hoff 928b2bb9a7 Use 'today' for the date separator for unsent messages
Fixes https://github.com/vector-im/vector-web/issues/1087, though we'll still
have problems if the unsent messages get out of order.
2016-03-10 14:16:31 +00:00
Richard van der Hoff 1a371b346e remove spurious debug 2016-03-09 15:51:17 +00:00
Richard van der Hoff b45c256427 Don't forceUpdate the message panel on resize
We don't really need to forceUpdate() the entire timeline panel every time
something might resize it. It is sufficient to forceUpdate the ScrollPanel.
2016-03-09 15:40:19 +00:00
Richard van der Hoff 6e23623c28 Fix checkScroll after image load
Make the onImageLoad handler call checkScroll on the right thing. This was
originally done in commit 99d2392, but got broken in the Great RoomView
Refactor of February 2016.
2016-03-07 22:23:14 +00:00
Richard van der Hoff 6e86d7553f Flatten arrays of components before adding to messagepanel li
Avoid updating the whole DOM when we paginating by making sure the keys are
right
2016-03-04 13:49:15 +00:00
Richard van der Hoff e634f98a13 Show spinners when forward/back paginating. 2016-02-25 18:44:07 +00:00
Richard van der Hoff 10b55036f9 Merge branch 'rav/roomview_works' into develop
Implementation of new read-marker semantics (PR #160).
2016-02-24 17:26:46 +00:00
Richard van der Hoff 68e0192acc reinstate event-continuation logic
Forgot to set prevEvent in the merge from develop, so we were never applying
the correct continuation logic.
2016-02-23 18:43:51 +00:00
Richard van der Hoff ac4b36c0dd Merge commit '99d2392' into rav/roomview_works
Conflicts:
	src/components/structures/RoomView.js
2016-02-23 13:32:23 +00:00
Richard van der Hoff 776b6a26c3 Merge commit '9a0ea56' into rav/roomview_works
Conflicts:
	src/components/structures/RoomView.js
2016-02-23 13:02:02 +00:00
Richard van der Hoff 4c571cf1bf Merge commit 'eb91faf' into rav/roomview_works
Conflicts:
	src/components/structures/RoomView.js
2016-02-23 12:56:54 +00:00
Richard van der Hoff db09d3d9e4 Move ghost-read-marker logic to MessagePanel 2016-02-15 23:05:58 +00:00
Richard van der Hoff 63511d4e71 Refactor the EventTile loop
... so that it's a bit more tractable.
2016-02-15 23:05:42 +00:00
Richard van der Hoff 0e0d0cf4f5 post-review tweaks 2016-02-11 15:38:13 +00:00
Richard van der Hoff c3692378fa Factor a stateless messagepanel out from RoomView 2016-02-10 18:41:47 +00:00