Commit graph

274 commits

Author SHA1 Message Date
Luke Barnard
7f551f517b Add comments to _onDecrypted 2017-12-15 14:01:07 +00:00
Luke Barnard
a516c18cc5 Indicate event tile resize after rendering 2017-12-15 13:58:58 +00:00
Michael Telatynski
5c229b9ef8
DRY matrix.to link generation so it is all changeable in one class
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-12-12 23:33:40 +00:00
Michael Telatynski
0f85391587
Implement Rich Quoting/Replies
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-12-10 12:50:41 +00:00
Luke Barnard
196e1a4f66 Fix one variant of a scroll jump that occurs when decrypting an m.text 2017-12-08 15:25:14 +00:00
Michael Telatynski
c0002e7778
Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/state_events 2017-11-15 16:03:07 +00:00
Michael Telatynski
5563b71c47
differentiate between state events and message events
so that people can't fake state event types and have them rendered.

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-11-15 15:56:54 +00:00
Stefan Parviainen
8083dccfa5 De-partify SenderProfile
Signed-off-by: Stefan Parviainen <pafcu@iki.fi>

Also, text does not need to be EmojiText
2017-10-16 20:53:43 +02:00
Travis Ralston
c34b55c6c7 Merge branch 'develop' into travis/pinned_messages 2017-10-14 16:10:32 -06: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
Travis Ralston
3a58e1c066 Show pinned message changes in the timeline
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-09-29 08:56:21 -06:00
Michael Telatynski
755f22a7fa
shelving.
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-09-14 17:39:18 +01:00
Michael Telatynski
8ab96ae2ff
render m.room.aliases events
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-09-14 13:43:46 +01:00
Luke Barnard
ebc1993530 Implement Flair
Add 14x14 group avatars next to sender profiles.
2017-08-30 11:10:49 +01:00
Luke Barnard
acc54b97f1 Implement TextualEvent tiles for im.vector.modular.widgets
E.g. "Bob added a Acme widget", "Susan removed a Giraffe widget"

The name is calculated by taking the `name` in the event content, falling back on the `type`, falling back on the previous content `type`. This is then capitalised.
2017-08-18 10:35:33 +01:00
Michael Telatynski
b19c1010aa
Merge branches 'develop' and 't3chguy/i18n_analytics' of github.com:matrix-org/matrix-react-sdk into t3chguy/i18n_analytics
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

# Conflicts:
#	src/Analytics.js
2017-08-10 13:54:55 +01:00
Richard van der Hoff
da85cb9f45 Show unencrypted messages as unencrypted
Previously, we were special-casing outgoing messages such that they were shown
as encrypted even when encryption had failed for some reason.

There's no need for this: outgoing messages have a working isEncrypted() method
which we can use to show whether the event has been encrypted yet. Arguably we
could do better than an open padlock for events in the 'encrypting' send state,
but I'm not really sure what.
2017-08-08 17:49:41 +01:00
Michael Telatynski
bf98c0da7c
un-i18n Modal Analytics
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-07-27 17:19:18 +01:00
Luke Barnard
08cc0c421d insert_displayname -> insert_mention 2017-07-20 18:02:54 +01:00
Luke Barnard
0419eff230 Insert pill onClick of timeline profile
When clicking someone in the timeline, insert a user pill instead of the plaintext "displayname:"
2017-07-20 15:46:36 +01:00
Richard van der Hoff
4998d1b359 Prepare for asynchronous e2e APIs
the js-sdk is making some of its APIs asynchronous, and adding an `initCrypto`
method which you have to call.

Particular methods we need to worry about are:

* `getStoredDevice`
* `getStoredDevicesForUser`
* `getEventSenderDeviceInfo`
* `isEventSenderVerified`
2017-07-18 23:47:36 +01:00
David Baker
bc8c2d442b WithMatrixClient -> withMatrixClient
because we're using it as a function rather than a React component
2017-07-07 11:34:20 +01:00
turt2live
a22f14e910 Use 12h timestamps when enabled in RR
Fixes vector-im/riot-web#4393 
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-06-22 08:54:34 -06:00
Luke Barnard
ce0977373e Merge pull request #1058 from matrix-org/luke/fix-event-id-state
Control currently viewed event via RoomViewStore
2017-06-08 18:10:29 +01:00
Luke Barnard
d3cf78ff5a Control currently viewied event via RoomViewStore
Fix for https://github.com/vector-im/riot-web/issues/4224

