add support for showing filter descriptions in narrativised mode

This commit is contained in:
Lachlan Kermode
2020-06-30 13:24:27 +02:00
parent e381d0d15a
commit a708fd5670
4 changed files with 38 additions and 15 deletions

View File

@@ -198,3 +198,16 @@ export function binarySearch (ar, el, compareFn) {
}
return -m - 1
}
export const isFilterLeaf = node => (Object.keys(node.children).length === 0)
export const isFilterDuplicate = (node, set) => { return (set.has(node.key)) }
export function findDescriptionInFilterTree (key, node) {
if (node.key === key) return node.description
if (isFilterLeaf(node)) return false
const descs = Object.keys(node.children)
.map(c => findDescriptionInFilterTree(key, node.children[c]))
.filter(v => !!v)
if (descs.length !== 1) return false
return descs[0]
}