From 62d7e0146d471e7623e4ec384a928a828b8780e9 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Thu, 5 Oct 2023 23:22:43 -0300 Subject: content, data: experimental art tag sidebar --- src/content/dependencies/generateArtTagSidebar.js | 31 +++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/content/dependencies/generateArtTagSidebar.js (limited to 'src/content/dependencies/generateArtTagSidebar.js') diff --git a/src/content/dependencies/generateArtTagSidebar.js b/src/content/dependencies/generateArtTagSidebar.js new file mode 100644 index 00000000..51e53d20 --- /dev/null +++ b/src/content/dependencies/generateArtTagSidebar.js @@ -0,0 +1,31 @@ +import {collectTreeLeaves} from '#wiki-data'; + +export default { + contentDependencies: ['generateArtTagAncestorSidebarBox'], + extraDependencies: ['wikiData'], + + sprawl: ({artTagData}) => + ({artTagData}), + + query(sprawl, artTag) { + const baobab = artTag.ancestorArtTagBaobabTree; + const uniqueLeaves = new Set(collectTreeLeaves(baobab)); + + // Just match the order in tag data. + const furthestAncestorArtTags = + sprawl.artTagData + .filter(artTag => uniqueLeaves.has(artTag)); + + return {furthestAncestorArtTags}; + }, + + relations: (relation, query, sprawl, artTag) => ({ + ancestorBoxes: + query.furthestAncestorArtTags + .map(ancestorArtTag => + relation('generateArtTagAncestorSidebarBox', ancestorArtTag, artTag)), + }), + + generate: (relations) => + ({leftSidebarMultiple: relations.ancestorBoxes}), +}; -- cgit 1.3.0-6-gf8a5