DTP Social Engine
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

41 lines
1.9 KiB

include ../../sticker/components/sticker
mixin renderChatMessage (message, options = { })
- var authorName = message.author.displayName || message.author.username;
div(
data-message-id= message._id, data-author-id= message.author._id
).chat-message
.uk-margin-small
div(uk-grid).uk-grid-small
.uk-width-auto
+renderProfileIcon(message.author, message.author.displayName || message.author.username, 'xsmall')
.uk-width-expand
.chat-username.uk-text-truncate= message.author.displayName || message.author.username
.uk-text-small.uk-text-muted.uk-text-truncate= message.author.username
if !options.hideMenu && (user && !message.author._id.equals(user._id))
.uk-width-auto.chat-user-menu
button(type="button").uk-button.uk-button-link.chat-menu-button
i.fas.fa-ellipsis-h
div(data-message-id= message._id, uk-dropdown="mode: click").dtp-chatmsg-menu
ul.uk-nav.uk-dropdown-nav
li
a(
href="",
data-message-id= message._id,
data-user-id= message.author._id,
data-username= message.author.username,
onclick="return dtp.app.muteChatUser(event);",
) Mute #{authorName}
//- we're gonna go ahead and force long lines to break, and the content was
//- filtered at ingest for zalgo and HTML/XSS
.chat-content.uk-text-break!= marked.parse(message.content)
//- "time" is filled in by the JavaScript client using the browser's locale
//- information so that "time" is always in the user's display timezone.
.chat-timestamp(data-dtp-timestamp= message.created).uk-text-small
if Array.isArray(message.stickers) && (message.stickers.length > 0)
each sticker in message.stickers
+renderSticker(sticker, { hideSlug: true })