Commit graph

231 commits

Author SHA1 Message Date
Michael Telatynski
efde7f289f Use EventListSummary on m.room.create events and state events thereafter
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-09 12:50:03 +02:00
Michael Telatynski
abf111ecbd Migrate away from React.createClass for non-auth structures. React 16 :D
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-08-30 10:34:59 +01:00
J. Ryan Stinnett
674f33917f Remove editing feature flag
Part of https://github.com/vector-im/riot-web/issues/10282
2019-07-17 16:56:15 +01:00
Michael Telatynski
429b8e94df MELS handle m.room.third_party_invite
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-07-03 08:58:34 +01:00
Bruno Windels
8394e162ad cache setting where it's easy 2019-06-24 16:53:31 +02:00
Bruno Windels
5fa3f70fb4 feature flag for displaying edits as well 2019-06-21 18:32:15 +02:00
Bruno Windels
c4fc2a8089 remove redundant localecho part from method name 2019-06-18 14:57:58 +02:00
Bruno Windels
02c9e29937 use renamed method that also takes local redactions into account now 2019-06-18 13:47:33 +02:00
Bruno Windels
41e41269dc use EditorStateTransfer to pass on state to newly mounted editor 2019-06-12 18:52:34 +02:00
J. Ryan Stinnett
4956dcf45e
Merge pull request #3056 from matrix-org/jryans/read-receipts-relations-review
Ensure we always show read receipts even with hidden events
2019-06-04 16:24:05 +01:00
J. Ryan Stinnett
8e811fc78e Use the existing room object
For some reason, we were getting the room object for every event during read
receipt processing, even though it has been passed in as a prop already.
2019-06-04 16:01:02 +01:00
J. Ryan Stinnett
06547ef5b3 Cache hidden events setting
Settings is too expensive to query in a hot code path, so this caches the value
on the MessagePanel component instead.
2019-06-04 16:01:02 +01:00
J. Ryan Stinnett
e5abb2e089 Add more read receipt comments 2019-06-04 11:12:52 +01:00
J. Ryan Stinnett
4cea2f0af1 Ensure we always have receipts for users we've seen
This adds additional receipt storage to so that we can handle cases where the
receipts and events lists get out of sync. If we ever find a user who previously
had a receipt but momentarily no longer does, we recover their previous receipt
and go with that until we hear something new.

Part of https://github.com/vector-im/riot-web/issues/9745
2019-06-03 15:05:03 +01:00
J. Ryan Stinnett
f8eb449dd7 Show read receipts for hidden events on last shown event
This changes how we determine read receipts for the entire message panel. We now
calculate read receipts for all events up front, which makes it easier to handle
hidden events by moving their read receipts up to the last shown event for
display purposes.

Part of https://github.com/vector-im/riot-web/issues/9745
2019-06-03 15:05:03 +01:00
J. Ryan Stinnett
91e86d2b02 Fix linting in MessagePanel 2019-06-03 15:03:59 +01:00
Bruno Windels
4626581dbe scroll event into view when starting to edit 2019-05-24 15:38:51 +02:00
J. Ryan Stinnett
238e967470 Only show reactions in main message timeline
This fixes an error that crashed that notifications panel because it was trying
to read reactions, even though we currently don't aggregate them there. This
change is more explicit about exactly which views should try to show reactions.

Fixes https://github.com/vector-im/riot-web/issues/9713
2019-05-21 18:27:10 +01:00
Michael Telatynski
868c99d140 Hide WhoIsTyping component if the MessagePanel is shaped e.g file grid
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-05-20 21:53:15 +01:00
Bruno Windels
1368a5eb80
Merge pull request #2996 from matrix-org/bwindels/composerdesign
Message editing: apply design
2019-05-20 08:42:41 +00:00
J. Ryan Stinnett
45cdf880b1 Change setting style 2019-05-17 17:43:08 +01:00
J. Ryan Stinnett
3a405701a3 Debug: Show all events 2019-05-17 16:34:01 +01:00
Bruno Windels
9a3752c571 show message editor in textual body instead of replacing event tile 2019-05-17 15:30:07 +01:00
Bruno Windels
3ef631191b show sending status for replacements as well on local echo 2019-05-16 14:44:00 +01:00
Bruno Windels
5805a88ab9 adjust to js-sdk changes of marking original event as replaced 2019-05-15 11:54:26 +01:00
Bruno Windels
6599d605cd wire up editor component (somewhat hacky) 2019-05-14 15:38:16 +01:00
J. Ryan Stinnett
8fdb59a909 Use basic read path from JS SDK for reactions
This displays existing reactions correctly in the action bar and reaction row,
but it doesn't yet update after a new reaction is sent.
2019-05-10 17:19:27 +01:00
J. Ryan Stinnett
74189b2164 Fix indentation in MessagePanel 2019-05-10 17:19:27 +01:00
Bruno Windels
3e13a11372 restore scroll position after hiding typing notifs with checkScroll 2019-03-20 17:38:05 +01:00
Bruno Windels
85d305430f no need for forceUpdate here 2019-03-20 17:37:34 +01:00
Bruno Windels
f164a78eaa reimplement typing notif timeline shrinking prevention
instead of setting a min-height on the whole timeline,
track how much height we need to add to prevent shrinking
and set paddingBottom on the container element of the timeline.
2019-03-20 17:10:30 +01:00
Bruno Windels
1bdbf3086f emit timeline_resize in MatrixChat based on ResizeNotifier
as it's used in PersistentElement which could be used at various places
2019-03-15 10:16:21 +01:00
Bruno Windels
891e343df6 create ResizeNotifier to derive which areas of the app resize and emit 2019-03-15 10:16:21 +01:00
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