|
@@ -18,10 +18,9 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-// FIXME let events bubble
|
|
|
import { mapGetters } from 'vuex'
|
|
|
|
|
|
-import { searchInNode } from '@/store/utils'
|
|
|
+import { searchInNode, tagsInNode } from '@/store/utils'
|
|
|
import { NodeView } from '@/components/nodes'
|
|
|
|
|
|
|
|
@@ -33,14 +32,16 @@ export default {
|
|
|
},
|
|
|
|
|
|
computed: {
|
|
|
- ...mapGetters(['orderedTextsDepart', 'search']),
|
|
|
+ ...mapGetters(['orderedTextsDepart', 'search', 'tags']),
|
|
|
|
|
|
filteredNodes () {
|
|
|
if (!this.orderedTextsDepart) return {}
|
|
|
const nodesGroups = {}
|
|
|
const search = this.search.toLowerCase()
|
|
|
Object.entries(this.orderedTextsDepart).forEach(([char, nodes]) => {
|
|
|
- const filteredNodes = nodes.filter(node => searchInNode(search, node))
|
|
|
+ const filteredNodes = nodes
|
|
|
+ .filter(node => tagsInNode(this.tags, node.tags))
|
|
|
+ .filter(node => searchInNode(search, node))
|
|
|
if (filteredNodes.length) {
|
|
|
nodesGroups[char] = filteredNodes
|
|
|
}
|