diff --git a/docker/frontend/src/Library.tsx b/docker/frontend/src/Library.tsx index a1dece2..6859f7a 100644 --- a/docker/frontend/src/Library.tsx +++ b/docker/frontend/src/Library.tsx @@ -1099,10 +1099,11 @@ function Catalogue() { // so it marks the folder it was asked of. const askedMarks = scanQueue().map((j) => markOf(j.folder, j.rel, '')); 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. - if (n.key !== m.root && !n.key.startsWith(`${m.root}/`)) return false; - // The asked row itself, and every row the asked row sits under. - return n.key === m.own || m.own.startsWith(`${n.key}/`); + if (nKey !== m.root && !nKey.startsWith(`${m.root}/`)) return false; + // The active scanning row itself, and every parent/ancestor row up to root. + return nKey === m.own || m.own.startsWith(`${nKey}/`); }; // A remembered subfolder that no longer holds a frame falls back to the folder diff --git a/docker/frontend/src/engine/library.ts b/docker/frontend/src/engine/library.ts index 51f54d2..e5c39cd 100644 --- a/docker/frontend/src/engine/library.ts +++ b/docker/frontend/src/engine/library.ts @@ -987,8 +987,9 @@ export async function scanFolder( // 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 // folder is being read while it is being read. - const at = rel.lastIndexOf('/'); - progress.at = at < 0 ? '' : rel.slice(0, at); + const relNorm = (rel || '').replace(/\\/g, '/'); + const cut = relNorm.lastIndexOf('/'); + progress.at = cut < 0 ? '' : normPath(relNorm.slice(0, cut)); progress.done++; const read = readOne(handle, rel); const lane = read diff --git a/docker/recipescam-images.tar.gz.sha256 b/docker/recipescam-images.tar.gz.sha256 index 7766166..ffa2fae 100644 --- a/docker/recipescam-images.tar.gz.sha256 +++ b/docker/recipescam-images.tar.gz.sha256 @@ -1 +1 @@ -1fc8c364e5ce6aab769b50d367cd20dd5a8146f8890cc81c491284119a1d12c5 recipescam-images.tar.gz +22618dd3b376178df4c414d7317213af917c936d5195b69d46fe9731356a0da4 recipescam-images.tar.gz