add search filters to LibraryList and LibraryMap
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
<template>
|
||||
<div class="library-list">
|
||||
<div class="library-list-container">
|
||||
<div v-for="(parents, char) in orderedTextsDepart" :key="char">
|
||||
<div v-for="(parents, char) in filteredNodes" :key="char">
|
||||
<h3>{{ char }}</h3>
|
||||
|
||||
<div class="library-list-nodes-group">
|
||||
<node-view
|
||||
v-for="parent in parents" :key="parent.id"
|
||||
@@ -20,18 +21,32 @@
|
||||
// FIXME let events bubble
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
import { searchInNode } from '@/store/utils'
|
||||
import { NodeView } from '@/components/nodes'
|
||||
|
||||
|
||||
export default {
|
||||
name: 'CardList',
|
||||
name: 'LibraryList',
|
||||
|
||||
components: {
|
||||
NodeView
|
||||
},
|
||||
|
||||
computed: {
|
||||
...mapGetters(['orderedTextsDepart'])
|
||||
...mapGetters(['orderedTextsDepart', 'search']),
|
||||
|
||||
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))
|
||||
if (filteredNodes.length) {
|
||||
nodesGroups[char] = filteredNodes
|
||||
}
|
||||
})
|
||||
return nodesGroups
|
||||
}
|
||||
},
|
||||
|
||||
created () {
|
||||
|
||||
Reference in New Issue
Block a user