Commit Graph

272 Commits (a6ddffe74c8f081e4a99ea087cfa51622a5c9769)

Author SHA1 Message Date
Jorik Schellekens 7bb7f30b8f missed one 2020-05-18 22:02:22 +01:00
Jorik Schellekens 4deeef5fca Remove ability to remove avatars 2020-05-18 16:57:00 +01:00
Jorik Schellekens 5380e76b7b lint 2020-05-18 16:43:47 +01:00
Jorik Schellekens 17f535e5f8 Fix review problems
- removed superfluous position and classes
- fixed compact view
- fixed event list summary avatar and text overlap
- fixed a problem where the mention list refuses to load.
2020-05-18 16:37:10 +01:00
Jorik Schellekens 5029c3f143 Implement IRC draggable display name width 2020-05-13 02:16:43 +01:00
Jorik Schellekens bc5fc57dd6 Lint
This is why we shouldn't rely on regex
2020-05-07 14:22:15 +01:00
Jorik Schellekens 771ae5e18f Fix encryption badge layouts and replies.
Begin removing dependence on slider.
Move settings to labs.
Username disambiguation.
2020-05-07 14:04:56 +01:00
Jorik Schellekens 10c8d253c8 Create irc layout 2020-05-07 14:04:33 +01:00
Jorik Schellekens e0c89f6180 Add switch between layout classes 2020-05-07 14:04:33 +01:00
Zoe 5ef06357f6 Merge branch 'develop' into foldleft/better-errors 2020-04-06 11:36:46 +01:00
J. Ryan Stinnett 86f39ee0ee Fix read marker visibility for grouped events
The recent "groupers" which extracted out timeline grouping logic forgot to
pass through the last event state for read marker computation. This causes the
read marker to become visible when e.g. returning to room if it was last placed
inside a grouped set of events (currently room creation and membership events).

Regressed by https://github.com/matrix-org/matrix-react-sdk/pull/4059
Related to https://github.com/vector-im/riot-web/issues/12338
2020-04-03 01:14:31 +01:00
Zoe 9c392ce8bb Merge branch 'develop' into foldleft/better-errors 2020-03-26 13:38:50 +00:00
Michael Telatynski 7224243e00 Break continuation on showHiddenEvents-rendered events
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-03-20 09:41:43 +00:00
Travis Ralston b06a82ee80 Use textForEvent to determine if an event is worth rendering 2020-03-04 11:44:12 -07:00
Travis Ralston d95f843cd0 Don't group blank membership changes
We already drop noop membership changes when they don't make it into a MELS, so we just need to make the MELS aware enough to drop messages early that are noops.

Fixes https://github.com/vector-im/riot-web/issues/12575
2020-03-02 17:52:20 -07:00
Michael Telatynski 9ff053c5a9 Fix MELS not breaking on day boundaries regression
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-02-29 00:09:19 +00:00
Travis Ralston b32fbcb64f Don't try to collapse zero events with a group
Fixes https://github.com/vector-im/riot-web/issues/12423

When events are redacted they fail to make it into the Grouper because the `shouldAddEvent` check blocks them from entering. However, the grouper expects that when `getTiles()` is called that there's events to group and dutifully grabs some context from the array. Because JavaScript is the least helpful language, `myArray[-1]` returns `undefined` or `null` and thus you get `cannot read 'sender' of undefined`.

Regressed in https://github.com/matrix-org/matrix-react-sdk/pull/4059
2020-02-25 15:40:15 -07:00
Zoe adf6dfe4ea Threaded through the event type to the user 2020-02-25 10:30:35 +00:00
Zoe 3302469a2b Catch errors sooner so users can recover more easily 2020-02-24 18:04:11 +00:00
Hubert Chathi 4a204b715d
Merge pull request #4059 from matrix-org/uhoreg/refactor_event_grouping
refactor event grouping into separate helper classes
2020-02-14 10:35:34 -05:00
Hubert Chathi be70ef44f8 lint 2020-02-11 15:34:14 -05:00
Hubert Chathi 4c5046afd5 refactor event grouping into separate helper classes 2020-02-11 15:19:32 -05:00
Michael Telatynski ee819dfdf8 fix call to SettngsStore.watchSetting, it takes a roomID 2020-02-11 09:32:09 +00:00
Michael Telatynski a8da4a3028 allow hiding of who is typing tile 2020-02-08 21:21:30 +00:00
David Baker 39e9bffe1f Make encryption events into bubble-style tiles
Factors out the verification tile stuff into encryption event
styles so we can reuse them betwen all the encryption event tiles.
Also makes the event list summary stuff even more gnarly by
putting the encryption event tile above the group. We really need
to refactor that. :/

