@jonatandor35 I really appreciate your guidance with this! I made the fix and get no more errors in the Editor, but on the live site the code is not working…
I ran some console logs to check where it gets stuck and I get some errors around the “let relevantValues = roles.map” line. Any ideas for a fix?
My code below:
import wixUsers from 'wix-users';
import wixWindow from 'wix-window';
import wixLocation from 'wix-location';
import wixData from 'wix-data';
let user = wixUsers.currentUser;
$w.onReady(function () {
$w('#stripLoading').expand();
$w('#repeaterStrip').collapse();
if (user.loggedIn) {
user.getRoles()
.then(r => {
let roleValues = [
{role: "EXP Treasure Box", value: "expTB" },
{role: "EXP Treasure Box", value: "expMM" },
{role: "mcGrade1", value: "nc1" },
] //etc
console.log("roles defined");
let filter = wixData.filter();
console.log("let filter");
let roles = r.name;
console.log("let roles");
let relevantValues = roles.map(e => roleValues.find(i => i.role === e).value);
console.log("let relevant values"); // this message doesn't appear, so this is where it gets stuck
filter = filter.eq("roleFilter", relevantValues[0]);
console.log("filter");
relevantValues.shift();
console.log("relevant values shift");
if (relevantValues.length > 0) {
relevantValues.forEach(e => {
filter = filter.or(wixData.filter().eq("roleFilter", e));
})
}
$w("#ocDataset").setFilter(filter).then(() => {
console.log("Dataset is now filtered");
ordersView();
})
.catch((err) => {
console.log(err);
});
})
}
})
