fix(library): fix open location folder tree scroll and folder update path matching
This commit is contained in:
@@ -1018,9 +1018,15 @@ function Catalogue() {
|
||||
// roll's top level usually holds no file of its own.
|
||||
const shown = useMemo(() => {
|
||||
if (!rootName) return photos;
|
||||
const dir = node === rootName ? '' : (node ?? '').slice(rootName.length + 1);
|
||||
const below = dir === '' ? (p: LibraryPhoto) => p.dir !== '' : (p: LibraryPhoto) => p.dir.startsWith(`${dir}/`);
|
||||
return photos.filter((p) => p.folder === rootName && (p.dir === dir || (deep && below(p))));
|
||||
const normRoot = rootName.replace(/\\/g, '/');
|
||||
const normNode = (node ?? '').replace(/\\/g, '/');
|
||||
const dir = normNode === normRoot ? '' : normNode.slice(normRoot.length + 1);
|
||||
const below = dir === '' ? (p: LibraryPhoto) => (p.dir ?? '').replace(/\\/g, '/') !== '' : (p: LibraryPhoto) => (p.dir ?? '').replace(/\\/g, '/').startsWith(`${dir}/`);
|
||||
return photos.filter((p) => {
|
||||
const pFolder = (p.folder ?? '').replace(/\\/g, '/');
|
||||
const pDir = (p.dir ?? '').replace(/\\/g, '/');
|
||||
return pFolder === normRoot && (pDir === dir || (deep && below(p)));
|
||||
});
|
||||
}, [deep, node, photos, rootName]);
|
||||
|
||||
// What the thumbnail view draws, out of what the open node holds. A frame's
|
||||
@@ -2311,7 +2317,7 @@ function Catalogue() {
|
||||
return next;
|
||||
});
|
||||
setTimeout(() => {
|
||||
const el = document.querySelector(`[data-key="lib-folder-${targetNode}"]`) || document.querySelector(`[data-key="lib-folder-${photo.folder}"]`);
|
||||
const el = document.querySelector(`[data-key="lib-node-${targetNode}"]`) || document.querySelector(`[data-key="lib-node-${photo.folder}"]`);
|
||||
if (el) {
|
||||
el.scrollIntoView({ behavior: 'smooth', block: 'center' });
|
||||
el.classList.add('lib-folder-highlight');
|
||||
|
||||
Reference in New Issue
Block a user