Fixes https://github.com/vector-im/riot-web/issues/12006
2020-01-30 20:03:26 +00:00
Travis Ralston 0d2cb6e731 Import haveTileForEvent() from the right place 2019-12-22 21:23:07 -07:00
Travis Ralston 042bd35d79 Fix MatrixClientPeg imports 2019-12-22 21:15:54 -07:00
Travis Ralston d56f0f2a25 Convert many imports to handle ES6 exports
Reliant upon https://github.com/matrix-org/matrix-react-sdk/pull/3761
2019-12-22 21:04:42 -07:00
Michael Telatynski d22985f12e Migrate string refs over to createRef
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-12-08 12:16:17 +00:00
Travis Ralston 36f9fab474 Ensure read receipts end up with a valid reference to checkUnmounting
Fixes https://github.com/vector-im/riot-web/issues/11496
Fixes https://github.com/vector-im/riot-web/issues/11385
Fixes https://github.com/vector-im/riot-web/issues/10007
Fixes https://github.com/vector-im/riot-web/issues/9769

React does (kinda) bind `this._isUnmounting` for us in the context of the EventTile, but the EventTile then passes the function straight through to the ReadReceiptMarker component, which then binds it in the context of EventTile. This results in `this._mounted` being falsey all the time, preventing the ReadReceiptMarker from hitting the code where it updates rrInfo in its unmount. 

The velocity stuff is smart enough to realize that it has a read receipt and shuffles everything over by one, but when it goes to check the starting height (which will be null/undefined because the RRMarker didn't update it) it assumes it has never seen the receipt before and appends it again - this is what causes some holes/stacking.

By forcefully binding the `this._isUnmounting` function we ensure that the `this._mounted` variable is correctly referenced in the context of the MessagePanel, allowing the RRMarker to update its position, and therefore allowing the velocity behaviour to be consistent.
2019-11-28 19:45:37 -07:00
David Baker a2e3f64963 Change read markers to use CSS transitions
Removes one of the two places we use Velocity, so we're one step
closer to getting rid of it for good.

Should therefore fix the fact that Velocity is leaking data entries
and therefore <hr> elements.

Hopefully also makes the logic in getEventTiles incrementally simpler,
if still somwewhat byzantine.
2019-11-26 19:06:02 +00:00
Bruno Windels 32b6fccbfc fix double date separator 2019-11-22 17:26:14 +01:00
David Baker 7df8ef2f91
Merge pull request #3655 from matrix-org/t3chguy/fix_m.room.create_upgrade_notice
Show m.room.create event before the ELS on room upgrade
2019-11-22 13:41:36 +00:00
David Baker 25ba4c5f71 Fix read markers
init code needs to be a constructor or its run too late
2019-11-22 13:11:36 +00:00
David Baker 3f5a8faf37 PropTypes should be static 2019-11-22 13:01:56 +00:00
David Baker 6d4abeef45 Convert MessagePanel to React class
I was about to add the getDerivedStateFromProps function to change
how read markers worked, but doing that in an old style class
means the statics object, so let;s just convert the thing.
2019-11-22 12:07:25 +00:00
Michael Telatynski a02a285058 Show m.room.create event before the ELS on room upgrade
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-11-22 10:24:51 +00:00
Michael Telatynski 3b8cb42108 Fix Room Create ELS using MXID instead of newly set Displayname/Avatar 2019-10-26 09:31:45 +01:00
Michael Telatynski f2d73793ee delint again
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-09 12:51:08 +02:00
Michael Telatynski 9331ca9d07 delint
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-09 12:51:08 +02:00
Michael Telatynski 6be318b59d Only insert ELS if it'll be non-empty
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-09 12:51:08 +02:00
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