ssb: Show flagged messages similar to a message with a content warning.
All checks were successful
Build Tilde Friends / Build-All (push) Successful in 9m19s

This commit is contained in:
2025-11-25 19:20:49 -05:00
parent fcd26bac1c
commit 9c36e0db7b
4 changed files with 25 additions and 11 deletions

View File

@@ -1,5 +1,5 @@
{ {
"type": "tildefriends-app", "type": "tildefriends-app",
"emoji": "🦀", "emoji": "🦀",
"previous": "&gc8AmnXs6wU8P+wJo4Q49M0L0M5MrzUB7kWkhuiDBMU=.sha256" "previous": "&ttk+7f/g/WgX4SRItibpx+2t+vs1/OcJm+1Xb1JFv6w=.sha256"
} }

View File

@@ -988,7 +988,11 @@ class TfMessageElement extends LitElement {
style="cursor: pointer" style="cursor: pointer"
@click=${(x) => this.toggle_expanded(':cw')} @click=${(x) => this.toggle_expanded(':cw')}
> >
<p>${content.contentWarning}</p> <p>
${this.message.flags
? `Caution: This message has been flagged ${this.message.flags.length} time${this.message.flags.length == 1 ? '' : 's'}.`
: content.contentWarning}
</p>
<p class="w3-small"> <p class="w3-small">
${this.is_expanded(':cw') ? 'Show less' : 'Show more'} ${this.is_expanded(':cw') ? 'Show less' : 'Show more'}
</p> </p>
@@ -999,7 +1003,8 @@ class TfMessageElement extends LitElement {
<div @click=${this.body_click}>${body}</div> <div @click=${this.body_click}>${body}</div>
${this.render_mentions()} ${this.render_mentions()}
`; `;
let payload = content.contentWarning let payload =
this.message.flags || content.contentWarning
? self.expanded[(this.message.id || '') + ':cw'] ? self.expanded[(this.message.id || '') + ':cw']
? html` ${content_warning} ${content_html} ` ? html` ${content_warning} ${content_html} `
: content_warning : content_warning

View File

@@ -66,6 +66,16 @@ class TfNewsElement extends LitElement {
} }
parent.votes.push(message); parent.votes.push(message);
message.parent_message = message.content.vote.link; message.parent_message = message.content.vote.link;
} else if (message.content.type == 'flag') {
let parent = ensure_message(message.content.flag.link, message.rowid);
if (!parent.flags) {
parent.flags = [];
}
parent.flags.push(message);
parent.flags = Object.values(
Object.fromEntries(parent.flags.map((x) => [x.id, x]))
);
message.parent_message = message.content.flag.link;
} else if (message.content.type == 'post') { } else if (message.content.type == 'post') {
if (message.content.root) { if (message.content.root) {
if (typeof message.content.root === 'string') { if (typeof message.content.root === 'string') {

View File

@@ -84,7 +84,6 @@ class TfTabNewsFeedElement extends LitElement {
`, `,
[JSON.stringify(combined.map((x) => x.id))] [JSON.stringify(combined.map((x) => x.id))]
); );
let t0 = new Date();
let result = [].concat( let result = [].concat(
combined, combined,
await tfrpc.rpc.query( await tfrpc.rpc.query(
@@ -101,8 +100,7 @@ class TfTabNewsFeedElement extends LitElement {
] ]
) )
); );
let t1 = new Date(); console.log(result);
console.log((t1 - t0) / 1000);
return result; return result;
} }
@@ -227,7 +225,8 @@ class TfTabNewsFeedElement extends LitElement {
k_max_results, k_max_results,
] ]
); );
result = (await this.decrypt(result)).filter((x) => x.decrypted); let decrypted = (await this.decrypt(result)).filter((x) => x.decrypted);
result = await this._fetch_related_messages(decrypted);
} else if (this.hash == '#👍') { } else if (this.hash == '#👍') {
result = await tfrpc.rpc.query( result = await tfrpc.rpc.query(
` `