From 5c7fed6eda250d91d4babd14da73166425fab85b Mon Sep 17 00:00:00 2001 From: BuildTools Date: Thu, 8 Dec 2016 22:43:21 +0100 Subject: moved function from autocomplete to search --- public/javascripts/search.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'public/javascripts/search.js') 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 -- cgit v1.1