import { html, render } from 'https://unpkg.com/lit-html?module';
function solve() {
let cached=[];
document.querySelector('#searchBtn').addEventListener('click', onClick);
let inputField = document.getElementById("searchField")
let tbody = document.querySelector("tbody");
console.log(tbody)
//get data
let myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
let requestOptions = {
method: 'GET',
headers: myHeaders,
redirect: 'follow'
};
fetch("http://localhost:3030/jsonstore/advanced/table", requestOptions)
.then(response => response.json())
.then(result => populateTable(Object.values(result)))
.catch(error => console.log('error', error));
function rowTemplate(r) {
return html`
| ${r.firstName} ${r.lastName} |
${r.email} |
${r.course} |
`
}
function selectedRowTemplate(r) {
return html`
| ${r.firstName} ${r.lastName} |
${r.email} |
${r.course} |
`
}
function populateTable(data) {
let rows = data.map(d => rowTemplate(d));
cached=data;
render(rows, tbody);
}
function onClick() {
let queryString = inputField.value;
let differentLis = [];
cached.forEach(r => {
let rowTextContentArr=[r.firstName, r.lastName, r.email,r.course]
let rowTextContent=rowTextContentArr.join(" ")
if (rowTextContent.toLowerCase().includes(queryString.toLowerCase())) {
differentLis.push(selectedRowTemplate(r))
} else {
differentLis.push(rowTemplate(r))
}
})
inputField.value="";
render(differentLis, tbody);
}
}
solve();