Commit graph

204 commits

Author SHA1 Message Date
Matthew Hodgson
7696f704b2 Fix two big DOM leaks which were locking Chrome solid.
pillifyLinks leaked Pill components, which if they contained a BaseAvatar
would leak a whole DOM tree retained by the BaseAvatar's onClientSync
event listener.  This tracks the Pill containers so they can be unmounted
via unmountPills.

BasicMessageComposer set an event listener on selectionchange in onFocus
which leaked if onBlur wasn't called.  This removes it in unmount.

We've also seen Velociraptor retaining full DOM trees from RRs, which
this doesn't address as the leak is probably within Velocity, and the plan
is to replace it with CSS animations.

Should fix https://github.com/vector-im/riot-web/issues/12417
2020-02-22 23:51:30 +00:00
Travis Ralston
fde32f13a5 [CONFLICT CHUNKS] Merge branch 'develop' into travis/sourcemaps-develop 2020-01-09 14:15:09 -07:00
Travis Ralston
59f608ffd6
Merge pull request #3761 from matrix-org/travis/babel7-wp-es6-export
Convert CommonJS exports to ES6 exports
2020-01-08 09:09:11 -07:00
Michael Telatynski
9c500e3544 Merge branches 'develop' and 't3chguy/clean_up_TextualBody' of github.com:matrix-org/matrix-react-sdk into t3chguy/clean_up_TextualBody
 Conflicts:
	src/components/views/messages/TextualBody.js
2020-01-06 11:51:35 +00: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
Travis Ralston
344dac4fb9 Convert CommonJS exports to ES6-compatible exports
We use `export default` begrudgingly here. Ideally we'd use just `export`, though this entire SDK expects things to be exported as a default. Instead of breaking everything, we'll sacrifice our export pattern for a smaller diff - a later commit can always do the default export -> regular export conversion.
2019-12-22 21:01:02 -07:00
Michael Telatynski
cb50f5ff5f
Merge pull request #3715 from matrix-org/t3chguy/fix_roomlist_context_menu_regression
Fix remaining context menu regressions
2019-12-11 09:36:45 +00:00
Michael Telatynski
52c20db963 Fix chevron offset for toRightOf
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-12-09 23:58:09 +00:00
Michael Telatynski
cd73162957
Merge branch 'develop' into t3chguy/react16_refs 2019-12-09 13:47:06 +00: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
Michael Telatynski
702a8ff4a9 Change ref handling in TextualBody to prevent it parsing generated nodes
Remove unused paths

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-12-08 01:01:19 +00:00
Michael Telatynski
33eff43313 Change the (edited) link to an AccessibleButton for a11y
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-12-07 21:01:21 +00:00
Michael Telatynski
d3de792f79 fix bits which missed the review cutting block
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-12-03 10:53:32 +00:00
Michael Telatynski
757f811126 s/ContextualMenu/ContextMenu/
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-12-02 23:21:59 +00:00
Michael Telatynski
3847996b5b transition Tooltips over to deprecated code
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-11-28 20:26:09 +00:00
Matthew Hodgson
9fd45d1f14 console.log doesn't take %s substitutions 2019-11-26 01:14:03 +00:00
Travis Ralston
fc66e69c02 Rename RoomPermalinkCreator -> Permalinks due to scope
The file handles more than just a RoomPermalinkCreator, so we should name it accordingly.
2019-09-30 20:39:58 -06:00
Travis Ralston
6f5ccd4c12 Minor comment updates 2019-09-30 20:38:03 -06:00
Travis Ralston
f879185aef Move permalink host check into permalink constructors
Without the requirement for a room to work
2019-09-30 12:53:45 -06:00
Travis Ralston
f9d5e89017 Move early parts of matrix.to bits into its own class 2019-09-30 12:37:13 -06:00
Travis Ralston
64aa6695f5 Move matrix-to.js to utils/permalinks/RoomPermalinkCreator
Just a little bit of refactoring to make the feature of custom prefixes a bit easier.
2019-09-30 12:16:46 -06:00
Michael Telatynski
b243004a6c Switch to createReactClass: *everything else*. React 16 :D
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-09-06 18:38:11 +01:00
Sorunome
fe9ae46ffb
Merge branch 'develop' of https://github.com/matrix-org/matrix-react-sdk into soru/spoilers 2019-08-28 20:23:24 +02:00
Travis Ralston
ffa49df889 Refactor integration manager handling into a common place
It was already in a common place, but this is the boilerplate for supporting multiple integration managers, and multiple integration manager sources. 

