diff --git a/package.json b/package.json index 2cbdb98c2e..effa135d72 100644 --- a/package.json +++ b/package.json @@ -85,15 +85,15 @@ "react-dom": "^15.6.0", "react-gemini-scrollbar": "matrix-org/react-gemini-scrollbar#5e97aef", "resize-observer-polyfill": "^1.5.0", + "sanitize-html": "^1.18.4", "slate": "0.34.7", - "slate-react": "^0.12.4", "slate-html-serializer": "^0.6.1", "slate-md-serializer": "matrix-org/slate-md-serializer#f7c4ad3", - "sanitize-html": "^1.18.4", + "slate-react": "^0.12.4", "text-encoding-utf-8": "^1.0.1", "url": "^0.11.0", "velocity-vector": "vector-im/velocity#059e3b2", - "whatwg-fetch": "^1.0.0" + "whatwg-fetch": "^1.1.1" }, "devDependencies": { "babel-cli": "^6.5.2", diff --git a/src/TextForEvent.js b/src/TextForEvent.js index 91ae5d0d70..a17bd7838e 100644 --- a/src/TextForEvent.js +++ b/src/TextForEvent.js @@ -199,7 +199,7 @@ function textForMessageEvent(ev) { } function textForRoomAliasesEvent(ev) { - const senderName = event.sender ? event.sender.name : event.getSender(); + const senderName = ev.sender && ev.sender.name ? ev.sender.name : ev.getSender(); const oldAliases = ev.getPrevContent().aliases || []; const newAliases = ev.getContent().aliases || []; @@ -211,13 +211,13 @@ function textForRoomAliasesEvent(ev) { } if (addedAliases.length && !removedAliases.length) { - return _t('%(senderName)s added %(addedAddresses)s as addresses for this room.', { + return _t('%(senderName)s added %(count)s %(addedAddresses)s as addresses for this room.', { senderName: senderName, count: addedAliases.length, addedAddresses: addedAliases.join(', '), }); } else if (!addedAliases.length && removedAliases.length) { - return _t('%(senderName)s removed %(removedAddresses)s as addresses for this room.', { + return _t('%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.', { senderName: senderName, count: removedAliases.length, removedAddresses: removedAliases.join(', '), @@ -228,17 +228,10 @@ function textForRoomAliasesEvent(ev) { addedAddresses: addedAliases.join(', '), removedAddresses: removedAliases.join(', '), }; - /* eslint-disable max-len */ - if (addedAliases.length === 1 && removedAliases.length === 1) { - return _t('%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.|one,one', args); - } else if (addedAliases.length !== 1 && removedAliases.length === 1) { - return _t('%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.|other,one', args); - } else if (addedAliases.length === 1 && removedAliases.length !== 1) { - return _t('%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.|one,other', args); - } else { - return _t('%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.|other,other', args); - } - /* eslint-enable max-len */ + return _t( + '%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.', + args, + ); } } diff --git a/src/components/views/messages/RoomAliasesEvent.js b/src/components/views/messages/RoomAliasesEvent.js index 7d9b2e6795..f15c5caf49 100644 --- a/src/components/views/messages/RoomAliasesEvent.js +++ b/src/components/views/messages/RoomAliasesEvent.js @@ -14,6 +14,16 @@ See the License for the specific language governing permissions and limitations under the License. */ +/**************************************************************** + ** ** + ** THIS CLASS IS NOT USED TO RENDER ALIAS CHANGES, IN ORDER ** + ** TO TRY TO KEEP THINGS SIMPLE AND JUST USE TextualEvent. ** + ** ** + ** The code is kept here for ease of reference in future ** + ** should we need the GenericEventListSummary stuff ** + ** ** + ****************************************************************/ + 'use strict'; import React from 'react'; @@ -69,10 +79,8 @@ export class GenericEventListSummary extends React.Component { let summaryContainer = null; if (showSummary) { summaryContainer = ( -
-
- {this.props.summary} -
+
+ {this.props.summary}
); } @@ -140,10 +148,14 @@ export default class RoomAliasesEvent extends React.Component { const changes = []; addedAliases.forEach((alias) => { - changes.push(
Added {alias}
); + changes.push(
{_t('%(senderName)s added %(alias)s', { + senderName, alias, + })}
); }); removedAliases.forEach((alias) => { - changes.push(
Removed {alias}
); + changes.push(
{_t('%(senderName)s removed %(alias)s', { + senderName, alias, + })}
); }); const summary = _t('%(senderName)s changed the addresses of this room.', {senderName}); diff --git a/src/components/views/rooms/EventTile.js b/src/components/views/rooms/EventTile.js index 50e74bc6e4..dd93171e90 100644 --- a/src/components/views/rooms/EventTile.js +++ b/src/components/views/rooms/EventTile.js @@ -47,7 +47,8 @@ const eventTileTypes = { }; const stateEventTileTypes = { - 'm.room.aliases': 'messages.RoomAliasesEvent', + 'm.room.aliases': 'messages.TextualEvent', + // 'm.room.aliases': 'messages.RoomAliasesEvent', // too complex 'm.room.create': 'messages.RoomCreate', 'm.room.member': 'messages.TextualEvent', 'm.room.name': 'messages.TextualEvent', @@ -484,7 +485,9 @@ module.exports = withMatrixClient(React.createClass({ const eventType = this.props.mxEvent.getType(); // Info messages are basically information about commands processed on a room - const isInfoMessage = (eventType !== 'm.room.message' && eventType !== 'm.sticker' && eventType != 'm.room.create'); + const isInfoMessage = ( + eventType !== 'm.room.message' && eventType !== 'm.sticker' && eventType != 'm.room.create' + ); const tileHandler = getHandlerTile(this.props.mxEvent); // This shouldn't happen: the caller should check we support this type diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 3de0f2d5c1..bb48e0325e 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -1250,7 +1250,10 @@ "%(senderName)s added %(count)s %(addedAddresses)s as addresses for this room.|other": "%(senderName)s added %(addedAddresses)s as addresses for this room.", "%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.|one": "%(senderName)s removed %(removedAddresses)s as an address for this room.", "%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.|other": "%(senderName)s removed %(removedAddresses)s as addresses for this room.", + "%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.": "%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.", "%(senderName)s changed the addresses of this room.": "%(senderName)s changed the addresses of this room.", + "%(senderName)s added %(addedAddresses)s": "%(senderName)s added %(addedAddresses)s", + "%(senderName)s removed %(addedAddresses)s": "%(senderName)s removed %(addedAddresses)s", "File to import": "File to import", "Import": "Import", "Failed to set direct chat tag": "Failed to set direct chat tag",