fix(library): propagate active scanning spinner icon along full folder path hierarchy to root

This commit is contained in:
2026-10-08 18:00:49 +07:00
parent c0096c3df4
commit 2ea0475d24
3 changed files with 8 additions and 6 deletions
+4 -3
View File
@@ -1099,10 +1099,11 @@ function Catalogue() {
// so it marks the folder it was asked of. // so it marks the folder it was asked of.
const askedMarks = scanQueue().map((j) => markOf(j.folder, j.rel, '')); const askedMarks = scanQueue().map((j) => markOf(j.folder, j.rel, ''));
const wearsMark = (n: Node, m: Mark): boolean => { const wearsMark = (n: Node, m: Mark): boolean => {
const nKey = normPath(n.key);
// Another roll's rows are neither the reading's nor the request's news. // Another roll's rows are neither the reading's nor the request's news.
if (n.key !== m.root && !n.key.startsWith(`${m.root}/`)) return false; if (nKey !== m.root && !nKey.startsWith(`${m.root}/`)) return false;
// The asked row itself, and every row the asked row sits under. // The active scanning row itself, and every parent/ancestor row up to root.
return n.key === m.own || m.own.startsWith(`${n.key}/`); return nKey === m.own || m.own.startsWith(`${nKey}/`);
}; };
// A remembered subfolder that no longer holds a frame falls back to the folder // A remembered subfolder that no longer holds a frame falls back to the folder
+3 -2
View File
@@ -987,8 +987,9 @@ export async function scanFolder(
// The frame in hand names the folder the reading is standing in, and the // The frame in hand names the folder the reading is standing in, and the
// queue is filled layer by layer, so this is the column's answer to which // queue is filled layer by layer, so this is the column's answer to which
// folder is being read while it is being read. // folder is being read while it is being read.
const at = rel.lastIndexOf('/'); const relNorm = (rel || '').replace(/\\/g, '/');
progress.at = at < 0 ? '' : rel.slice(0, at); const cut = relNorm.lastIndexOf('/');
progress.at = cut < 0 ? '' : normPath(relNorm.slice(0, cut));
progress.done++; progress.done++;
const read = readOne(handle, rel); const read = readOne(handle, rel);
const lane = read const lane = read
+1 -1
View File
@@ -1 +1 @@
1fc8c364e5ce6aab769b50d367cd20dd5a8146f8890cc81c491284119a1d12c5 recipescam-images.tar.gz 22618dd3b376178df4c414d7317213af917c936d5195b69d46fe9731356a0da4 recipescam-images.tar.gz