Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Message Forwarding #3688

Merged
merged 10 commits into from May 28, 2017
@@ -12,5 +12,8 @@
/.npmrc
.DS_Store
npm-debug.log
electron/dist
electron/pub
/.idea
/config.json
/src/component-index.js
@@ -16,14 +16,14 @@ limitations under the License.

'use strict';

var React = require('react');
const React = require('react');

var MatrixClientPeg = require('matrix-react-sdk/lib/MatrixClientPeg');
var dis = require('matrix-react-sdk/lib/dispatcher');
var sdk = require('matrix-react-sdk');
const MatrixClientPeg = require('matrix-react-sdk/lib/MatrixClientPeg');
const dis = require('matrix-react-sdk/lib/dispatcher');
const sdk = require('matrix-react-sdk');
import { _t } from 'matrix-react-sdk/lib/languageHandler';
var Modal = require('matrix-react-sdk/lib/Modal');
var Resend = require("matrix-react-sdk/lib/Resend");
const Modal = require('matrix-react-sdk/lib/Modal');
const Resend = require("matrix-react-sdk/lib/Resend");
import * as UserSettingsStore from 'matrix-react-sdk/lib/UserSettingsStore';

module.exports = React.createClass({
@@ -46,7 +46,7 @@ module.exports = React.createClass({
},

onViewSourceClick: function() {
var ViewSource = sdk.getComponent('structures.ViewSource');
const ViewSource = sdk.getComponent('structures.ViewSource');
Modal.createDialog(ViewSource, {
content: this.props.mxEvent.event,
}, 'mx_Dialog_viewsource');
@@ -71,9 +71,9 @@ module.exports = React.createClass({
MatrixClientPeg.get().redactEvent(
this.props.mxEvent.getRoomId(), this.props.mxEvent.getId()
).catch(function(e) {
var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
// display error message stating you couldn't delete this.
var code = e.errcode || e.statusCode;
const code = e.errcode || e.statusCode;
Modal.createDialog(ErrorDialog, {
title: _t('Error'),
description: _t('You cannot delete this message. (%(code)s)', {code: code})
@@ -89,6 +89,14 @@ module.exports = React.createClass({
if (this.props.onFinished) this.props.onFinished();
},

onForwardClick: function() {
dis.dispatch({
action: 'forward_event',
content: this.props.mxEvent,
});
this.closeMenu();
},

closeMenu: function() {
if (this.props.onFinished) this.props.onFinished();
},
@@ -100,7 +108,7 @@ module.exports = React.createClass({
if (this.props.onFinished) this.props.onFinished();
},

onQuoteClick: function () {
onQuoteClick: function() {
console.log(this.props.mxEvent);
dis.dispatch({
action: 'quote',
@@ -109,15 +117,16 @@ module.exports = React.createClass({
},

render: function() {
var eventStatus = this.props.mxEvent.status;
var resendButton;
var viewSourceButton;
var viewClearSourceButton;
var redactButton;
var cancelButton;
var permalinkButton;
var unhidePreviewButton;
var externalURLButton;
const eventStatus = this.props.mxEvent.status;
let resendButton;
let redactButton;
let cancelButton;
let forwardButton;
let viewSourceButton;
let viewClearSourceButton;
let unhidePreviewButton;
let permalinkButton;
let externalURLButton;

if (eventStatus === 'not_sent') {
resendButton = (
@@ -143,6 +152,17 @@ module.exports = React.createClass({
);
}

if (!eventStatus && this.props.mxEvent.getType() === 'm.room.message') {
const content = this.props.mxEvent.getContent();
if (content.msgtype && content.msgtype !== 'm.bad.encrypted' && content.hasOwnProperty('body')) {
forwardButton = (
<div className="mx_MessageContextMenu_field" onClick={this.onForwardClick}>
Forward Message
</div>
);
}
}

viewSourceButton = (
<div className="mx_MessageContextMenu_field" onClick={this.onViewSourceClick}>
{ _t('View Source') }
@@ -163,7 +183,7 @@ module.exports = React.createClass({
<div className="mx_MessageContextMenu_field" onClick={this.onUnhidePreviewClick}>
{ _t('Unhide Preview') }
</div>
)
);
}
}

@@ -197,6 +217,7 @@ module.exports = React.createClass({
{resendButton}
{redactButton}
{cancelButton}
{forwardButton}
{viewSourceButton}
{viewClearSourceButton}
{unhidePreviewButton}
@@ -205,5 +226,5 @@ module.exports = React.createClass({
{externalURLButton}
</div>
);
}
},
});
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.