Add tags fields & add findByTags getter

This commit is contained in:
Kevin Van Der Werff
2019-06-22 17:23:29 +02:00
parent b40e3aeeb0
commit a57aa260bc
14 changed files with 382 additions and 185 deletions

View File

@@ -1,9 +1,21 @@
import resources from '../resources/'
/**
* Check if list 2 has an element of list 1.
* includesElOf(list1, list2) -> read as list1 includesElOf list2.
* @param {any[]} list1
* @param {any[]} list2
*/
const includesElOf = (list1, list2) => list1.some(element => list2.includes(element))
export const state = () => resources
export const getters = {
findResources: state => title => {
return state.find(resource => resource.title.toLowerCase() === title.toLowerCase())
},
findByTags: state => tags => {
const flat = state.map(category => category.resources).flat()
return flat.filter(resource => resource.tags && includesElOf(resource.tags, tags))
}
}