For https://github.com/vector-im/riot-web/issues/4913 / https://github.com/vector-im/riot-web/issues/10161
2019-08-09 16:08:06 -06:00
Bruno Windels
299cf8542c Split MessageEditor in edit-specifics & reusable part for main composer 2019-08-05 15:31:18 +02:00
Bruno Windels
58d7ed02b7 use method that also takes server aggregations into account for tooltip date 2019-07-09 11:31:29 +02:00
Bruno Windels
54de0b298b add "Click to see edits." to tooltip 2019-06-26 16:13:32 +02:00
Bruno Windels
e54881aa24 WIP 2019-06-26 11:59:56 +02:00
Bruno Windels
8b5f07e63d open edit dialog on clicking (edited) 2019-06-26 11:59:56 +02:00
Bruno Windels
497ba1ecd4 prevent @room pills being applied multiple times when rerendering 2019-06-14 18:28:44 +02:00
Bruno Windels
41e41269dc use EditorStateTransfer to pass on state to newly mounted editor 2019-06-12 18:52:34 +02:00
Sorunome
d8f4512439
add basic spoiler support 2019-05-22 20:41:27 +02:00
Bruno Windels
ff61376c07
Merge pull request #3004 from matrix-org/bwindels/update-link-previews-after-edit
Message editing: update link previews after editing
2019-05-22 14:17:34 +00:00
Bruno Windels
6b1134bdf0 add matrix foundation copyright header 2019-05-22 16:16:32 +02:00
Bruno Windels
1a5bcb4908 don't need this as we prevent unneeded updates in shouldComponentUpdate 2019-05-21 16:56:26 +02:00
Bruno Windels
72c1725f98 this is already done as part of _applyFormatting 2019-05-21 16:56:05 +02:00
Bruno Windels
2d4d608ed6
Merge pull request #2997 from matrix-org/bwindels/pill-avatars
Message editing: render avatars for pills in the editor
2019-05-21 12:11:06 +00:00
Bruno Windels
b00a38a1e5 apply mx_EventTile_content to editor, so it gets the same right margin
this way we don't have to include it in the magic number
2019-05-21 12:18:20 +02:00
Matthew Hodgson
d3f06763b3
Merge branch 'develop' into matthew/twemoji 2019-05-20 16:38:44 +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
Bruno Windels
0c0052d06e re-apply formatting when editor is closed 2019-05-20 10:19:29 +02:00
Matthew Hodgson
dc72641264 replace emojione with twemoji. completely untested & debugged & unoptimised 2019-05-19 15:23:43 +01:00
Bruno Windels
5adae63555 don't apply formatting to body when showing editor in TextualBody
it throws
2019-05-17 16:01:30 +01:00
Bruno Windels
9a3752c571 show message editor in textual body instead of replacing event tile 2019-05-17 15:30:07 +01:00
J. Ryan Stinnett
43c9e6d942 Reactions / editing tooltip tweaks 2019-05-17 15:10:35 +01:00
J. Ryan Stinnett
603e6b7055 Adjust edited tooltip to use shared styles 2019-05-17 12:19:02 +01:00
Bruno Windels
4a6725d4c2 Message editing: show (edited) marker on edited messages, with tooltip 2019-05-17 11:36:36 +01:00
Bruno Windels
d73f547f55 reapply pills, link preview, code highlighting, ... after edit 2019-05-15 15:55:03 +01:00
Bruno Windels
5805a88ab9 adjust to js-sdk changes of marking original event as replaced 2019-05-15 11:54:26 +01: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
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
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
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
Luke Barnard
6345fcb8f2 Fix incorrectly positioned copy button on <pre> blocks 2018-06-27 11:31:55 +01:00
David Baker
e67dae704a Take replies out of labs! 2018-06-20 09:57:11 +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
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
ff0254d346 Fix ContextualMenu imports for TagTile and code block copy button 2018-05-14 17:36:57 +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
Michael Telatynski
b5ed08eba2
Merge
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-03-24 17:52:49 +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
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
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
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
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
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
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
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
Michael Telatynski
c1edc0c32e
add option to disable BigEmoji
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-10-14 19:40:45 +01:00
Luke Barnard
d3f9a3aeb5 Run eslint --fix
Fixing 1000s of lint issues. Some rules cannot be `--fix`ed but this goes some way to linting the entire codebase.
2017-10-11 17:56:17 +01:00
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
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
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