Yes, I get it…but it creates issues. I’ll repost the code below that is often used. However, the use of All Categories creates an issue when you have a dataset filter applied. When a repeater is first visited, all is set correctly per the filter. However, once you start using search and then “return” to All Categories, it actually takes you out of the dataset filter and you are then showing the whole dataset.
Remedy?
import wixData from “wix-data”;
import { local } from ‘wix-storage’;
let lastFilterCombination
let lastFilterbusinessCategory;
$w.onReady(() => {
loadCatalogue();
});
let debounceTimer
export function iTitle_keyPress(event, $w) {
if (debounceTimer) {
clearTimeout(debounceTimer);
debounceTimer = undefined;
}
debounceTimer = setTimeout(() => {
filter($w(‘#iTitle’).value, lastFilterbusinessCategory);
}, 500);
}
export function iCategory_change(event) {
filter(lastFilterCombination, $w(‘#iCategory’).value);
}
function filter(combination, businessCategory) {
if (lastFilterCombination !== combination || lastFilterbusinessCategory !== businessCategory) {
let newFilter = wixData.filter();
if (combination)
newFilter = newFilter.contains(‘combination’, combination);
if (businessCategory)
newFilter = newFilter.contains(‘businessCategory’, businessCategory);
$w(‘#dataset5’).setFilter(newFilter);
lastFilterCombination = combination;
lastFilterbusinessCategory = businessCategory;
}
}
function loadCatalogue() {
wixData.query(‘Catalogue’)
.find()
.then(res => {
let options = [{ “value”: ‘’, “label”: ‘ALL CATEGORIES’ }];
options.push(…res.items.map(category => {
return { “value”: category.title, “label”: category.title };
}));
$w(‘#iCategory’).options = options;
});
}
export function iTitle_change(event) {
//Add your code for this event here:
}