Commit graph

1027 commits

Author SHA1 Message Date
Bruno Windels
d73f547f55 reapply pills, link preview, code highlighting, ... after edit 2019-05-15 15:55:03 +01:00
Bruno Windels
b081a3156f dont show edit button for messages that are not your own 2019-05-15 15:53:49 +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
edc100163f
Merge pull request #2952 from matrix-org/bwindels/message-edit-editor
Initial support for editing messages
2019-05-15 09:23:01 +00:00
Travis Ralston
92c67cdcab
Merge pull request #2963 from matrix-org/travis/permalink-without-room
Support a backup room ID in PermalinkCreator
2019-05-14 10:28:26 -06:00
Bruno Windels
036cb02c0e add feature flag 2019-05-14 15:39:24 +01:00
Bruno Windels
6599d605cd wire up editor component (somewhat hacky) 2019-05-14 15:38:16 +01:00
J. Ryan Stinnett
f19e70c219 Add comment about thumbnailing for GIFs 2019-05-14 13:55:38 +01:00
Travis Ralston
1584ab42c2 Support a backup room ID in PermalinkCreator
In the case of room upgrades, it is possible the client is trying to render the room create event, but the user has never been in the old room. This results in an error because the PermalinkCreator cannot possibly figure out a room ID. 

Instead, we'll feed the creator an alternate room ID to try if the room object can't be provided.

Fixes https://github.com/vector-im/riot-web/issues/9636
2019-05-13 14:12:58 -06:00
J. Ryan Stinnett
7881369b98 Always thumbnail for GIFs
When displaying a GIF, we always want to thumbnail so that we can properly
respect the user's GIF autoplay setting (which relies on thumbnailing to produce
the static preview image).

Fixes https://github.com/vector-im/riot-web/issues/9658
2019-05-13 18:28:57 +01:00
J. Ryan Stinnett
9d9a41b263 Save content.info as a local for readability 2019-05-13 18:00:52 +01:00
J. Ryan Stinnett
e22bd45608 Clarify ReactionsRow forceUpdate usage 2019-05-13 15:00:43 +01:00
J. Ryan Stinnett
33513a95d7 Change to componentDidUpdate to process first reaction
This changes to "did update" and also calls the reaction change handler to
ensure that we update the state of my reactions (to know which were sent by
you).
2019-05-10 17:59:17 +01:00
J. Ryan Stinnett
dc4fccd291 Send and redact reaction events
This updates both the reaction row and action bar UIs to send and redact
reaction events as appropriate based on user interactions.

Fixes https://github.com/vector-im/riot-web/issues/9574
Fixes https://github.com/vector-im/riot-web/issues/9572
2019-05-10 17:19:27 +01:00
J. Ryan Stinnett
39bd0d8bb3 Listen for additional reactions in existing collection
The various reaction UI bits will now listen for `Reactions.add` for new
reactions just like with redactions.

Part of https://github.com/vector-im/riot-web/issues/9572
2019-05-10 17:19:27 +01:00
J. Ryan Stinnett
ce35741030 Remove redundant key vs. content in ReactionDimension
This simplifies `ReactionDimension` by using the emoji string everywhere instead
of keeping a separate text string as well. It should improve readability as
well, as the reaction events also have a field `key` which was the emoji
content, which was easy to confuse.
2019-05-10 17:19:27 +01:00
J. Ryan Stinnett
6a59143ffb Update reactions when redacted
This updates the reaction state in the reaction row and action bar when a
reaction is redacted.

Part of https://github.com/vector-im/riot-web/issues/9574
2019-05-10 17:19:27 +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
576241236c Extract ReactionDimension out of MessageActionBar
The reactions bits were cluttering up `MessageActionBar` so they have now been
extracted to a separate component.
2019-05-08 13:53:41 +01:00
J. Ryan Stinnett
0316deb6c5 Restore access to message quote option on first click
This repairs access to the "Quote" option of the message context menu by passing
down a getter so that we always access the most recent tile and reply thread
instances. This ensures the context menu uses the newest information about the
current event when determining menu options to show.

Fixes https://github.com/vector-im/riot-web/issues/9639
2019-05-07 12:59:53 +01:00
J. Ryan Stinnett
87f737b8a3 Increment an existing reaction
This allows you to increment an existing reaction below a message by clicking on
it.

At the moment, this is not linked to the action bar, so they each are using
local state. We'll likely want to add some mechanism so that we can local echo
to both of these UI areas at the same time, but that can be done separately.

Fixes https://github.com/vector-im/riot-web/issues/9486
2019-05-02 12:05:17 +01:00
J. Ryan Stinnett
15c5893278 Display existing reactions below the message
This displays the existing reactions a message has from all users below the
message.

Since we don't currently have an API to actually get these events yet,
adds a temporary hook that looks for a specific message to inject some sample
data. This helps build out the UI for now and can be removed once it exists.

Fixes https://github.com/vector-im/riot-web/issues/9573
2019-05-02 12:05:17 +01:00
J. Ryan Stinnett
44e9ca6c52 Extract isContentActionable to a separate helper
This moves the check about whether an event is actionable (for the purpose of
replies, edits, reactions, etc.) to shared utils module.
2019-05-02 12:05:17 +01:00
J. Ryan Stinnett
784599d9e9 Add primary reactions to action bar
This adds the primary reactions to the action bar. They act as toggles where you
can only select one from each group at a time.

Note that currently we aren't actually sending the reaction at all. That's left
for a separate task.

Fixes https://github.com/vector-im/riot-web/issues/9576
2019-04-30 18:09:10 +01:00
J. Ryan Stinnett
00ca930d2e Extract actionable content check to helper 2019-04-30 17:51:18 +01:00
J. Ryan Stinnett
739c8c0314 Promote reply button up to message action bar
This moves the reply action out of the existing options menu and up to the
message action bar for easier access.
2019-04-29 15:53:03 +01:00
J. Ryan Stinnett
8ef9fe951d Update styling of message action bar for multiple buttons
This applies the new design for multiple buttons in the message action bar,
paving the way for more things to appear here.

In addition, this changes the existing options button to use the three vertical
dots icon. Some theme colors are also tweaked to align with what they were meant
to be from the unified palette.
2019-04-29 15:20:51 +01:00
J. Ryan Stinnett
ed8bbc7082 Extract message options button to action bar
This adds a new action bar component to hold multiple per-message actions. This
existing options button has moved to this new component, and is currently the
only action.
2019-04-29 15:20:50 +01:00
Bruno Windels
eeaa7143ac move name coloring out of sender profile
so we can reuse it in room preview bar
2019-04-17 10:21:30 +02:00
Bruno Windels
45f3282b1b cleanup and linting 2019-04-08 14:57:39 +02:00
Bruno Windels
f1b00dff35 Merge branch 'develop' into matthew/retina 2019-04-05 13:35:54 +02:00
Travis Ralston
8d14dc4e26 Don't send options we don't need to fetch 2019-03-29 15:48:33 -06:00
Travis Ralston
62ba7dde94 Download PDFs as blobs to avoid empty grey screens
Fixes https://github.com/vector-im/riot-web/issues/8605

The grey screen of sadness comes up when Chrome tries to open the PDF but doesn't have the right CSP headers. To avoid this, we'll just force a download of the PDF through `fetch` and `Blob`. 

There are a few cases where the user might still get a grey screen though: namely if they open the URL in a new tab or when the event content is lying about the file type, or the file is too large to blobify.

`fetch` works in Chrome, Firefox, and our packaged Electron version.
2019-03-29 14:12:48 -06:00
Michael Telatynski
d6f31bef8e Disable big emoji for m.emote messages as it looks weird
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-03-18 23:25:11 +00:00
Matthew Hodgson
40f16fa310 adds validation for fields.
* renames RoomTooltip to be a generic Tooltip (which it is)
 * hooks it into Field to show validation results
 * adds onValidate to Field to let Field instances call an arbitrary validation function

