Now I can render blog messages, too.

git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4068 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
2022-12-03 02:18:48 +00:00
parent 8115881c08
commit 1a91b56a1d
3 changed files with 50 additions and 1 deletions

View File

@ -14,6 +14,7 @@ class TfMessageElement extends LitElement {
raw: {type: Boolean},
collapsed: {type: Boolean},
content_warning_expanded: {type: Boolean},
blog_data: {type: String},
}
}
@ -297,6 +298,50 @@ class TfMessageElement extends LitElement {
${this.render_children()}
</div>
`;
} else if (content.type === 'blog') {
let self = this;
console.log('requesting data');
tfrpc.rpc.get_blob(content.blog).then(function(data) {
self.blog_data = data;
});
let body = this.raw ?
this.render_raw() :
html`
<h2>${content.title}</h2>
<div style="border: 1px solid #fff; border-radius: 1em; padding: 8px; margin: 4px: display: flex; flex-direction: row">
<img src=/${content.thumbnail}/view>
<span>${content.summary}</span>
</div>
<div>${this.blog_data ? unsafeHTML(tfutils.markdown(this.blog_data)) : 'Loading...'}</div>
`;
return html`
<style>
code {
white-space: pre-wrap;
overflow-wrap: break-word;
}
div {
overflow-wrap: anywhere;
}
img {
max-width: 100%;
height: auto;
display: block;
}
</style>
<div style="border: 1px solid black; background-color: rgba(255, 255, 255, 0.1); margin-top: 8px; padding: 16px">
<div style="display: flex; flex-direction: row">
<tf-user id=${this.message.author} .users=${this.users}></tf-user>
<span style="flex: 1"></span>
<span style="padding-right: 8px"><a target="_top" href=${'#' + self.message.id}>%</a> ${new Date(this.message.timestamp).toLocaleString()}</span>
<span>${raw_button}</span>
</div>
<div>${body}</div>
${this.render_mentions()}
${this.render_votes()}
</div>
`;
} else if (content.type === 'pub') {
return small_frame(html`
<span>