Sort categories by `include` props when defined

release
Etienne Lemay 2017-04-07 16:54:07 -04:00
parent 4926b7bd43
commit 81badd784f
1 changed files with 20 additions and 7 deletions

View File

@ -42,14 +42,27 @@ export default class Picker extends React.Component {
let filteredCategories = [] let filteredCategories = []
for (let hash of data.categories) { if (props.include != undefined) {
let isIncluded = props.include == undefined ? true : props.include.indexOf(hash.name.toLowerCase()) > -1 data.categories.sort((a, b) => {
let isExcluded = props.exclude == undefined ? false : props.exclude.indexOf(hash.name.toLowerCase()) > -1 let aName = a.name.toLowerCase()
let bName = b.name.toLowerCase()
if (props.include.indexOf(aName) > props.include.indexOf(bName)) {
return 1
}
return 0
})
}
for (let category of data.categories) {
let isIncluded = props.include == undefined ? true : props.include.indexOf(category.name.toLowerCase()) > -1
let isExcluded = props.exclude == undefined ? false : props.exclude.indexOf(category.name.toLowerCase()) > -1
if (!isIncluded || isExcluded) { continue } if (!isIncluded || isExcluded) { continue }
let newEmojis = [] let newEmojis = []
for (let emoji of hash.emojis) { for (let emoji of category.emojis) {
let unified = data.emojis[emoji].unified let unified = data.emojis[emoji].unified
if (props.emojisToShowFilter(unified)) { if (props.emojisToShowFilter(unified)) {
@ -58,12 +71,12 @@ export default class Picker extends React.Component {
} }
if (newEmojis.length) { if (newEmojis.length) {
let newHash = { let newCategory = {
emojis: newEmojis, emojis: newEmojis,
name: hash.name, name: category.name,
} }
filteredCategories.push(newHash) filteredCategories.push(newCategory)
} }
} }