Skip to content
This repository was archived by the owner on Sep 11, 2024. It is now read-only.

Commit 73bdfe8

Browse files
authored
Merge pull request #791 from matrix-org/luke/feature-clickable-emotes
Click emote sender -> insert display name into composer
2 parents 880a484 + 6c09a08 commit 73bdfe8

File tree

1 file changed

+30
-12
lines changed

1 file changed

+30
-12
lines changed

src/components/views/messages/TextualBody.js

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,18 @@ limitations under the License.
1616

1717
'use strict';
1818

19-
var React = require('react');
20-
var ReactDOM = require('react-dom');
21-
var highlight = require('highlight.js');
22-
var HtmlUtils = require('../../../HtmlUtils');
23-
var linkify = require('linkifyjs');
24-
var linkifyElement = require('linkifyjs/element');
25-
var linkifyMatrix = require('../../../linkify-matrix');
26-
var sdk = require('../../../index');
27-
var ScalarAuthClient = require("../../../ScalarAuthClient");
28-
var Modal = require("../../../Modal");
29-
var SdkConfig = require('../../../SdkConfig');
19+
import React from 'react';
20+
import ReactDOM from 'react-dom';
21+
import highlight from 'highlight.js';
22+
import * as HtmlUtils from '../../../HtmlUtils';
23+
import * as linkify from 'linkifyjs';
24+
import linkifyElement from 'linkifyjs/element';
25+
import linkifyMatrix from '../../../linkify-matrix';
26+
import sdk from '../../../index';
27+
import ScalarAuthClient from '../../../ScalarAuthClient';
28+
import Modal from '../../../Modal';
29+
import SdkConfig from '../../../SdkConfig';
30+
import dis from '../../../dispatcher';
3031

3132
linkifyMatrix(linkify);
3233

@@ -187,6 +188,15 @@ module.exports = React.createClass({
187188
this.forceUpdate();
188189
},
189190

191+
onEmoteSenderClick: function(event) {
192+
const mxEvent = this.props.mxEvent;
193+
const name = mxEvent.sender ? mxEvent.sender.name : mxEvent.getSender();
194+
dis.dispatch({
195+
action: 'insert_displayname',
196+
displayname: name.replace(' (IRC)', ''),
197+
});
198+
},
199+
190200
getEventTileOps: function() {
191201
var self = this;
192202
return {
@@ -273,7 +283,15 @@ module.exports = React.createClass({
273283
const name = mxEvent.sender ? mxEvent.sender.name : mxEvent.getSender();
274284
return (
275285
<span ref="content" className="mx_MEmoteBody mx_EventTile_content">
276-
* <EmojiText>{name}</EmojiText> { body }
286+
*&nbsp;
287+
<EmojiText
288+
className="mx_MEmoteBody_sender"
289+
onClick={this.onEmoteSenderClick}
290+
>
291+
{name}
292+
</EmojiText>
293+
&nbsp;
294+
{ body }
277295
{ widgets }
278296
</span>
279297
);

0 commit comments

Comments
 (0)