diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2023-10-05 23:22:43 -0300 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2023-10-05 23:22:43 -0300 |
commit | 62d7e0146d471e7623e4ec384a928a828b8780e9 (patch) | |
tree | 790fb2246ccc9a6dbf64db6d21c6fa4886aac79c /src/content/dependencies/generateArtTagSidebar.js | |
parent | abb73f5e8a2361d133736a6cc5bed5c98206a814 (diff) |
content, data: experimental art tag sidebar
Diffstat (limited to 'src/content/dependencies/generateArtTagSidebar.js')
-rw-r--r-- | src/content/dependencies/generateArtTagSidebar.js | 31 |
1 files changed, 31 insertions, 0 deletions
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}), +}; |