diff --git a/app/containers/MessageActions.js b/app/containers/MessageActions.js
index 518cfb36a..12422da27 100644
--- a/app/containers/MessageActions.js
+++ b/app/containers/MessageActions.js
@@ -5,7 +5,6 @@ import { connect } from 'react-redux';
import ActionSheet from 'react-native-actionsheet';
import * as moment from 'moment';
-import realm from '../lib/realm';
import {
deleteRequest,
editInit,
@@ -22,11 +21,6 @@ import {
showActions: state.messages.showActions,
actionMessage: state.messages.actionMessage,
user: state.login.user,
- usersTyping: state.room.usersTyping,
- server: state.server.server,
- Site_Url: state.settings.Site_Url,
- Message_TimeFormat: state.settings.Message_TimeFormat,
- loading: state.messages.isFetching,
permissions: state.permissions,
permalink: state.messages.permalink,
Message_AllowDeleting: state.settings.Message_AllowDeleting,
@@ -51,7 +45,7 @@ export default class MessageActions extends React.Component {
static propTypes = {
actionsHide: PropTypes.func.isRequired,
showActions: PropTypes.bool.isRequired,
- rid: PropTypes.string,
+ room: PropTypes.object,
actionMessage: PropTypes.object,
user: PropTypes.object,
permissions: PropTypes.object.isRequired,
@@ -68,10 +62,7 @@ export default class MessageActions extends React.Component {
Message_AllowEditing: PropTypes.bool,
Message_AllowEditing_BlockEditInMinutes: PropTypes.number,
Message_AllowPinning: PropTypes.bool,
- Message_AllowStarring: PropTypes.bool,
- hasEditPermission: PropTypes.bool,
- hasDeletePermission: PropTypes.bool,
- hasForceDeletePermission: PropTypes.bool
+ Message_AllowStarring: PropTypes.bool
};
constructor(props) {
@@ -82,10 +73,8 @@ export default class MessageActions extends React.Component {
quote: false
};
this.handleActionPress = this.handleActionPress.bind(this);
- this.options = ['Cancel', 'Delete'];
- // permissions
- this.room = realm.objects('subscriptions').filtered('rid = $0', this.props.rid);
- const { roles } = this.room[0];
+ this.options = [''];
+ const { roles } = this.props.room[0];
const roomRoles = Array.from(Object.keys(roles), i => roles[i].value);
const userRoles = this.props.user.roles || [];
const mergedRoles = [...new Set([...roomRoles, ...userRoles])];
@@ -106,34 +95,34 @@ export default class MessageActions extends React.Component {
this.options.push('Reply');
this.REPLY_INDEX = this.options.length - 1;
// Edit
- // if (this.allowEdit()) {
- // this.options.push('Edit');
- // this.EDIT_INDEX = this.options.length - 1;
- // }
- // // Permalink
- // this.options.push('Copy Permalink');
- // this.PERMALINK_INDEX = this.options.length - 1;
- // // Copy
- // this.options.push('Copy Message');
- // this.COPY_INDEX = this.options.length - 1;
- // // Quote
- // this.options.push('Quote');
- // this.QUOTE_INDEX = this.options.length - 1;
- // // Star
- // if (this.props.Message_AllowStarring) {
- // this.options.push('Star');
- // this.STAR_INDEX = this.options.length - 1;
- // }
- // // Pin
- // if (this.props.Message_AllowPinning) {
- // this.options.push('Pin');
- // this.PIN_INDEX = this.options.length - 1;
- // }
- // // Delete
- // if (this.allowDelete()) {
- // this.options.push('Delete');
- // this.DELETE_INDEX = this.options.length - 1;
- // }
+ if (this.allowEdit(nextProps)) {
+ this.options.push('Edit');
+ this.EDIT_INDEX = this.options.length - 1;
+ }
+ // Permalink
+ this.options.push('Copy Permalink');
+ this.PERMALINK_INDEX = this.options.length - 1;
+ // Copy
+ this.options.push('Copy Message');
+ this.COPY_INDEX = this.options.length - 1;
+ // Quote
+ this.options.push('Quote');
+ this.QUOTE_INDEX = this.options.length - 1;
+ // Star
+ if (this.props.Message_AllowStarring) {
+ this.options.push('Star');
+ this.STAR_INDEX = this.options.length - 1;
+ }
+ // Pin
+ if (this.props.Message_AllowPinning) {
+ this.options.push('Pin');
+ this.PIN_INDEX = this.options.length - 1;
+ }
+ // Delete
+ if (this.allowDelete(nextProps)) {
+ this.options.push('Delete');
+ this.DELETE_INDEX = this.options.length - 1;
+ }
setTimeout(() => {
this.ActionSheet.show();
});
@@ -156,7 +145,7 @@ export default class MessageActions extends React.Component {
let msg = `[ ](${ nextProps.permalink }) `;
// if original message wasn't sent by current user and neither from a direct room
- if (this.props.user.username !== this.props.actionMessage.u.username && this.room[0].t !== 'd') {
+ if (this.props.user.username !== this.props.actionMessage.u.username && this.props.room[0].t !== 'd') {
msg += `@${ this.props.actionMessage.u.username } `;
}
this.props.setInput({ msg });
@@ -164,19 +153,19 @@ export default class MessageActions extends React.Component {
}
}
- isOwn = () => this.props.actionMessage.u && this.props.actionMessage.u._id === this.props.user.id;
+ isOwn = props => props.actionMessage.u && props.actionMessage.u._id === props.user.id;
- allowEdit = () => {
- const editOwn = this.isOwn();
- const { Message_AllowEditing: isEditAllowed, hasEditPermission } = this.props;
- if (!(hasEditPermission || (isEditAllowed && editOwn))) {
+ allowEdit = (props) => {
+ const editOwn = this.isOwn(props);
+ const { Message_AllowEditing: isEditAllowed } = this.props;
+ if (!(this.hasEditPermission || (isEditAllowed && editOwn))) {
return false;
}
const blockEditInMinutes = this.props.Message_AllowEditing_BlockEditInMinutes;
if (blockEditInMinutes) {
let msgTs;
- if (this.props.actionMessage.ts != null) {
- msgTs = moment(this.props.actionMessage.ts);
+ if (props.actionMessage.ts != null) {
+ msgTs = moment(props.actionMessage.ts);
}
let currentTsDiff;
if (msgTs != null) {
@@ -187,20 +176,20 @@ export default class MessageActions extends React.Component {
return true;
}
- allowDelete = () => {
- const deleteOwn = this.isOwn();
- const { hasDeletePermission, hasForceDeletePermission, Message_AllowDeleting: isDeleteAllowed } = this.props;
- if (!(hasDeletePermission || (isDeleteAllowed && deleteOwn) || this.props.hasForceDeletePermission)) {
+ allowDelete = (props) => {
+ const deleteOwn = this.isOwn(props);
+ const { Message_AllowDeleting: isDeleteAllowed } = this.props;
+ if (!(this.hasDeletePermission || (isDeleteAllowed && deleteOwn) || this.hasForceDeletePermission)) {
return false;
}
- if (hasForceDeletePermission) {
+ if (this.hasForceDeletePermission) {
return true;
}
const blockDeleteInMinutes = this.props.Message_AllowDeleting_BlockDeleteInMinutes;
if (blockDeleteInMinutes != null && blockDeleteInMinutes !== 0) {
let msgTs;
- if (this.props.actionMessage.ts != null) {
- msgTs = moment(this.props.actionMessage.ts);
+ if (props.actionMessage.ts != null) {
+ msgTs = moment(props.actionMessage.ts);
}
let currentTsDiff;
if (msgTs != null) {
@@ -246,7 +235,6 @@ export default class MessageActions extends React.Component {
handlePermalink() {
this.setState({ copyPermalink: true });
- console.warn(this.props.actionMessage)
this.props.permalinkRequest(this.props.actionMessage);
}
@@ -293,7 +281,7 @@ export default class MessageActions extends React.Component {
default:
break;
}
- // this.props.actionsHide();
+ this.props.actionsHide();
}
render() {
diff --git a/app/containers/MessageBox.js b/app/containers/MessageBox.js
index 5e3d6e1ba..1b0c13a40 100644
--- a/app/containers/MessageBox.js
+++ b/app/containers/MessageBox.js
@@ -56,7 +56,7 @@ export default class MessageBox extends React.Component {
}
componentWillReceiveProps(nextProps) {
- if (this.props.message !== nextProps.message && nextProps.message && nextProps.editing) {
+ if (this.props.message !== nextProps.message && nextProps.message) {
this.component.setNativeProps({ text: nextProps.message.msg });
this.component.focus();
} else if (!nextProps.message) {
diff --git a/app/containers/message/index.js b/app/containers/message/index.js
index 5485a8ed3..4cc67c123 100644
--- a/app/containers/message/index.js
+++ b/app/containers/message/index.js
@@ -49,7 +49,7 @@ export default class Message extends React.Component {
onLongPress() {
const { item } = this.props;
- this.props.actionsShow(item);
+ this.props.actionsShow(JSON.parse(JSON.stringify(item)));
}
isDeleted() {
diff --git a/app/views/RoomView.js b/app/views/RoomView.js
index e4c3aa059..d39e704ab 100644
--- a/app/views/RoomView.js
+++ b/app/views/RoomView.js
@@ -225,7 +225,7 @@ export default class RoomView extends React.Component {
{this.renderFooter()}
{this.usersTyping}
-
+
);
}