-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsearch.js
52 lines (44 loc) · 1.44 KB
/
search.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
let searchable = [
'Corporate events',
'Family bonds',
'Graduations',
'Maternity & newborns',
'Small weddings',
];
const searchInput = document.getElementById('search');
const searchWrapper = document.querySelector('.search-container');
const resultsWrapper = document.querySelector('.results');
searchInput.addEventListener('keyup', () => {
let results = [];
let input = searchInput.value;
if (input.length) {
results = searchable.filter((item) => {
return item.toLowerCase().includes(input.toLowerCase());
});
}
renderResults(results);
});
function renderResults(results) {
if (!results.length) {
return searchWrapper.classList.remove('show');
}
const content = results
.map((item) => {
return `<li data-search="${item}">${item}</li>`;
})
.join('');
searchWrapper.classList.add('show');
resultsWrapper.innerHTML = `<ul>${content}</ul>`;
const resultItems = resultsWrapper.querySelectorAll('li'); // Select all result items
resultItems.forEach((item) => {
item.addEventListener('click', () => {
const searchTerm = item.getAttribute('data-search');
navigateToPage(searchTerm); // Call function to navigate
});
});
}
function navigateToPage(searchTerm) {
console.log("Clicked:", searchTerm); // Debugging line
const formattedTerm = searchTerm.replace(/\s+/g, '-').toLowerCase();
window.location.href = `${formattedTerm}.html`; // Redirect to the corresponding page
}