Rebased from @ara4n's https://github.com/matrix-org/matrix-react-sdk/pull/2550
by @jryans. Subsequent commits revise and adapt this work.
2019-03-12 14:02:54 +00:00
Bruno Windels
96b1b723cd restore scroll position when encrypted download attachment iframe is shown 2019-03-07 17:22:43 +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
Travis Ralston
454251d17c Use a div instead of an image
There's no source, so just make it a block element
2019-03-01 17:21:37 -07:00
Travis Ralston
8a6ae6b48e Use a mask for the continuation icon
Fixes https://github.com/vector-im/riot-web/issues/7990
2019-03-01 15:59:19 -07:00
Bruno Windels
b8c6bed906 adjust permalink code for tombstone message 2019-02-25 18:43:08 +01:00
Tomas Batalla
b90e33b81b
Fix off by one error for username colors
The hash result would only have a range of 0..7, but the css of color variants is 1..8
2019-02-19 10:52:59 -08:00
Bastian
23971b3d0d Refactor to use HtmlUtils for linkifying and sanitizing
Signed-off-by: Bastian <matrix@noxware.de>
2019-01-31 22:36:08 +01:00
Travis Ralston
cb6f415a05 Be more positive with setting labels
Fixes https://github.com/vector-im/riot-web/issues/6435

This is done through an on-the-fly inverter for the settings. All the settings changed are boolean values, so this should be more than safe to just let happen throughout the SettingsStore. Typically a change like this would be done in the individual handlers (similar to how setting names are remapped to different properties or even different storage locations on the fly), however doing that for this many settings would be a huge nightmare and involve changing *all* the layers. By putting a global "invert this" flag on the setting, we can get away with doing the inversion as the last possible step during a read (or write).

To speed up calculations of the default values, we cache all the inverted values into a lookup table similar to how we represent the defaults already. Without this, the DefaultHandler would need to iterate the setting list and invert the values, slowing things down over time. We invert the value up front so we can keep the generic inversion logic without checking the level ahead of time. It is fully intended that a default value represents the new setting name, not the legacy name.

