ssb: Avoid an unnecessary messages load.
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"type": "tildefriends-app",
|
"type": "tildefriends-app",
|
||||||
"emoji": "🦀",
|
"emoji": "🦀",
|
||||||
"previous": "&JDcwV6jqSMWEgYqq2qRmYDPVhVS5yoasohZnH077RW4=.sha256"
|
"previous": "&+/LuVOJUXuNSQRUD8PSgGzOdsWx47TPDcyUef5An2JQ=.sha256"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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() {
|
async load_messages() {
|
||||||
let start_time = new Date();
|
let start_time = new Date();
|
||||||
let self = this;
|
let self = this;
|
||||||
this.loading++;
|
this.loading++;
|
||||||
let messages = [];
|
let messages = [];
|
||||||
let original_key = JSON.stringify([this.hash, this.channels_latest ?? {}]);
|
let original_key = this.make_messages_key();
|
||||||
try {
|
try {
|
||||||
if (this._messages_key !== original_key) {
|
if (this._messages_key !== original_key) {
|
||||||
this.messages = [];
|
this.messages = [];
|
||||||
@@ -429,7 +436,7 @@ class TfTabNewsFeedElement extends LitElement {
|
|||||||
} finally {
|
} finally {
|
||||||
this.loading--;
|
this.loading--;
|
||||||
}
|
}
|
||||||
let current_key = JSON.stringify([this.hash, this.channels_latest ?? {}]);
|
let current_key = this.make_messages_key();
|
||||||
if (current_key === original_key) {
|
if (current_key === original_key) {
|
||||||
this.messages = this.merge_messages(this.messages, messages);
|
this.messages = this.merge_messages(this.messages, messages);
|
||||||
}
|
}
|
||||||
@@ -486,19 +493,18 @@ class TfTabNewsFeedElement extends LitElement {
|
|||||||
render() {
|
render() {
|
||||||
if (
|
if (
|
||||||
!this.messages ||
|
!this.messages ||
|
||||||
this._messages_key !==
|
this._messages_key !== this.make_messages_key() ||
|
||||||
JSON.stringify([this.hash, this.channels_latest ?? {}]) ||
|
|
||||||
this._messages_following !== JSON.stringify(this.following) ||
|
this._messages_following !== JSON.stringify(this.following) ||
|
||||||
this._private_messages !==
|
(this.hash.startsWith('#🔐') &&
|
||||||
JSON.stringify([
|
this._private_messages !==
|
||||||
this.private_messages,
|
JSON.stringify([
|
||||||
this.grouped_private_messages,
|
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(
|
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();
|
this.load_messages();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user