mirror of
https://github.com/vector-im/element-web.git
synced 2024-11-16 21:24:59 +08:00
Implement TextualEvent tiles for im.vector.modular.widgets
E.g. "Bob added a Acme widget", "Susan removed a Giraffe widget" The name is calculated by taking the `name` in the event content, falling back on the `type`, falling back on the previous content `type`. This is then capitalised.
This commit is contained in:
parent
0935f26cf3
commit
acc54b97f1
@ -248,6 +248,26 @@ function textForPowerEvent(event) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function textForWidgetEvent(event) {
|
||||||
|
const senderName = event.sender ? event.sender.name : event.getSender();
|
||||||
|
const previousContent = event.getPrevContent() ? event.getPrevContent() : {};
|
||||||
|
const {name, type} = event.getContent() ? event.getContent() : {};
|
||||||
|
let widgetName = widgetName || name || type || previousContent.type || '';
|
||||||
|
|
||||||
|
// Apply sentence case
|
||||||
|
widgetName = widgetName ? widgetName[0].toUpperCase() + widgetName.slice(1).toLowerCase() + ' ' : '';
|
||||||
|
|
||||||
|
if (event.getContent().url) {
|
||||||
|
return _t('%(senderName)s added a %(widgetName)swidget', {
|
||||||
|
senderName, widgetName,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
return _t('%(senderName)s removed a %(widgetName)swidget', {
|
||||||
|
senderName, widgetName,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var handlers = {
|
var handlers = {
|
||||||
'm.room.message': textForMessageEvent,
|
'm.room.message': textForMessageEvent,
|
||||||
'm.room.name': textForRoomNameEvent,
|
'm.room.name': textForRoomNameEvent,
|
||||||
@ -260,6 +280,8 @@ var handlers = {
|
|||||||
'm.room.history_visibility': textForHistoryVisibilityEvent,
|
'm.room.history_visibility': textForHistoryVisibilityEvent,
|
||||||
'm.room.encryption': textForEncryptionEvent,
|
'm.room.encryption': textForEncryptionEvent,
|
||||||
'm.room.power_levels': textForPowerEvent,
|
'm.room.power_levels': textForPowerEvent,
|
||||||
|
|
||||||
|
'im.vector.modular.widgets': textForWidgetEvent,
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
@ -44,6 +44,8 @@ var eventTileTypes = {
|
|||||||
'm.room.history_visibility' : 'messages.TextualEvent',
|
'm.room.history_visibility' : 'messages.TextualEvent',
|
||||||
'm.room.encryption' : 'messages.TextualEvent',
|
'm.room.encryption' : 'messages.TextualEvent',
|
||||||
'm.room.power_levels' : 'messages.TextualEvent',
|
'm.room.power_levels' : 'messages.TextualEvent',
|
||||||
|
|
||||||
|
'im.vector.modular.widgets': 'messages.TextualEvent',
|
||||||
};
|
};
|
||||||
|
|
||||||
var MAX_READ_AVATARS = 5;
|
var MAX_READ_AVATARS = 5;
|
||||||
|
@ -969,5 +969,7 @@
|
|||||||
"Automatically replace plain text Emoji": "Automatically replace plain text Emoji",
|
"Automatically replace plain text Emoji": "Automatically replace plain text Emoji",
|
||||||
"Failed to upload image": "Failed to upload image",
|
"Failed to upload image": "Failed to upload image",
|
||||||
"Failed to update group": "Failed to update group",
|
"Failed to update group": "Failed to update group",
|
||||||
"Hide avatars in user and room mentions": "Hide avatars in user and room mentions"
|
"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"
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user