Fix votes multiplying, and make everything expand through the one true state.

git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4150 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
2023-01-26 02:08:14 +00:00
parent f9db1a7acf
commit 0092f24fb9
3 changed files with 12 additions and 9 deletions

View File

@ -12,9 +12,7 @@ class TfMessageElement extends LitElement {
users: {type: Object},
drafts: {type: Object},
raw: {type: Boolean},
content_warning_expanded: {type: Boolean},
blog_data: {type: String},
blog_expanded: {type: Boolean},
expanded: {type: Object},
}
}
@ -197,8 +195,12 @@ class TfMessageElement extends LitElement {
return total;
}
set_expanded(expanded) {
this.dispatchEvent(new CustomEvent('tf-expand', {bubbles: true, composed: true, detail: {id: this.message.id, expanded: expanded}}));
set_expanded(expanded, tag) {
this.dispatchEvent(new CustomEvent('tf-expand', {bubbles: true, composed: true, detail: {id: (this.message.id || '') + (tag || ''), expanded: expanded}}));
}
toggle_expanded(tag) {
this.set_expanded(!this.expanded[(this.message.id || '') + (tag || '')], tag);
}
render_children() {
@ -298,7 +300,7 @@ class TfMessageElement extends LitElement {
this.render_raw() :
unsafeHTML(tfutils.markdown(content.text));
let content_warning = html`
<div style="border: 1px solid #fff; border-radius: 1em; padding: 8px; margin: 4px" @click=${x => self.content_warning_expanded = !self.content_warning_expanded}>${content.contentWarning}</div>
<div style="border: 1px solid #fff; border-radius: 1em; padding: 8px; margin: 4px" @click=${x => this.toggle_expanded(':cw')}>${content.contentWarning}</div>
`;
let content_html =
html`
@ -307,7 +309,7 @@ class TfMessageElement extends LitElement {
`;
let payload =
content.contentWarning ?
self.content_warning_expanded ?
self.expanded[(this.message.id || '') + ':cw'] ?
html`
${content_warning}
${content_html}
@ -351,7 +353,7 @@ class TfMessageElement extends LitElement {
self.blog_data = data;
});
let payload =
this.blog_expanded ?
this.expanded[(this.message.id || '') + ':blog'] ?
html`<div>${this.blog_data ? unsafeHTML(tfutils.markdown(this.blog_data)) : 'Loading...'}</div>` :
undefined;
let body = this.raw ?
@ -359,7 +361,7 @@ class TfMessageElement extends LitElement {
html`
<div
style="border: 1px solid #fff; border-radius: 1em; padding: 8px; margin: 4px; cursor: pointer"
@click=${x => self.blog_expanded = !self.blog_expanded}>
@click=${x => self.toggle_expanded(':blog')}>
<h2>${content.title}</h2>
<div style="display: flex; flex-direction: row">
<img src=/${content.thumbnail}/view></img>

View File

@ -81,6 +81,7 @@ class TfNewsElement extends LitElement {
}
for (let message of messages) {
message.votes = [];
message.parent_message = undefined;
message.child_messages = undefined;
}