This commit also includes a debugger for settings because it was hard to visualize what the SettingsStore was doing during development. Some added information is included as it may be helpful for when someone has a problem with their settings and we need to debug it. Typically the debugger would be run in conjunction with `mxSendRageshake`: `mxSettingsStore.debugSetting('showJoinLeaves') && mxSendRageshake('Debugging showJoinLeaves setting')`.
2019-01-24 20:57:40 -07:00
Matthew Hodgson
8511bc27cc only request thumbs on retina if the original image is too big to be used as a thumbnail 2019-01-20 15:35:16 +00:00
J. Ryan Stinnett
20e296b20e Convert image URLs in React to require calls
This allows Webpack to insert the proper image URL after builds steps like
adding a hash and so on. The path you supply to `require` is relative to the JS
source file, just like any other would be.
2019-01-17 22:06:49 -06:00
Matthew Hodgson
577c411a39 experimental fix for https://github.com/vector-im/riot-web/issues/2985
needs server to support 1600x1200 thumbnails for retina large ones.
ideally need to cap maximum thumbnail size to 800x600 rather than expand to arbitrary widths.
need to check that luke's funky timeline code doesn't get confused between naturalWidth and infoWidth etc.
also need to consider whether to encode a resolution metric in the event rather than lying about resolution.
2019-01-14 17:10:22 +00:00
Travis Ralston
8017f0a4a1 Merge remote-tracking branch 'origin/experimental' into travis/develop-for-real 2019-01-03 16:00:23 -07:00
Christopher Medlin
384320e29f Consistently order flairs based on room configuration. 2018-12-24 14:46:36 -08:00
Bruno Windels
67e0030ccd Merge branch 'develop' into experimental 2018-11-26 13:10:29 +01:00
Maxwell Kepler
5d35ce9449 Changed letter case. 2018-10-24 19:06:48 +01:00
Bruno Windels
30e6fdc122 fix lint 2018-10-24 14:36:08 +02:00
Bruno Windels
f2efbc15f4 apply color categories to sender profile name 2018-10-23 10:49:44 +02:00
Bruno Windels
2a264f36b7 style date separator 2018-10-23 10:25:04 +02:00
Maxwell Kepler
5e9db3647a Fixed minor typo in comment 2018-10-22 21:03:39 +01:00
Maxwell Kepler
54f9231582 Added badge to GIFs (https://github.com/vector-im/riot-web/issues/7344) 2018-10-22 20:57:58 +01:00
Aaron Raimist
58488c076e
Fix more lint errors
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2018-10-11 21:54:55 -05:00
Will Hunt
17915b5082
Merge branch 'develop' into hs/purge-irc-hack 2018-10-03 19:39:14 +01:00
Will Hunt
fe788486b7 Drop (IRC) suffix hacks 2018-10-03 19:34:06 +01:00
Bruno Windels
debcc20604 also show spinner on new CATCHUP state 2018-08-30 15:39:48 +02:00
David Baker
6cbe4144d4 unused import 2018-08-29 18:28:16 +01:00
David Baker
ab10b5493b Support room creation events
For https://github.com/vector-im/riot-web/issues/7164
2018-08-20 16:20:59 +01:00
Michael Telatynski
7c3873b449
fix @room pill href=undefined and @room parsing breaking subsequent pills
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-24 12:18:10 +01:00
Akihiko Odaki
f941c93322 Import react as React in src/components/views/messages/MStickerBody.js
Signed-off-by: Akihiko Odaki <nekomanma@pixiv.co.jp>
2018-07-04 18:28:56 +09:00
Luke Barnard
6345fcb8f2 Fix incorrectly positioned copy button on <pre> blocks 2018-06-27 11:31:55 +01:00
Luke Barnard
383dccebb4
Merge pull request #2006 from matrix-org/t3chguy/notif_panel_fixes
notif panel fixes
2018-06-25 09:53:24 +01:00
Michael Telatynski
f7a0ad3aa0
delint
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-06-23 01:29:38 +01:00
Michael Telatynski
807d72f2d9
nullguard SenderProfile,broke when NotifPanel had evs from forgotten rooms
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-06-23 01:22:38 +01:00
Luke Barnard
5b8e453484
Merge pull request #1991 from matrix-org/t3chguy/delint_MImageBody
delint MImageBody, fixes anonymous class and hyphenated style keys which made react cry
2018-06-22 10:38:56 +01:00
David Baker
e67dae704a Take replies out of labs! 2018-06-20 09:57:11 +01:00
Michael Telatynski
fffb8379d8
delint MImageBody, fixes anonymous class and hyphenated style keys which made react cry
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-06-19 08:37:11 +01:00
David Baker
499bb5cfb4
Merge pull request #1972 from matrix-org/t3chguy/media_fixes
fix e2ee file/media stuff
2018-06-18 13:56:00 +01:00
Michael Telatynski
3ebec92ac5
replace hardcoded matrix.to with reference to const in matrix-to
for easier changing

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-06-16 08:27:47 +01:00
David Baker
88a807d89b
Merge pull request #1965 from matrix-org/t3chguy/show_redacted_sticker
check type before msgtype in the case of `m.sticker` with msgtype
2018-06-15 10:56:33 +01:00
David Baker
6904c2bafe
Merge pull request #1948 from matrix-org/export_Group
Share Dialog
2018-06-15 10:52:27 +01:00
Michael Telatynski
826df5765c
add rel noopener to cross origin loader (currently rel="undefined")
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-06-15 10:27:21 +01:00
Luke Barnard
2eb23ed234 Add loadedImageDimensions to initial state 2018-06-14 15:53:49 +01:00
Luke Barnard
2d14d51ecb Handle images without width/height info correctly
Prior to #1912, height fix up of image events without an `info` in their
content would fail, setting `style.height = null + "px"`.

Now that all thumbnail sizing is done through one path, we can fix the
same problem for all cases (images, stickers, e2e/non-e2e) by handling
images without `info` correctly.

At the bare minimum, we use a null-guard that will make sure an image
without an `info` does not appear in the timeline (as a spinner or
otherwise until loaded). When loaded, we size it like any other image
by using the natural dimensions of the loaded image in place of `info`.

Note that we do not apply the same logic to images that *do* specify an
`info` with `w` and `h` keys. If the aspect ratio of the image does not
match that of the event, we use the one in `info` even when the image
has loaded.
2018-06-14 15:44:55 +01:00
Luke Barnard
c8d233c0a6 If unspecified, don't crash if missing thumbnail info
applies to stickers/images.

We might want to consider to do that is better than assuming a aspect
ratio of 600 x 800 (4:3).
2018-06-14 14:19:30 +01:00
Michael Telatynski
9a225840ce
check type before msgtype in the case of m.sticker with msgtype (undef)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-06-14 12:00:53 +01:00
Luke Barnard
7029e9ac74
Merge pull request #1912 from matrix-org/luke/kill-mimage-fixupheight
Implement slightly magical CSS soln. to thumbnail sizing
2018-06-14 11:17:15 +01:00
Michael Telatynski
20caea47f8
make more generic
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-06-13 09:32:21 +01:00
Michael Telatynski
846c14062a
show redacted stickers like other redacted messages
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-06-13 09:28:35 +01:00
Michael Telatynski
64bcf6fd7e
allow ContextualMenu to run without background, for tooltips & fix copy
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-06-12 11:22:01 +01:00
Luke Barnard
2120858e5f
Merge branch 'develop' into luke/kill-mimage-fixupheight 2018-06-11 14:24:40 +01:00
Travis Ralston
033c41a2a8 Align pinned message contents and reduce image size
Fixes https://github.com/vector-im/riot-web/issues/5421

Signed-off-by: Travis Ralston <travpc@gmail.com>
2018-05-26 18:40:48 -06:00
Luke Barnard
538979a4ee Fix MVideoBody spinner 2018-05-22 17:13:45 +01:00
Luke Barnard
c249bee9b5 Grammar 2018-05-22 16:09:54 +01:00
Luke Barnard
fb5dd4a410 Remove spurious fixupHeight 2018-05-22 10:46:10 +01:00
Luke Barnard
e4f8c09c32 Only include placeholder in DOM when necessary 2018-05-22 10:43:16 +01:00
Luke Barnard
e9ae3de00f Merge branch 'develop' into luke/kill-mimage-fixupheight 2018-05-21 17:15:54 +01:00
Luke Barnard
836dc8b0ef Factor out all shared logic between MStickerBody and MImageBody
The benefits of this:
 - One code path for determining spinner/placeholder and it's position
   for loading images/stickers. This includes spinner used in e2e
   decryption of images.
 - Very small definition for MStickerBody, only overriding the minimal
   differences is has from MImageBody.

The disadvantages:
 - Slightly more complicated MImageBody, but hopefully not less
   readable.
2018-05-21 16:59:13 +01:00
Luke Barnard
015093b371 Move inline style to stylesheet 2018-05-18 11:34:41 +01:00
Luke Barnard
7e7e2a7473 Add more comments to explain thumbnail sizing 2018-05-18 10:27:22 +01:00
Luke Barnard
d11442de04 Adjust comment 2018-05-18 10:15:59 +01:00
Luke Barnard
b41b9aa4fa Remove fixupHeight call from MStickerBody 2018-05-18 09:58:52 +01:00
Luke Barnard
bbcf2fea53 Fix e2e image thumbnail spinner containing box correct size 2018-05-18 09:47:49 +01:00
Luke Barnard
b28ed6075b Implement slightly hacky CSS soln. to thumbnail sizing
As the slightly nicer alternative to fixupHeight being applied once
we actually have a timelineWidth.

The niceness comes from not needing timelineWidth, which means we can
implement at render time with CSS. (Despite still calculating aspect
ratios when we render.)
2018-05-17 18:15:34 +01:00
David Baker
a7006307bf Call afterComponentDidMount() after componentDidMount 2018-05-17 16:50:16 +01:00
David Baker
e53497421e Fix image size jumping regression
Fixes https://github.com/vector-im/riot-web/issues/6654
2018-05-17 16:47:17 +01:00
Luke Barnard
ff0254d346 Fix ContextualMenu imports for TagTile and code block copy button 2018-05-14 17:36:57 +01:00
David Baker
b6e317647a Fix stickers briefly being 2x the size
fixupHeight was the only thing actually fixing the size of the
sticker image to be the size we want it rather than the pixel size
of the image, and this was only getting run after the image loaded,
causing a flash of 2x image.
2018-05-14 13:41:41 +01:00
Matthew Hodgson
afb9e1f5f4 blind fix to the overlapping sticker bug 2018-05-08 09:50:06 +01:00
Matthew Hodgson
af5be5c36c appease the fascist linter 2018-05-05 22:28:09 +01:00
Matthew Hodgson
14bcfdd5c6 fix NPE 2018-05-05 22:08:37 +01:00
Michael Telatynski
f2102e283c
Merge branches 'develop' and 't3chguy/m.relates_to' of github.com:matrix-org/matrix-react-sdk into t3chguy/m.relates_to 2018-05-02 13:08:38 +01:00
Matthew Hodgson
5749fbcff9
Merge pull request #1864 from matrix-org/matthew/blob_urls
Switch back to using blob URLs for rendering e2e attachments
2018-04-30 19:01:58 +01:00
Michael Telatynski
41af9f7a96
fix changed method name
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-04-29 08:23:35 +01:00
Matthew Hodgson
db5fc53853 final comment 2018-04-29 04:53:32 +01:00
Matthew Hodgson
8538cc1666 fix regressions introduced by 00b7cc512b 2018-04-29 04:41:30 +01:00
Matthew Hodgson
be523b3edc lint 2018-04-29 04:31:30 +01:00
Matthew Hodgson
551d3ebda0 correctly fix up thumbnail height onload.
fixes https://github.com/vector-im/riot-web/issues/6492, although popping is inevitable in
the current implementation as it only fixes up the thumbnail size once the image has loaded.
2018-04-29 04:28:15 +01:00
Matthew Hodgson
731f1fa7d3 clarify another scrolljump bug 2018-04-29 04:00:02 +01:00
Matthew Hodgson
c254d043c5 fix ugly img errors and correctly render SVG thumbnails
Fixes https://github.com/vector-im/riot-web/issues/6271
Fixes https://github.com/vector-im/riot-web/issues/1341
2018-04-29 03:58:17 +01:00
Matthew Hodgson
9c5407c21f revokeObjectURLs 2018-04-29 03:17:55 +01:00
Matthew Hodgson
9701fd32b7 switch back to blob urls for rendering e2e attachments
Based on @walle303's work at https://github.com/matrix-org/matrix-react-sdk/pull/1820
Deliberately reverts 8f778f54fd
Mitigates XSS by whitelisting the mime-types of the attachments so that malicious ones
should not be recognised and executed by the browser.
2018-04-29 03:07:31 +01:00
David Baker
53528f338a Replace document.origin with window.location.origin
document.origin is not a thing on firefox
2018-04-26 10:43:52 +01:00
David Baker
e26c3f3dc9 Get variable name right in commented usercontent code 2018-04-26 10:12:50 +01:00
David Baker
54040659ec Fix cross-origin renderer code in comment 2018-04-25 11:35:08 +01:00
David Baker
79c3335765 Support origin lock in cross-origin renderer
This adds a URL parameter to the cross-origin renderer that makes
it only accept messages from a given domain. This adds an extra
layer of security to the cross-origin iframe and is backwards
compatible in both directions.
2018-04-24 16:05:14 +01:00
David Baker
f5956c87f6 Bind onImageError in constructor
Tt uses `this` but wasn't bound anywhere so the error handler was
just throwing an exception.
2018-04-23 18:14:59 +01:00
Michael Telatynski
58cd585e86
start of BigMerge fixup
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-04-20 09:12:02 +01:00
Matthew Hodgson
40a67ca8fe point imports at the new locations 2018-04-13 00:43:44 +01:00
Matthew Hodgson
8ab8f76254 move non-Riot-specific components over from riot-web 2018-04-11 23:58:04 +01:00
Michael Telatynski
1d90835de0
Merge branches 'develop' and 't3chguy/m.relates_to' of github.com:matrix-org/matrix-react-sdk into t3chguy/m.relates_to
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

# Conflicts:
#	src/components/structures/RoomView.js
2018-04-04 11:08:34 +01:00
Richard Lewis
f8f8bc469e Merge branch 'develop' of https://github.com/matrix-org/matrix-react-sdk into rxl881/snapshot 2018-04-03 11:34:14 +01:00
Richard Lewis
2e6d6c83cd Add back in body 'ref' 2018-03-29 21:16:12 +01:00
Richard Lewis
9c10d243e8 Add comment. 2018-03-29 17:09:03 +01:00
Richard Lewis
f383298267 Remove duplicate event handler. 2018-03-29 17:08:07 +01:00
Richard Lewis
cafbd2904e Remove unused ref. 2018-03-29 16:57:21 +01:00
Michael Telatynski
b5ed08eba2
Merge
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-03-24 17:52:49 +00:00
Richard Lewis
83412acbe7 Display sticker content (URL), rather than thumbnail. 2018-03-14 11:11:21 +00:00
Richard Lewis
b2d23b6999 Switch to 'm.sticker' message events. Allow whitelisting of wisget capabilities. 2018-03-12 13:56:02 +00:00
Michael Telatynski
023632e7e4
only strip reply fallbacks if the lab is enabled
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-03-09 23:12:13 +00:00
Richard Lewis
7e062090de Cleanup timeout before unmount. 2018-03-09 21:12:56 +00:00
Richard Lewis
e7c19fd83b Don't render placeholder when image is visible. 2018-03-08 23:12:12 +00:00
Richard Lewis
3ab8b1f866 Hide sticker picker delete button and show minimise button. 2018-03-08 17:20:42 +00:00
Richard Lewis
c59dd5b840 Add placeholders for sticker images (and fancy transitions). 2018-03-08 12:31:01 +00:00
Richard Lewis
7755a3ce90 Nest sticker image element for correct positioning of tooltips. 2018-03-06 10:48:32 +00:00
Michael Telatynski
df56a67fda
Add reply fallback and run gen-i18n
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-03-04 12:39:34 +00:00
Richard Lewis
f3c928a4fc Lint. 2018-02-28 13:43:19 +00:00
Richard Lewis
0fdbddf8fd Show sticker description as a tooltip, on hover. 2018-02-27 23:07:59 +00:00
Richard Lewis
5ca0fc3ab5 Make MStickerBody extend MImageBody. 2018-02-26 14:01:33 +00: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
adi1
f2e1c0ebca
Fix TextualBody.js to remove NodeList.forEach()
Not all browsers support forEach() on NodeList objects. This causes crashes on some browsers, such as IE and FF<50.
2018-02-22 13:59:37 +01:00
Michael Telatynski
2e3cbb309e
Merge branches 'develop' and 't3chguy/m.relates_to' of github.com:matrix-org/matrix-react-sdk into t3chguy/m.relates_to 2018-02-16 14:35:04 +00:00
Matthew Hodgson
07b691a45d typo 2018-02-15 20:20:25 +00:00
Michael Telatynski
fbb950e064
mass s/Quote/Reply
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-02-10 12:38:25 +00:00
Michael Telatynski
1c3d8cbe6e
initial refactor of Replies to use B explicit over-the-wire format
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-02-10 11:19:43 +00:00
Luke Barnard
cf4ae681f4
Offline mode (#1723)
* Allow the client to run without connection to HS (i.e. using indexeddb)

Allows running without having pushRules (it's safe not to have these 
when running from indexeddb sync.)

This means rooms will be displayed with "unknown" notifcation state.

This assumes anything that uses the push rules will get pushRule state
again when the client starts syncing again.

For recovering from being disconnected, 
* If an avatar has fallen back, try again on reconnection
* If a thumbnail image failed to load, retry on reconnect
* Load joined groups when reconnecting

Update tests to give MELS a context.matrixClient
2018-02-06 17:50:53 +00:00
Michael Telatynski
8a6727ea98
This is actually MFileBody not MImageBody, change classname
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-01-30 10:55:23 +00:00
Michael Telatynski
3b1d69edbb
Change Quotes to be linearly rendered rather than recursively nested
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-01-22 16:34:47 +00:00
Michael Telatynski
9e2238e884
remove unused imports
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-01-10 11:56:36 +00:00
Michael Telatynski
1bc9d344ae
Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/nvl/rich_quoting
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

# Conflicts:
#	src/components/views/messages/TextualBody.js
2018-01-10 11:54:58 +00:00
Michael Telatynski
454fd23f25
fix typo shsape->shape
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-01-10 11:51:48 +00:00
Richard Lewis
486b2cf102 Handle sticker message event. 2018-01-08 11:32:38 +00:00
Richard Lewis
57247493d9 Remove unused deps. 2018-01-04 22:59:50 +00:00
Richard Lewis
d256e473eb Fix header and remove unused deps. 2018-01-04 22:51:49 +00:00
Richard Lewis
d652f117fb Remove click handlers etc. 2018-01-04 22:36:29 +00:00
Richard Lewis
1c8586e802 Add sticker message rendering. 2018-01-04 22:21:38 +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
Michael Telatynski
47d4e5f8d1
nest quotes, but only when people want to click through them
loads pre-emptively

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-12-18 19:28:01 +00:00
Michael Telatynski
9603b21199
s/Quote/Reply/ and ES6 tweaks
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-12-17 20:20:45 +00:00
Michael Telatynski
0ad0c0e9f7
finish i18n, and add a Date Sep to quote if it needs it
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-12-15 18:39:01 +00:00
Michael Telatynski
4666ac7c83
hide rich quoting behind flags, retaining original quoting for now
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-12-12 23:29:43 +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
641add4964 Fix one kind of scroll jump
by calling onWidgetLoad when the <img> in MImageBody loads
2017-12-01 14:18:13 +00:00
Luke Barnard
204bbebfca Only calculate displayed groups if flair enabled 2017-11-28 15:49:11 +00:00
Luke Barnard
b32e4a57bc Factor out _getDisplayeDGroups 2017-11-28 15:46:23 +00:00
Luke Barnard
b748c62880 Renames for clarification 2017-11-28 15:40:36 +00:00
Luke Barnard
3addb924b1 Replace (IRC) with flair
If a user has public groups that are honoured in their flair, remove the (IRC) to give the appearance that the flair replaces it.
2017-11-28 13:50:05 +00:00
Luke Barnard
7ffb542cb5 Do something more sensible for sender profile name/aux opacity
- If no translation is needed, don't do it.
 - For now, ignore the fact that this doens't allow us easily to put
   Flair into "luke sent an image" but we don't kow where the flair
   should go for this anyway.
2017-11-16 15:24:36 +00:00
Luke Barnard
dad797d4a2 Run linting --fix 2017-11-16 13:19:36 +00:00
Luke Barnard
a80935e181 JSX does not do comments in a way one might expect 2017-11-16 11:45:40 +00:00
Stefan Parviainen
2c1618bc10 Fix conflict and update strings
Signed-off-by: Stefan Parviainen <pafcu@iki.fi>
2017-11-15 20:40:51 +01:00
Stefan Parviainen
f8660de52d Add note about alternative to opacity 2017-11-14 20:13:00 +01:00
Stefan Parviainen
788be67c75 Clarifications 2017-11-14 20:08:27 +01:00
Stefan Parviainen
2acd42e7c5 Make eslint happy 2017-11-13 21:10:08 +01:00
Stefan Parviainen
3afbaf61e7 Refactor i18n stuff a bit 2017-11-13 20:19:33 +01:00
Travis Ralston
c5c346f0b7 Merge branch 'develop' into travis/granular-settings 2017-11-13 12:18:41 -07:00
David Baker
ff5e00d244 Don't crash if there isn't a room notif rule 2017-11-10 11:50:00 +00:00
Travis Ralston
893c39bfbe Merge branch 'develop' into travis/granular-settings 2017-11-03 22:00:07 -06:00
David Baker
802ab16746 Fix multiple pills on one line 2017-11-03 14:06:59 +00:00
David Baker
8895ab7e5b
Merge pull request #1564 from matrix-org/dbkr/pillify_at_room
Pillify room notifs in the timeline
2017-11-02 14:22:58 +00:00
David Baker
4f8d6d8fbe Pillify room notifs in the timeline
This scans text nodes in the DOM for room notifications and turns
them into pills. Changes the pillification code around a bit so it
works with text nodes. Uses the push processor directly to test
the event against the room notifiation rule so we know whether
this event would actually trigger a room notification (needs to
hook into push at a lower level because otherwise our own room
notifications would not pillify since our own events never
generate notifications).

Requires https://github.com/matrix-org/matrix-js-sdk/pull/565
2017-11-01 19:42:47 +00: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
Stefan Parviainen
95b2392104 Merge branch 'develop' into departify 2017-10-27 19:23:13 +02:00
Luke Barnard
cedc0b27a9 Handle redaction with no sender 2017-10-25 17:37:20 +01:00
Luke Barnard
5990e41bd7 Use the correct userId when displaying who redacted a message 2017-10-25 17:24:45 +01:00
Stefan Parviainen
468a05c6f1 Fix SenderProfile
Signed-off-by: Stefan Parviainen <pafcu@iki.fi>
2017-10-17 21:32:35 +02: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
Matthew Hodgson
f32ba0b54c Merge pull request #1462 from pafcu/translation-fixes
Use standard subsitution syntax in _tJsx
2017-10-14 23:43:12 +01:00
Michael Telatynski
c1edc0c32e
add option to disable BigEmoji
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-10-14 19:40:45 +01:00
Stefan Parviainen
f694fb24ff Fix merge-conflict
Signed-off-by: Stefan Parviainen <pafcu@iki.fi>
2017-10-11 20:02:14 +02: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
Stefan Parviainen
581abcb4b7 Consistent subsitution variable in translations
Signed-off-by: Stefan Parviainen <pafcu@iki.fi>
2017-10-11 09:15:24 +02:00
Luke Barnard
8d46b19916 Restrict Flair in the timeline to related groups of the room 2017-10-04 14:06:49 +01:00
Luke Barnard
6b9a2909df Add rule to enforce spacing in curly brackets in JSX children
This required an updated in version of eslint-plugin-react to 7.4.0.
2017-09-28 11:21:06 +01:00
Luke Barnard
e2ae6e6235 Separate sender profile into elements with classes
For separate CSS manipulation so that we can vary opacity independently for flair/name/aux
2017-09-19 16:56:14 +01:00
Luke Barnard
7414d4d1f9 Fix issue with "props.aux" being inserted instead of e.g. "sent an image" 2017-09-19 16:36:30 +01:00
Luke Barnard
26941e994f Merge branch 'develop' into luke/feature-flair 2017-09-18 14:46:50 +01:00
turt2live
8dc2604d63 Show who redacted an event on hover
This should fix #3931 although it's not obvious who actually performed the redaction.

Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-09-14 09:03:05 -06:00
David Baker
5087da9247 Merge remote-tracking branch 'origin/develop' into luke/feature-flair 2017-09-13 16:52:12 +01:00
Michael Telatynski
fea7af11b4
Merge remote-tracking branch 'origin/t3chguy/on_copy_tooltip' into t3chguy/on_copy_tooltip 2017-09-13 14:18:56 +01:00
Michael Telatynski
d3bfdf495c
initialize value with false to prevent undefined.
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-09-13 14:18:31 +01:00
Michael Telatynski
0580d536ad Merge branch 'develop' into t3chguy/on_copy_tooltip 2017-09-10 18:54:52 +01:00
David Baker
05a986334d Separate function to add code copy button
For neatness and also so it can show up separately in the profiler.
2017-09-10 15:58:17 +01:00
David Baker
876257f4e2 Consolidate the code copy button
Adding the code code button was done by manipulating the HTML of
the event body to add a span tag, then adding the onclick handler
after the thing was mounted. Apart from splitting the code between
two places, adding the span tag was, according to Chrome's
profiler, taking up quite a lot of CPU cycles (apparently as soon
as you set the innerHTML on a div). Instead, just build the whole
lot together after the component mounts.
2017-09-10 14:23:33 +01:00
Michael Telatynski
b10b0e573d
i18n and change message depending on success of copy
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-09-06 11:29:55 +01:00
Michael Telatynski
269f1f33e3
show response on copy so you don't mash it
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-09-06 11:27:25 +01:00
Luke Barnard
ebc1993530 Implement Flair
Add 14x14 group avatars next to sender profiles.
2017-08-30 11:10:49 +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
Michael Telatynski
24599ace32
don't track error messages
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-10 13:49:11 +01:00
Luke Barnard
678c472b75 Quote by taking the innerText of eventTiles
because using `body` gives inconsistent results - sometimes it will contain markdown and sometimes not, and this may not correspond with the `formatted_body`.

TODO: Do quoting proper - using `in_response_to`.
2017-08-10 10:14:14 +01:00
Luke Barnard
b08d32371d Add optional setting for hiding avatars in <Pill>s
As part of https://github.com/vector-im/riot-web/issues/4640#issuecomment-316659445
2017-08-08 11:13:29 +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
7db7192701 Factor out shared logic in two code-paths for pill rendering
This isn't an entirely side-effect-free refactoring:
 - the text of the timeline pills is now either the room ID/alias or user ID/ display name of the linked resource (which means that until we do a roundtrip to get user displaynames, mentions for users not in the current room will have their user IDs shown instead of what was in the link body).
 - timeline links to rooms without avatars are now rendered as links
 - fixed issue that would throw an error whilst rendering (i.e. unusable client) a room link to a room that the client doesn't know about
2017-07-21 14:07:48 +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
Luke Barnard
2f293adad5 Fix userId undefined in pillifyLinks 2017-07-19 18:21:26 +01:00
Luke Barnard
5d1b33d2a8 Merge branch 'develop' into luke/feature-mention-pill 2017-07-19 17:22:03 +01:00
Luke Barnard
b131637a11 Add mx_UserPill_me class to user pills that match credentials.userId 2017-07-19 11:00:26 +01:00
Luke Barnard
d207ee5244 Expand groups into variables with readable names 2017-07-17 19:31:36 +01:00
Luke Barnard
b1e3dc406c Decorate matrix.to anchor tags as mx_UserPill and mx_RoomPill
Requires https://github.com/vector-im/riot-web/pull/4597 to look OK
2017-07-17 14:50:45 +01:00
Richard van der Hoff
0254d2b3a2 q(...) -> Promise.resolve
```
find src test -name '*.js' | xargs perl -i -pe 's/\b[qQ]\(/Promise.resolve(/'
```
2017-07-12 18:05:08 +01:00
Richard van der Hoff
a06bd84213 replace imports of q with bluebird
update `package.json`

```
find src test -name '*.js' |
   xargs perl -i -pe 'if (/require\(.[qQ].\)/) { $_ = "import Promise from '\''bluebird'\'';\n"; }'

find src test -name '*.js' |
   xargs perl -i -pe 'if (/import [qQ]/) { $_ = "import Promise from '\''bluebird'\'';\n"; }'
```
2017-07-12 18:05:08 +01:00
Richard van der Hoff
4f8d9d869e mention preserving ordering in comment 2017-07-06 10:47:15 +01:00
Richard van der Hoff
6a2d6b2e6e Fix a React duplicate key error
If a single message contains the same link twice, we get an error from React
about the clashing keys. De-dup the links to keep it quiet.
2017-07-06 10:02:25 +01:00
lukebarnard
fbaa3de28b Null-guard m.video info
Fixes https://github.com/vector-im/riot-web/issues/4423
2017-06-26 22:22:03 +01:00
Johannes Löthberg
48c32172fd TextualBody: only highlight code block if language was specified
The highlight.js autodetection is finicky and often wrong, so disable
highlighting unless the language was explicitly specified, or if the
user has explicitly enabled it in the settings.

Fixes vector-im/riot-web#508.

Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2017-06-26 17:45:40 +02:00
Michael Telatynski
ad7c835471 width and height must be int otherwise synapse cries
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-06-13 12:19:20 +01:00
David Baker
71eb405859 Add comments & remove redundant check 2017-06-08 14:53:21 +01:00
David Baker
b40636a425 Merge pull request #1040 from ollieh/issues/1974
Added button that copies code to clipboard
2017-06-08 14:45:58 +01:00
Matthew Hodgson
c173861b27 Merge pull request #1021 from Bitim/feature/rtl-languages-support
Better RTL support
2017-06-08 14:43:18 +01:00
Oliver Hunt
dd6171a39e Review changes
Signed-off-by: Oliver Hunt <oliver@hunt.bz>
2017-06-06 12:34:03 +01:00
Oliver Hunt
a640e943f7 Added button that copies code to clipboard
Signed-off-by: Oliver Hunt <oliver@hunt.bz>
2017-06-06 12:33:44 +01:00
saul.kredi@krutt.org
159a920dc8 Better RTL support 2017-06-03 18:52:45 +03:00
Michael Telatynski
464863acd6 remove unused imports
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-06-02 21:35:55 +01:00
Matthew Hodgson
e6cf93e237 switch to imports 2017-06-01 14:42:44 +01:00
Matthew Hodgson
00750b4686 quick and dirty RoomAvatarEvent 2017-06-01 13:31:24 +01:00
Matthew Hodgson
d689d4e1fa quick and dirty RoomAvatarEvent 2017-06-01 13:31:15 +01:00
Matthew Hodgson
48a2ad93da fix {integrationsUrl} thinko 2017-05-30 20:32:12 +01:00
Marcel
70e7d81093 More i18n strings (#963)
* Add i18n for E2E import and Export Dialogs

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add various previous missing i18n strings

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Translate CreateRoomButton

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add ChatInviteDialog and fix missing to.

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add ConfitmRedactDialog translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add DeactivateAccountDialog translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add DeviceVerifyDialog translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add SessionRestoreErrorDialog translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add SetDisplayNameDialog translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add UnknownDeviceDialog translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add AddressTile translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add DeviceVerifyButtons translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add Dropdown translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add UserSelector translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add CaptchaForm translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add CasLogin translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add CustomServerDialog translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add InteractiveAuthEntryComponents translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add LoginFooter translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add RegistrationForm translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add ServerConfig translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add MAudioBody translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add MImageBody translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add MVideoBody translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add TextualBody translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add UnknownBody translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add UrlPreviewSettings translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add AuxPanel translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Add PresenceLabel translations

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* fix syntax error

* weird space :P

* missing ','

* fix missing value

* fix json fail

* remove acidential added file

* fix another json fail
2017-05-30 15:09:57 +01:00
Travis Ralston
1b6685c5da Merge branch 'develop' into travis/redact-to-remove 2017-05-28 17:45:32 -04:00
David Baker
6c41be3c14 Missed OKs 2017-05-25 18:23:15 +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
turt2live
e6fd380947 Change redact -> remove for clarity
Addresses vector-im/riot-web#2814

Non-technical users may not understand what 'redact' means and can more easily understand what 'Remove' does. See discussion on vector-im/riot-web#2814 for more information.

Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-04-24 12:49:09 -06:00
Michael Telatynski
6f0c3b1c03 Pass file name (as name) to the ImageView modal
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-04-17 14:50:34 +01:00
Michael Telatynski
a0c498e8ba Make Download behaviour consistent with that of E2E (iframed) download butttons (ACTUALLY DOWNLOAD)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-04-17 14:37:24 +01:00
Luke Barnard
7ae13f5889 Merge pull request #762 from lieuwex/hide-link-preview-quote
Don't show link preview when link is inside of a quote
2017-04-12 15:31:43 +01:00
Luke Barnard
6c09a08a7d Click emote sender -> insert display name into composer
Also, fix the imports TextualBody.
2017-04-06 14:08:59 +01:00
Aviral Dasgupta
7891f9b246
UnknownBody: add explanatory title 2017-03-19 15:21:12 +05:30
Lieuwe Rooijakkers
b3fc1844e8 don't show link preview when link is inside of a quote
Signed-off-by: Lieuwe Rooijakkers <lieuwerooijakkers@gmail.com>
2017-03-18 11:50:49 +01: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
abd71cd2ac No need for "redactor" as we dont currently show it 2017-03-03 17:57:13 +00:00
Luke Barnard
9bae936816 Add the redacter display name to the redaction text 2017-03-03 17:35:42 +00:00
Luke Barnard
5ef61b7c35 Only show a redaction tile for messages 2017-03-03 16:45:29 +00:00
Luke Barnard
2bd9885288 Start to show redacted events 2017-03-03 15:42:24 +00:00
Will Hunt
4b5e8d66b8 Fixed styling + removed log line 2017-03-02 13:39:56 +00:00
Will Hunt
4509901592 image (gifs) and video messages will autoplay if enabled. 2017-02-27 22:16:56 +00:00
Luke Barnard
0303a42fc7 Fix typo with Scalar popup 2017-02-14 15:35:14 +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
2658cd09b5 Fix scroll jumping when a video is decrypted
Call the `onWidgetLoad` prop on MVideoBody to notify the scroll panel to keep it's position when the size of the video widget updates.
2016-12-20 12:33:07 +00:00
Mark Haines
81e429eb14 Fix e2e attachment download by using iframes. (#562)
* Render attachments inside iframes.

* Fix up the image and video views

* Fix m.audio

* Comments, and only use the cross domain renderer if the attachment is encrypted

* Fix whitespace

* Don't decrypt file attachments immediately

* Use https://usercontent.riot.im/v1.html by default

* typos

* Put the config in the React context.

Use it in MFileBody to configure the cross origin renderer URL.

* Call it appConfig in the context

* Return the promises so they don't get dropped
2016-12-02 14:21:07 +00:00
Luke Barnard
5665a0ef37 Fix scroll jump on image decryption
`onWidgetLoad` is now being called when an image has been decrypted so that the ScrollPanel maintains its scroll position (whether it's stuckAtBottom or not). This attempts to fix https://github.com/vector-im/riot-web/issues/2624
2016-12-02 11:11:35 +00:00
David Baker
21d65d2ad1 Fix the download icon on attachments 2016-11-25 23:19:20 +00:00
Richard van der Hoff
4476b09ce7 Get rid of always-on labs settings
If the setting is on by default, it's not much use as a Labs setting. The E2e
setting was only confusing everyone anyway.
2016-11-21 10:25:48 +00:00
Mark Haines
7cb3c0935b Make the spinner smaller, don't decrypt files as eagerly (#564) 2016-11-18 20:08:26 +00:00
Mark Haines
6ccc825f0d Cache the tinted SVGs for MFileBody as data URLs (#559)
* Use a list of callbacks for things that need tinting.

Rather than gutwrenching the internals of TintableSVG inside the Tinter.

* Share a data: url for the tinted download svg in MFileBody

* Check image exists before tinting

* Add comments

* Use fetch+DomParser rather than XMLHttpRequest

* Remove comment about XMLHttpRequest
2016-11-16 14:16:51 +00:00
Mark Haines
595493e5bb Clean up MFileBody.presentableTextForFile 2016-11-15 15:58:24 +00:00
Mark Haines
13f28e53e1 Generate thumbnails when sending m.image and m.video messages. (#555)
* Send a thumbnail when sending a m.image

* Use the 'thumbnail_file' when displaying encrypted images

* Whitespace

* Generate thumbnails for m.video

* Fix docstring, remove unused vars, use const

* Don't change the upload promise behaviour

* Polyfill for Canvas.toBlob to support older browsers

* Lowercase for integer types in jsdoc
2016-11-15 11:22:39 +00:00
Mark Haines
72d24f58d0 Make the promises be q promises 2016-11-11 13:57:45 +00:00
Mark Haines
9edfea3b32 Make imports more consistent, fix m.video 2016-11-11 13:57:45 +00:00
Mark Haines
bf5ecbd016 Review comments
Conflicts:
	src/ContentMessages.js
2016-11-11 13:57:42 +00:00
Mark Haines
734c4eb638 Fix gif hoverover 2016-11-11 13:57:11 +00:00
Mark Haines
de384480c6 Pass the decryptedUrl to the MFileBody so that it doesn't need to decrypt it itself.
Conflicts:
	src/components/views/messages/MImageBody.js
2016-11-11 13:57:08 +00:00
Mark Haines
736ab743ee Make everything use MFileBody for downloads, ensure that encrypted attachments are actually downloaded
Conflicts:
	src/components/views/messages/MImageBody.js
2016-11-11 13:56:30 +00:00
Mark Haines
ee1768f644 Use data:// URI rather than blob: URI to avoid XSS 2016-11-11 13:55:57 +00:00
Mark Haines
b69e88d4e3 Decrypt m.file attachments 2016-11-11 13:55:57 +00:00
Mark Haines
4e01a4f692 Decrypt m.audio attachments 2016-11-11 13:55:57 +00:00
Mark Haines
48340a2817 Fix unencrypted video thumbnail 2016-11-11 13:55:57 +00:00
Mark Haines
b56417f46e Remove spurious TODO 2016-11-11 13:55:57 +00:00
Mark Haines
95e8889857 Decypt m.video events 2016-11-11 13:55:57 +00:00
Mark Haines
a4a0d02848 Move decryptFile into a utility function so that it can be shared between different components
Conflicts:
	src/components/views/messages/MImageBody.js
2016-11-11 13:55:48 +00:00
Mark Haines
49b3aec1e2 Include the mimetype with the file info. Store the objectURL in state so that it can be used normally by the exising templates
Conflicts:
	src/ContentMessages.js
	src/components/views/messages/MImageBody.js
2016-11-11 13:54:07 +00:00
Mark Haines
23e764604c Merge remote-tracking branch 'origin/master' into develop 2016-11-11 12:00:53 +00:00
Mark Haines
61921327c2 Merge remote-tracking branch 'origin/master' into develop 2016-11-11 12:00:30 +00:00
David Baker
1e163eabf0 Revert "Encrypt attachments in encrypted rooms," 2016-11-11 11:59:08 +00:00
Mark Haines
c838164f40 Make the promises be q promises 2016-11-08 16:26:25 +00:00
Mark Haines
93ddb5539e Make imports more consistent, fix m.video 2016-11-08 12:57:24 +00:00
Mark Haines
911f9e4e63 Review comments 2016-11-08 11:42:20 +00:00
David Baker
5c2c01d414 Fix function to consistently return boolean 2016-11-07 11:45:55 +00:00
David Baker
2bb7aec0de Don't do URL previews for matrix.to 2016-11-07 10:57:08 +00:00
Mark Haines
dc679a8eca Fix gif hoverover 2016-11-04 18:41:05 +00:00
Mark Haines
4214c67f8f Pass the decryptedUrl to the MFileBody so that it doesn't need to decrypt it itself. 2016-11-04 18:20:20 +00:00
Mark Haines
1529396ef5 Make everything use MFileBody for downloads, ensure that encrypted attachments are actually downloaded 2016-11-04 18:09:12 +00:00
Mark Haines
8f778f54fd Use data:// URI rather than blob: URI to avoid XSS 2016-11-04 15:39:39 +00:00
Mark Haines
6ea0085290 Decrypt m.file attachments 2016-11-04 14:00:26 +00:00
Mark Haines
94bfe31857 Decrypt m.audio attachments 2016-11-04 13:45:00 +00:00
Mark Haines
91123431dd Fix unencrypted video thumbnail 2016-11-04 13:13:25 +00:00
Mark Haines
71c002d588 Remove spurious TODO 2016-11-04 13:08:17 +00:00
Mark Haines
48cfd4f399 Decypt m.video events 2016-11-04 13:05:34 +00:00
Mark Haines
b6653dd0ed Move decryptFile into a utility function so that it can be shared between different components 2016-11-04 12:46:45 +00:00
Mark Haines
12fc70c671 Include the mimetype with the file info. Store the objectURL in state so that it can be used normally by the exising templates 2016-11-04 11:52:47 +00:00
Mark Haines
e949d91162 Handle decryption errors 2016-11-03 16:39:20 +00:00
Mark Haines
e0cea74c7e Encrypt attachments in encrypted rooms, decrypt image attachments when displaying them 2016-11-02 16:26:10 +00:00
David Baker
8cf273a460 Run highlight.js asynchronously
Move the very minimal logic of highlightDOM into TextualBody
because then we can avoid scheduling a lot of timeouts which
would ultimately do nothing (ie. any messages that don't have code
blocks).
2016-10-26 18:41:28 +01:00
Matthew Hodgson
9d303712f2 more s/Vector/Riot/ 2016-10-03 10:18:43 +01:00
Matthew Hodgson
90fea6c389 unbreak video thumbs 2016-09-12 16:28:56 +01:00
Matthew Hodgson
34bb37aaba layout for file & notif panel 2016-09-11 02:14:27 +01:00
Kegan Dougal
56ac0004e5 Use href='#' hack to make link text look like a link 2016-09-05 09:10:15 +01:00
Kegan Dougal
45ada1887d Implement starter link support
This involves modal dialogs because browsers are *terrible*.
2016-09-02 16:36:43 +01:00
Kegan Dougal
6ec7e5df28 Move scalar auth stuff to ScalarAuthClient from RoomSettings 2016-09-02 16:03:24 +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
Matthew Hodgson
2a3b0e85ea add rel='noopener' wherever we do target='_blank' because https://mathiasbynens.github.io/rel-noopener/ 2016-08-15 21:37:26 +01:00
Aviral Dasgupta
4c1dcb924b reskindex and use sdk.getComponent for EmojiText 2016-08-11 07:55:12 +05:30
Aviral Dasgupta
09e8a45cde Add EmojiText component for emoji replacement. 2016-08-10 00:31:51 +05:30
Aviral Dasgupta
dbbea63227 Various fixes and improvements to emojification.
- Use locally hosted emoji
- Emojify SenderProfile and m.emote
- Add emoji shortcodes as titles
2016-08-09 22:09:28 +05:30
David Baker
fb964be072 Merge pull request #356 from matrix-org/matthew/disable-url-previews
Support for disabling/enabling URL previews per-user, per-room and per-user-per-room
2016-07-20 16:43:08 +01:00
Matthew Hodgson
1365f18829 many stupid thinkos and bugfixes; make it work 2016-07-20 12:03:13 +01:00
David Baker
d6df3682f2 Fix enourmous video bug 2016-07-20 11:58:49 +01:00
Matthew Hodgson
ebdac4ee50 first cut (untested) 2016-07-18 01:35:42 +01:00
Aviral Dasgupta
020f1f4320 feat: emojify ALL THE THINGS! 2016-07-05 10:16:17 +05:30
Matthew Hodgson
b74d690035 Merge pull request #290 from matrix-org/matthew/multipreview
multiple URL preview support
2016-05-31 19:42:21 +01:00
Matthew Hodgson
b3638f9169 PR review 2016-05-31 19:42:00 +01:00
Matthew Hodgson
d5e6e961fd fix url previews firing incorrectly on Matrix.org 2016-05-27 10:09:17 +01:00
Matthew Hodgson
39a3d6fdd4 multiple URL preview support 2016-05-24 00:54:20 +01:00
Matthew Hodgson
4d399a3640 Refactor out isLinkPreviewable 2016-04-21 18:00:39 +01:00
Matthew Hodgson
ee11838537 fix comment paren 2016-04-21 17:19:24 +01:00
Matthew Hodgson
c5a76dec1c add heuristics to hide URL previews other than for URLs where the user has explicitly identified the target as a link: i.e. by including a URI scheme prefix, or by including URI path components, or by doing an explicit markdown hyperlink. ignore previews of URLs within pre or code blocks 2016-04-21 17:14:27 +01:00
Matthew Hodgson
92f58b6927 don't try to do preview URLs of matrix IDs (yet :D) 2016-04-13 01:54:06 +01:00
Matthew Hodgson
bfec6d4ed9 merge aviral's audio player 2016-04-13 00:00:24 +01:00
Matthew Hodgson
6a6739e0f3 fix context menu on tiles without widgets 2016-04-12 18:32:55 +01:00
Matthew Hodgson
9845e5ef0e move all the localstorage crap to TextualBody 2016-04-11 23:53:36 +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
4abc5d0d36 add comment 2016-04-08 20:21:12 +01:00
Matthew Hodgson
1d8b08040e incorporate PR feedback 2016-04-07 18:58:50 +01:00
Matthew Hodgson
96b0f42db2 support lightboxes for image previews 2016-04-04 00:18:18 +01:00
Matthew Hodgson
0eb7b627fc ugly impl to track whether to hide the widget or not 2016-04-03 23:30:48 +01:00
Matthew Hodgson
e61c99f7f3 support cancelling previews 2016-04-03 02:50:36 +01:00
Matthew Hodgson
f9c914c40e specify timestamps for historical previews 2016-04-03 01:21:56 +01:00
Matthew Hodgson
4388334e30 fix up scroll behaviour when loading widgets 2016-04-02 00:36:19 +01:00
Matthew Hodgson
e6842eab94 WIP url previewing 2016-03-31 18:38:01 +01:00
Matthew Hodgson
0a2678b917 Add warning if fixupHeight fails, and remove overzealous logging 2016-03-29 00:46:51 +01:00
Richard van der Hoff
c227b2279b Minor fixes to image sizing
* use string refs instead of callback funcs
* Add a null-guard in case we don't have an image
2016-03-24 16:58:27 +00: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
5e7eb3ee92 Stop video tags autoplaying.
Properly, this time

Fixes https://github.com/vector-im/vector-web/issues/995
2016-03-10 17:38:52 +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
dc94df4b06 accomodate 800px wide thumbs and support horizontal scaling 2016-02-18 19:09:58 +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
Matthew Hodgson
c9c496f0e5 WIP all new roomsettings 2016-01-13 13:15:13 +00:00
Matthew Hodgson
8170288acb Merge pull request #77 from matrix-org/matthew/dynamic-svg
Make SVGs and CSS dynamically recolourable
2016-01-07 11:42:30 +00:00
Matthew Hodgson
0772f50fab update copyright for 2016 2016-01-07 04:06:52 +00:00
Matthew Hodgson
f499c60b12 sundry PR feedback 2016-01-06 02:29:08 +00:00
Matthew Hodgson
509ea7c4f3 factor out tintable SVGs into their own component, and use plain DOM onload rather than react synthetic events 2016-01-06 02:11:07 +00:00
Matthew Hodgson
9e8daba8d7 Merge branch 'develop' into matthew/dynamic-svg 2016-01-06 01:11:34 +00:00
Matthew Hodgson
aa1012b127 oops 2016-01-05 03:59:04 +00:00
Matthew Hodgson
9cf49eb62d oops, forgot this 2016-01-05 03:54:44 +00:00
Matthew Hodgson
001dc8612b support fixing up dynamically loaded SVGs 2016-01-05 03:34:52 +00:00
Richard van der Hoff
722c7033bc Merge pull request #73 from matrix-org/rav/on_highlight_click
Expose onHighlightClick on the event tiles
2016-01-04 15:23:45 +00:00
Matthew Hodgson
441a9540ca sync CSS classnames with current react component names 2016-01-03 00:11:11 +00:00
Richard van der Hoff
b0adb1945f Expose onHighlightClick on the event tiles 2015-12-24 13:51:14 +00:00
Matthew Hodgson
072130466c hopefully fix vector-im/vector-web#475 2015-12-08 19:49:16 +00:00
Matthew Hodgson
a8fd1b5d7a rename message components as per RL discussion this morning 2015-11-30 15:19:43 +00:00
Matthew Hodgson
96aa42471d fix messagecomposer layout when switching between rooms on FF 2015-11-30 01:12:32 +00:00
Matthew Hodgson
ca6cdfafd3 clean up spurious whitespace 2015-11-29 13:00:37 +00:00
Matthew Hodgson
c96fa7f15d fix autoplay on chrome and remove loop for m.video 2015-11-29 12:34:01 +00:00
Matthew Hodgson
d6b188751a s/autoplay/autoPlay/ 2015-11-29 03:25:55 +00:00
Matthew Hodgson
0b483c4707 rename searchTerms to highlights, and support highlighting multiple search terms 2015-11-29 03:22:01 +00:00
Matthew Hodgson
3cc1b1ad82 fix unwanted vertical scrollbar issue and typo 2015-11-29 03:21:21 +00:00
Matthew Hodgson
f028b343b0 HTML and Markdown emotes. 2015-11-28 22:34:45 +00:00
Matthew Hodgson
52376091cb resize the composer when you change rooms 2015-11-28 22:20:14 +00:00
Matthew Hodgson
9befe243b5 combine M{Text,Notice,Emote}Message into a generic TextualMessage component 2015-11-28 21:12:02 +00:00
Kegan Dougal
5ba1ef5203 Move velocity stuff / contextual menu from Vector to React. 2015-11-27 15:37:40 +00:00
Kegan Dougal
1825b0317e Add components which were previously in vector 2015-11-27 15:02:32 +00:00
Kegan Dougal
206c45e703 Move and merge MessageComposer 2015-11-26 17:31:10 +00:00