diff --git a/src/TextForEvent.js b/src/TextForEvent.js
index 13870f966c..95066912ac 100644
--- a/src/TextForEvent.js
+++ b/src/TextForEvent.js
@@ -252,18 +252,21 @@ function textForWidgetEvent(event) {
const senderName = event.sender ? event.sender.name : event.getSender();
const previousContent = event.getPrevContent() || {};
const {name, type, url} = event.getContent() || {};
- let widgetName = widgetName || name || type || previousContent.type;
- widgetName = widgetName ? widgetName + ' ' : '';
+ let widgetName = name || previousContent.name || type || previousContent.type || '';
+ // Apply sentence case to widget name
+ if (widgetName && widgetName.length > 0) {
+ widgetName = widgetName[0].toUpperCase() + widgetName.slice(1) + ' ';
+ }
// If the widget was removed, its content should be {}, but this is sufficiently
// equivalent to that condition.
if (url) {
- return _t('%(senderName)s added a %(widgetName)swidget', {
- senderName, widgetName,
+ return _t('%(widgetName)s widget added by %(senderName)s', {
+ widgetName, senderName,
});
} else {
- return _t('%(senderName)s removed a %(widgetName)swidget', {
- senderName, widgetName,
+ return _t('%(widgetName)s widget removed by %(senderName)s', {
+ widgetName, senderName,
});
}
}
diff --git a/src/components/views/elements/AppTile.js b/src/components/views/elements/AppTile.js
index 0dd051ba33..718220c7be 100644
--- a/src/components/views/elements/AppTile.js
+++ b/src/components/views/elements/AppTile.js
@@ -223,44 +223,46 @@ export default React.createClass({
safeWidgetUrl = url.format(parsedWidgetUrl);
}
- if (this.state.loading) {
- appTileBody = (
-
-
-
- );
- } else if (this.state.hasPermissionToLoad == true) {
- if (this.isMixedContent()) {
+ if (this.props.show) {
+ if (this.state.loading) {
+ appTileBody = (
+
+
+
+ );
+ } else if (this.state.hasPermissionToLoad == true) {
+ if (this.isMixedContent()) {
+ appTileBody = (
+
+ );
+ } else {
+ appTileBody = (
+
+
+
+ );
+ }
+ } else {
+ const isRoomEncrypted = MatrixClientPeg.get().isRoomEncrypted(this.props.room.roomId);
appTileBody = (
);
- } else if (this.props.show) {
- appTileBody = (
-
-
-
- );
}
- } else {
- const isRoomEncrypted = MatrixClientPeg.get().isRoomEncrypted(this.props.room.roomId);
- appTileBody = (
-
- );
}
// editing is done in scalar
diff --git a/src/components/views/elements/Pill.js b/src/components/views/elements/Pill.js
index 7dee5f6a40..214abc2329 100644
--- a/src/components/views/elements/Pill.js
+++ b/src/components/views/elements/Pill.js
@@ -171,7 +171,7 @@ const Pill = React.createClass({
}
pillClass = 'mx_UserPill';
href = null;
- onClick = this.onUserPillClicked.bind(this);
+ onClick = this.onUserPillClicked;
}
}
break;
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index aa4f71fcb3..c3ac9e7023 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -972,7 +972,7 @@
"Failed to upload image": "Failed to upload image",
"Failed to update group": "Failed to update group",
"Hide avatars in user and room mentions": "Hide avatars in user and room mentions",
- "%(senderName)s added a %(widgetName)swidget": "%(senderName)s added a %(widgetName)swidget",
- "%(senderName)s removed a %(widgetName)swidget": "%(senderName)s removed a %(widgetName)swidget",
+ "%(widgetName)s widget added by %(senderName)s": "%(widgetName)s widget added by %(senderName)s",
+ "%(widgetName)s widget removed by %(senderName)s": "%(widgetName)s widget removed by %(senderName)s",
"Robot check is currently unavailable on desktop - please use a web browser": "Robot check is currently unavailable on desktop - please use a web browser"
}