ssb: Avoid an unnecessary messages load.
All checks were successful
Build Tilde Friends / Build-Docs (push) Successful in 2m30s
Build Tilde Friends / Build-All (push) Successful in 10m54s

This commit is contained in:
2025-12-15 12:30:27 -05:00
parent ef80c0910c
commit 1a5392d942
2 changed files with 19 additions and 13 deletions

View File

@@ -1,5 +1,5 @@
{
"type": "tildefriends-app",
"emoji": "🦀",
"previous": "&JDcwV6jqSMWEgYqq2qRmYDPVhVS5yoasohZnH077RW4=.sha256"
"previous": "&+/LuVOJUXuNSQRUD8PSgGzOdsWx47TPDcyUef5An2JQ=.sha256"
}

View File

@@ -398,12 +398,19 @@ class TfTabNewsFeedElement extends LitElement {
);
}
make_messages_key() {
return JSON.stringify([
this.hash,
Object.keys(this.channels_latest ?? {}).filter((x) => x != '🔐'),
]);
}
async load_messages() {
let start_time = new Date();
let self = this;
this.loading++;
let messages = [];
let original_key = JSON.stringify([this.hash, this.channels_latest ?? {}]);
let original_key = this.make_messages_key();
try {
if (this._messages_key !== original_key) {
this.messages = [];
@@ -429,7 +436,7 @@ class TfTabNewsFeedElement extends LitElement {
} finally {
this.loading--;
}
let current_key = JSON.stringify([this.hash, this.channels_latest ?? {}]);
let current_key = this.make_messages_key();
if (current_key === original_key) {
this.messages = this.merge_messages(this.messages, messages);
}
@@ -486,19 +493,18 @@ class TfTabNewsFeedElement extends LitElement {
render() {
if (
!this.messages ||
this._messages_key !==
JSON.stringify([this.hash, this.channels_latest ?? {}]) ||
this._messages_key !== this.make_messages_key() ||
this._messages_following !== JSON.stringify(this.following) ||
(this.hash.startsWith('#🔐') &&
this._private_messages !==
JSON.stringify([
this.private_messages,
this.grouped_private_messages,
]) ||
this._channels_latest !==
JSON.stringify(Object.keys(this.channels_latest))
]))
) {
console.log(this._messages_key, this.make_messages_key());
console.log(
`loading messages for ${this.whoami} (messages=${!this.messages},${this._messages_hash != this.hash} following=${this._messages_following !== JSON.stringify(this.following)}, channels=${this._channels_latest !== JSON.stringify(Object.keys(this.channels_latest))}, private=${this._private_messages !== JSON.stringify([this.private_messages, this.grouped_private_messages])},${this.private_messages?.length},${Object.keys(this.grouped_private_messages ?? {}).length})`
`loading messages for ${this.whoami} (messages=${!this.messages},${this._messages_key != this.make_messages_key()} following=${this._messages_following !== JSON.stringify(this.following)}, private=${this._private_messages !== JSON.stringify([this.private_messages, this.grouped_private_messages])},${this.private_messages?.length},${Object.keys(this.grouped_private_messages ?? {}).length})`
);
this.load_messages();
}