import wixData from 'wix-data';
let lastFilterjobTitle;
let lastFilterlocation
let debounceTimer;
$w.onReady(() => {
//STEP-1: Loading DropDown --> (LOCATIONS)
loadLocations();
//DropdDown-Change (LOCATIONS)
$w('#iLocation').onChange(()=>{
//selected VALUE...
let myValue = $w('#iLocation').value;
//Last filtered job-title???????
//Where is it?
//Ok, starting filtering function....
filter(lastFilterjobTitle, myValue);
});
$w('#iTitle').onKeyPress((event)=>{
if (debounceTimer) {
clearTimeout(debounceTimer);
debounceTimer = undefined;
}
debounceTimer = setTimeout(() => {
filter($w('#iTitle').value, lastFilterlocation);
}, 500);
});
});
function filter(jobTitle, location) {
// jobTitle = undefined!!!
// and again cheking lasterFilteredJobTitle against current jobTitle?
// Whats going on here?
// Till here you never selected lastFilteredJobTitle !!!!
// lastFilterjobTitle = undefined !!!!
// jobTitle = undefined !!!!!
if (lastFilterjobTitle !== jobTitle || lastFilterlocation !== location) {
let newFilter = wixData.filter();
if (jobTitle) {
newFilter = newFilter.contains('jobTitle', jobTitle);
}
if (location) {
newFilter = newFilter.contains('location', location);
$w('#dataset13').setFilter(newFilter);
lastFilterjobTitle = jobTitle;
lastFilterlocation = location;
}
}
}
function loadLocations() {
wixData.query('location')
.find()
.then(res => {
let options = [{"value": '', "label": 'All Location'}];
options.push(...res.items.map(location => {
return {"value": location.jobTitle, "label": location.jobTitle};
}));
$w('#iLocation').options = options;
});
}