diff options
author | BuildTools <Noah Loomans> | 2016-12-08 22:43:21 +0100 |
---|---|---|
committer | BuildTools <Noah Loomans> | 2016-12-08 22:43:21 +0100 |
commit | 5c7fed6eda250d91d4babd14da73166425fab85b (patch) | |
tree | 3a108428592dbd72a92294e19469d8c1b77a29e3 /public/javascripts/search.js | |
parent | c547e6910ea7ad077771343ae75a4204223a118a (diff) |
moved function from autocomplete to search
Diffstat (limited to 'public/javascripts/search.js')
-rw-r--r-- | public/javascripts/search.js | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/public/javascripts/search.js b/public/javascripts/search.js index fb40f78..673afea 100644 --- a/public/javascripts/search.js +++ b/public/javascripts/search.js @@ -1,3 +1,6 @@ +/* global USERS */ + +const fuzzy = require('fuzzy') const autocomplete = require('./autocomplete') const iframe = require('./iframe') @@ -21,9 +24,30 @@ self._handleSubmit = function (event) { self.submit() } +self._calculate = function (searchTerm) { + const allResults = fuzzy.filter(searchTerm, USERS, { + extract: item => item.value + }) + const firstResults = allResults.slice(0, 7) + + const originalResults = firstResults.map(result => result.original) + + return originalResults +} + +self._handleTextUpdate = function () { + const results = self._calculate(self._nodes.input.value) + + autocomplete.removeAllItems() + for (let i = 0; i < results.length; i++) { + autocomplete.addItem(results[i]) + } +} + autocomplete.events.on('select', self.submit) self._nodes.search.addEventListener('submit', self._handleSubmit) +self._nodes.input.addEventListener('input', self._handleTextUpdate) self._nodes.input.addEventListener('focus', autocomplete.show) // TODO: hide on escape key press |