mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-07 03:43:48 -05:00
Not everyone knows how to use `ctrl` + `f`, and it’s not scoped to just the list of templates. The template you want to work with is often not the first one in the list, but ordering by created at is useful for other reasons (mainly around first time use). This commit adds a find as you type control which aims to give users a quick way of getting to the template they want to work with.
45 lines
751 B
JavaScript
45 lines
751 B
JavaScript
(function(Modules) {
|
|
"use strict";
|
|
|
|
let normalize = (string) => string.toLowerCase().replace(/ /g,'');
|
|
|
|
let filter = ($searchBox, $targets) => () => {
|
|
|
|
let query = normalize($searchBox.val());
|
|
|
|
$targets.each(function() {
|
|
|
|
let content = $(this).text();
|
|
|
|
$(this).toggle(
|
|
normalize(content).indexOf(normalize(query)) > -1
|
|
);
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
Modules.LiveSearch = function() {
|
|
|
|
this.start = function(component) {
|
|
|
|
let $component = $(component);
|
|
|
|
let $searchBox = $('input', $component);
|
|
|
|
let filterFunc = filter(
|
|
$searchBox,
|
|
$($component.data('targets'))
|
|
);
|
|
|
|
$searchBox.on('keyup input', filterFunc);
|
|
|
|
filterFunc();
|
|
|
|
};
|
|
|
|
};
|
|
|
|
})(window.GOVUK.Modules);
|