Due to the way `MatrixChat` does a state update when the `view_room` dispatch fires and a second update when `RoomViewStore` sends an update, the current event ID and room ID were becoming out of sync. The solution devised was to have the event ID managed by the `RoomViewStore` itself and do any defaulting there (for when we revisit a room that we saved scroll state for previously).

This required a few changes:
 - The addition of `update_scroll_state` in `RoomViewStore` allows the `RoomView` to save scroll state for a room before swapping to another one. Previously the caching of scroll state was done in `RoomView`.
 - The `view_room` dispatch now accepts an `event_id`, which dictates which event is supposed to be scrolled to in the `MessagePanel` when a new room is viewed. It also accepts `event_offset`, but currently, this isn't passed in by a dispatch in the app, but it is clobbered when loading the default position when an `event_id` isn't specified. Finally, `highlighted` was added to distinguish whether the initial event being scrolled to is also highlighted. This flag is also used by `viewRoom` in `MatrixChat` in order to decide whether to `notifyNewScreen` with the specified `event_id`.
2017-06-08 14:17:49 +01:00
Kegan Dougal
00df956ca2 Add remaining translations!
Every file has now been manually vetted by me. Due to the extent of
the changes, I've been unable to test all scenarios to make sure this
all works. :(
2017-06-08 14:08:51 +01:00
Matthew Hodgson
00750b4686 quick and dirty RoomAvatarEvent 2017-06-01 13:31:24 +01:00
daniel tygel
f4e5039e70 add string to translate 2017-05-30 19:01:23 -03:00
David Baker
c22978d033 Merge remote-tracking branch 'origin/develop' into dbkr/translations 2017-05-26 17:30:02 +01:00
David Baker
5c359e63ab Bulk change counterpart imports
to use languageHandler wrapper func
2017-05-25 11:39:08 +01:00
David Baker
d419c42a4f Squash merge https://github.com/matrix-org/matrix-react-sdk/pull/801 2017-05-23 15:16:31 +01:00
Kieran Gould
47e5e8d678 Moved isTwelveHour alllll the way up to TimelinePanel. 2017-05-19 23:04:37 +01:00
Kieran Gould
6b32975e0c Add 12 hour class to mx_EventTile 2017-05-19 22:36:13 +01:00
Maxwell Kepler
008cc95e9c Add 12 hour support 2017-05-19 22:29:49 +01:00
Matthew Hodgson
486301cffb remove dodgy heuristics for hiding dates on RRs and use DateUtils instead.
reverts 5d99d68a64
fixes https://github.com/vector-im/riot-web/issues/3523
2017-05-15 02:55:07 +01:00
Matthew Hodgson
c5f2b69e48 add alt attributes to e2e icons on msgs; fixes https://github.com/vector-im/riot-web/issues/3786 2017-05-15 01:37:24 +01:00
Luke Barnard
63224ff164 Add mx_EventTile_emote class 2017-04-26 18:00:25 +01:00
Michael Telatynski
33e841a786 move user settings outward and use built in read receipts disabling
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-04-22 15:40:29 +01:00
turt2live
e4c4adc517 Add option to hide other people's read receipts.
Addresses vector-im/riot-web#2526

Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-04-21 14:28:28 -06:00
Luke Barnard
6010350ce5 Implement power-level changes in timeline
Fixes https://github.com/vector-im/riot-web/issues/266
2017-04-06 17:02:35 +01:00
Luke Barnard
a4b4c3feb8 Read Receipt offset
Read receipts were always one read receipt to the left further than they should have been. This fixes that and simplifies the logic.
2017-03-27 14:34:05 +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
c98a2144e9 Merge branch 'develop' into luke/add-onclick-permalinks 2017-03-09 09:59:09 +00:00
Luke Barnard
173daddb04 Comment typo 2017-03-09 09:56:52 +00:00
David Baker
676c5c21c1 Merge pull request #739 from matrix-org/luke/visible-redactions
Show message redactions as black event tiles
2017-03-09 09:41:31 +00:00
Luke Barnard
2513bfa612 Add onClick to permalinks to route within Riot 2017-03-08 16:55:44 +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
5ef61b7c35 Only show a redaction tile for messages 2017-03-03 16:45:29 +00:00
Luke Barnard
6c32e3720b Remove seemingly unused "bounce" 2017-03-03 15:51:14 +00:00
Luke Barnard
2bd9885288 Start to show redacted events 2017-03-03 15:42:24 +00:00
Luke Barnard
923ea9c6aa Change timestamp permalinks to matrix.to 2017-03-03 10:42:44 +00:00
Luke Barnard
5be2c62011 Fix a couple of issues with RRs
- Shift to the left _before_ adding an avatar so that there are always `MAX_READ_AVATARS` visible, instead of there being `MAX_READ_AVATARS + 1` avatars displayed following the first "collapse".
- Use `right` instead of `left` so that double-digit remainders don't get overlapped.
2017-02-27 11:16:13 +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
Richard van der Hoff
ba2460aef4 Merge pull request #618 from matrix-org/rav/async_dialog
Allow Modal to be used with async-loaded components
2017-01-19 16:08:30 +00:00
Matthew Hodgson
a18d94099e switch to using <span/> for edit button 2017-01-17 14:11:15 +00:00
Richard van der Hoff
ac22803ba0 Allow Modal to be used with async-loaded components
Add Modal.createDialogAsync, which can be used to display asynchronously-loaded
React components. Also make EncryptedEventDialog use it as a handy
demonstration.
2017-01-16 17:18:38 +00:00
Kegan Dougal
5d99d68a64 Show the full date and time if the receipt was sent days after the event 2016-12-09 11:43:23 +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
Kegan Dougal
bd7553d1ea Add read receipt times to the hovertip of read markers
Fixes #2709. Surprisingly, this data was never passed down to
ReadReceiptMarker.
2016-12-08 16:23:20 +00:00
Johannes Löthberg
f321c6c346 Strip (IRC) when clicking on username
Fixes vector-im/riot-web#2072.

Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2016-12-03 01:20:50 +01:00
Richard van der Hoff
b209cc551e Update eventtiles when the events are decrypted
Events are sometimes decrypted after they arrive, so add an eventlistener for
it and update the tile.
2016-11-15 11:12:52 +00:00
Richard van der Hoff
0e8a49ebb7 Update EventTile to use WithMatrixClient instead of MatrixClientPeg 2016-11-14 16:00:24 +00:00
Luke Barnard
d8bc4d9a6f Factor out avatar click leads to view_user 2016-11-10 15:18:59 +00:00
Matthew Hodgson
2c7c382d56 stop continuations leaking on filepanel 2016-09-16 02:40:09 +01:00
Matthew Hodgson
3fcea1bfc7 only apply verified css to genuinely verified tiles 2016-09-15 22:56:12 +01:00
Matthew Hodgson
b98c2ae25e update crypto state of the room in realtime when turned on 2016-09-15 19:25:53 +01:00
Matthew Hodgson
1899d61893 textual event for m.room.encryption 2016-09-15 17:01:02 +01:00
Matthew Hodgson
ce655c7f50 improve device info 2016-09-15 02:44:55 +01:00
Matthew Hodgson
0473b14564 fix e2e icon transitions 2016-09-14 01:25:43 +01:00
Matthew Hodgson
9b7ab46a72 dedicated dialog box for E2E messages 2016-09-12 23:42:24 +01:00
Matthew Hodgson
5a548c3d12 add an onclick to the e2e icons 2016-09-12 18:50:52 +01:00
Matthew Hodgson
13eed6cd39 fix NPE in EventTile 2016-09-12 17:29:26 +01:00
Matthew Hodgson
9eae1c5bb7 final e2e icons 2016-09-12 16:51:19 +01:00
Matthew Hodgson
3a1159ce12 e2e look & feel 2016-09-12 01:37:51 +01:00
Matthew Hodgson
e6b4b8c1cb bring back small avatars for info msgs otherwise the design breaks 2016-09-11 23:01:20 +01: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
Richard van der Hoff
96567dad0d Fix NPE when we don't know the sender of an event
Fixes a bug introduced in
https://github.com/matrix-org/matrix-react-sdk/pull/426.

Particularly when we are showing search results, we may not recognise the
sender of an event; attempting to create a MemberAvatar for it will lead to
null-reference errors.

Also a bit of untangling of the logic of needsSenderProfile. Since
https://github.com/matrix-org/matrix-react-sdk/pull/422,
EventTileType.needsSenderProfile was only being called on MessageEvents, and
therefore only returned true. It's a shame to see all this logic going into
EventTile rather than the individual EventTileTypes, but since it's there,
let's not leave the unused logic lying around in the EventTileType
implementations.
2016-08-25 16:55:09 +01:00
wmwragg
ae8234ffe3 Added event/info message avatars back in 2016-08-23 15:58:27 +01:00
wmwragg
993333490d Removal of the mini avatars for action (info) messages 2016-08-19 16:38:05 +01:00
wmwragg
afd1ab1582 Comment to describe what info messages are 2016-08-18 22:19:23 +01:00
wmwragg
a55c4a2a52 Initial pass at the /me and action messages, without name highlighting, and missing avatar for continuation messages after a /me or action message 2016-08-18 21:53:37 +01:00
wmwragg
52f5061cc5 Made the menu button a clickable image rather than an input element 2016-08-16 17:34:33 +01:00
wmwragg
58d9789645 Increase main avatar size 2016-08-16 16:03:34 +01:00
wmwragg
c359358101 Initial context menu positioning and style change 2016-08-16 11:59:26 +01:00
wmwragg
6fd61f5816 Initial reposition of the timestamp 2016-08-16 10:26:27 +01:00
wmwragg
6e7e091117 Refactor so that chevron and menu can be positioned independantly 2016-07-27 16:09:07 +01:00
wmwragg
0660b9feff Fixes to properly point to the moved components 2016-07-27 14:49:10 +01:00
wmwragg
4b26ac58af Re-modularised the context menus 2016-07-27 10:41:24 +01:00
wmwragg
dca4702b7b Fixed a bug where the contextual menu was being incorrectly positioned when zoom in on the webpage 2016-07-27 09:51:50 +01:00
Matthew Hodgson
1365f18829 many stupid thinkos and bugfixes; make it work 2016-07-20 12:03:13 +01:00
Matthew Hodgson
ebdac4ee50 first cut (untested) 2016-07-18 01:35:42 +01:00
Richard van der Hoff
a1dd427420 Implement device blocking
This is the react-sdk part of
https://github.com/matrix-org/matrix-js-sdk/pull/146. It adds 'Block'/'Unblock'
buttons to the device list, and updates the deviceVerified listeners to listen
for deviceVerificationChanged instead.

Also adds an extra <div> to the deviceinfo section to help me with the
CSS.
2016-06-23 17:30:04 +01:00
Richard van der Hoff
85770feb31 device verification: use a js-sdk event
We'll probably want to be able to bubble up device verifications from the
js-sdk at some point, so let's use a js-sdk event for this.
2016-06-08 21:25:42 +01:00
Richard van der Hoff
7ce49c752f Wire up events to update UI on device verification
Use the dispatcher to update event tiles and memberdeviceinfo when a device is
marked as verified.
2016-06-08 18:35:43 +01:00
Richard van der Hoff
1616431d27 EventTile: add classes to indicate verifiedness
Add a couple of CSS classes to event tiles to reflect whether encrypted events
have been verified or not.
2016-06-08 17:02:42 +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
dcd81da856 Fix test failures introduced by last PR 2016-04-19 21:10:23 +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
21fd5078f9 fix NPE on getEventTileOps 2016-04-14 17:39:45 +01:00
Matthew Hodgson
089963b4c7 timestamps are permalinks 2016-04-12 13:33:59 +01:00
Matthew Hodgson
6c372d37f7 add the concept of eventTileOps for managing widget visibility based on vdh's PR feedback 2016-04-08 21:42:29 +01:00
Matthew Hodgson
4388334e30 fix up scroll behaviour when loading widgets 2016-04-02 00:36:19 +01:00
Matthew Hodgson
12db0d9130 fix NPE on events with no sender object 2016-03-18 16:33:22 +00:00
Matthew Hodgson
c7ffb59374 click on nicks to insert them into the MessageComposer 2016-03-17 15:35:23 +00:00
Matthew Hodgson
b617571481 tidy up https://github.com/matrix-org/matrix-react-sdk/pull/225 2016-03-17 11:56:46 +00:00
Aviral Dasgupta
bd7f56007a Bring up MemberInfo on avatar click in EventTile
Fixes vector-im/vector-web#1174
2016-03-17 02:45:38 +05:30
Matthew Hodgson
0e1186c4f9 display m.room.history_visibility updates in the timeline 2016-03-15 23:47:40 +00:00
Matthew Hodgson
b66ca74ede fix comments 2016-03-05 02:35:17 +00:00
Richard van der Hoff
99d2392b6f Update the scroll offset when images load
In order to deal with image-loading reshaping the DOM, wire up
ScrollPanel.checkScroll to the image load events.

Fixes https://github.com/vector-im/vector-web/issues/984
2016-02-22 17:43:33 +00:00
Matthew Hodgson
957ef9cdc8 fix self-highlight 2016-02-19 01:56:03 +00:00
Richard van der Hoff
e9726865fc Merge pull request #162 from matrix-org/rav/keep_redactions
Handle redacted events
2016-02-17 21:42:39 +00:00
Richard van der Hoff
e3feae32e1 Fix search clickthrough for HTML events
Switch to using a normal <a href="..."> link for search result
clickthrough. Apart from generally giving a better experience, this means that
it also works on html messages. The problem there was that we were attaching
onClick handlers to <span>s which we were then flattening into HTML with
ReactDOMServer (which meant the onClick handlers were never attached to React's
list of listeners).

To make this work without jumping through React hoops, the highlighter now
returns either a list of strings or a list of nodes, depending on whether we
are dealing with an HTML event or a text one. We therefore have a separate
HtmlHighlighter and TextHighlighter.
2016-02-17 21:06:27 +00:00
Richard van der Hoff
eb91faf554 Handle redacted events
matrix-js-sdk now retains redacted events. Filter them out of the timeline.

Also put empty placeholders in the dom so that if we try to scroll to a
redacted event, we don't end up blowing up.
2016-02-16 16:08:52 +00:00
Richard van der Hoff
c82b364ca8 Address review comments
Mostly renaming things and adding comments.
2016-02-03 08:03:10 +00:00
Richard van der Hoff
d9e13780b8 Implement direct-to-event linking.
This adds support for links to particular event ids: add /<eventId> to the URL
for a room.

This commit also ensures that we scroll to the 'read marker' when switching to
a room which has no previous scroll state, as well as preventing that marker
from going past the middle of the screen.

This also reinstates the preservation of scroll state when switching rooms,
which was disabled previously.
2016-02-01 16:31:12 +00:00
Matthew Hodgson
0772f50fab update copyright for 2016 2016-01-07 04:06:52 +00:00
Kegsay
a6e735dbde Merge pull request #76 from matrix-org/kegan/bugfix-read-receipt
Null guard getMember

Fixes https://github.com/vector-im/vector-web/issues/566
2016-01-05 11:26:04 +00:00
Kegan Dougal
75ad96c8ba Null guard getMember 2016-01-04 10:11:42 +00:00
Richard van der Hoff
b0adb1945f Expose onHighlightClick on the event tiles 2015-12-24 13:51:14 +00:00
Kegan Dougal
17a8eb0109 Display m.room.third_party_invite events. Display sensible text transitions. 2015-12-17 15:48:14 +00:00
Kegan Dougal
784c1b63dc Move remaining vector molecules to components 2015-12-01 11:19:25 +00:00
Matthew Hodgson
a8fd1b5d7a rename message components as per RL discussion this morning 2015-11-30 15:19:43 +00:00
Renamed from src/components/views/messages/Event.js (Browse further)