ssb: Bring back the updating date while loading.

This commit is contained in:
Cory McWilliams 2024-12-07 14:58:01 -05:00
parent 1c0964753b
commit 1dbf162a71
3 changed files with 25 additions and 11 deletions

View File

@ -1,5 +1,5 @@
{
"type": "tildefriends-app",
"emoji": "🐌",
"previous": "&LjDy/+vpRFc6dXPOk/+kjlppVMLmKaB6TIZS3WHqoQ8=.sha256"
"previous": "&/JTE4AwvZ1kkbPJne84iMDwbvxsJHJxvX8n+GSlqRPc=.sha256"
}

View File

@ -256,7 +256,6 @@ class TfElement extends LitElement {
UNION
SELECT '' AS channel, MAX(messages.rowid) AS rowid FROM messages
JOIN json_each(?2) AS following ON messages.author = following.value
WHERE messages.content ->> 'type' = 'post'
UNION
SELECT '@' AS channel, MAX(messages.rowid) AS rowid FROM messages_fts(?3)
JOIN messages ON messages.rowid = messages_fts.rowid

View File

@ -15,6 +15,7 @@ class TfTabNewsFeedElement extends LitElement {
channels_unread: {type: Object},
loading: {type: Number},
time_range: {type: Array},
time_loading: {type: Array},
};
}
@ -32,6 +33,7 @@ class TfTabNewsFeedElement extends LitElement {
this.channels_unread = {};
this.start_time = new Date().valueOf();
this.time_range = [0, 0];
this.time_loading = undefined;
this.loading = 0;
}
@ -42,8 +44,10 @@ class TfTabNewsFeedElement extends LitElement {
}
async fetch_messages(start_time, end_time) {
this.time_loading = [start_time, end_time];
let result;
if (this.hash == '#@') {
let r = await tfrpc.rpc.query(
result = await tfrpc.rpc.query(
`
SELECT messages.rowid, messages.id, messages.previous, messages.author, messages.sequence, messages.timestamp, messages.hash, json(messages.content) AS content, messages.signature
FROM messages_fts(?1)
@ -62,9 +66,8 @@ class TfTabNewsFeedElement extends LitElement {
end_time,
]
);
return r;
} else if (this.hash.startsWith('#@')) {
let r = await tfrpc.rpc.query(
result = await tfrpc.rpc.query(
`
WITH mine AS (SELECT rowid, id, previous, author, sequence, timestamp, hash, json(content) AS content, signature
FROM messages
@ -82,9 +85,8 @@ class TfTabNewsFeedElement extends LitElement {
`,
[this.hash.substring(1), start_time, end_time]
);
return r;
} else if (this.hash.startsWith('#%')) {
return await tfrpc.rpc.query(
result = await tfrpc.rpc.query(
`
SELECT id, previous, author, sequence, timestamp, hash, json(content) AS content, signature
FROM messages
@ -143,7 +145,7 @@ class TfTabNewsFeedElement extends LitElement {
)
);
}
return [].concat(...(await Promise.all(promises)));
result = [].concat(...(await Promise.all(promises)));
} else {
let promises = [];
const k_following_limit = 256;
@ -176,8 +178,10 @@ class TfTabNewsFeedElement extends LitElement {
)
);
}
return [].concat(...(await Promise.all(promises)));
result = [].concat(...(await Promise.all(promises)));
}
this.time_loading = undefined;
return result;
}
update_time_range_from_messages(messages) {
@ -306,6 +310,7 @@ class TfTabNewsFeedElement extends LitElement {
this.loading--;
}
this.messages = messages;
this.time_loading = undefined;
console.log(`loading messages done for ${self.whoami}`);
}
@ -363,8 +368,18 @@ class TfTabNewsFeedElement extends LitElement {
Cancel
</button>
<span
>Showing ${new Date(this.time_range[0]).toLocaleDateString()} -
${new Date(this.time_range[1]).toLocaleDateString()}.</span
>Showing
${new Date(
this.time_loading
? Math.min(this.time_loading[0], this.time_range[0])
: this.time_range[0]
).toLocaleDateString()}
-
${new Date(
this.time_loading
? Math.max(this.time_loading[1], this.time_range[1])
: this.time_range[1]
).toLocaleDateString()}.</span
>
</p>
`;