Members Code: This goes in the masterPage.js
import wixUsers from 'wix-users';
import wixData from 'wix-data';
import wixLocation from 'wix-location';
$w.onReady( () => {
if(wixUsers.currentUser.loggedIn) {
$w("#loginButton").label = "Logout";
$w("#profileButton").show();
} else {
$w("#loginButton").label = "Login";
$w("#profileButton").hide();
}
} );
export function loginButton_click(event) {
// user is logged in
if(wixUsers.currentUser.loggedIn) {
// log the user out
Promise.all( [ wixLocation.to('/#page1'), wixUsers.logout() ] )
.then( () => {
// update buttons accordingly
$w("#loginButton").label = "Login";
$w("#profileButton").hide();
} );
}
// user is logged out
else {
let userId;
let userEmail;
// prompt the user to log in
wixUsers.promptLogin( {"mode": "login"} )
.then( (user) => {
userId = user.id;
return user.getEmail();
} )
.then( (email) => {
// check if there is an item for the user in the collection
userEmail = email;
return wixData.query("Agents")
.eq("_id", userId)
.find();
} )
.then( (results) => {
// if an item for the user is not found
if (results.items.length === 0) {
// create an item
const toInsert = {
"_id": userId,
"email": userEmail
};
// add the item to the collection
wixData.insert("Agents", toInsert)
.catch( (err) => {
console.log(err);
} );
}
// update buttons accordingly
$w("#loginButton").label = "Logout";
$w("#profileButton").show();
} )
.catch( (err) => {
console.log(err);
} );
}
}
export function profileButton_click(event) {
wixLocation.to(`/agents/${wixUsers.currentUser.id}`);
}
DROPDOWN CODE
///////////////// THIS CODE GOES IN THE HOME PAGE. ////////////////
/////////// HOME DROPDOWN FILTERS //////
import wixData from 'wix-data';
export function search() {
wixData.query("Properties")
.contains("mainLocation", String($w("#dropdown1").value))
.contains("type", String($w("#dropdown2").value))
.contains("bathrooms", String($w("#dropdown3").value))
.contains("bedrooms", String($w("#dropdown4").value))
.find()
.then( results => {
$w("#repeatermain").data = results.items;
$w("#pagination1").hide();
});
}
export function SubmitBTN_click(event) {
search();
}
export function ResetBTN_click(event) {
$w('#searchDataset').setFilter(wixData.filter())
$w("#pagination1").show();
$w('#dropdown1').value = undefined;
$w('#dropdown2').value = undefined;
$w('#dropdown3').value = undefined;
$w('#dropdown4').value = undefined;
}
BOX STATES - CHANGE USING BUTTONS
////////////////// BOX STATES - CHANGE STATE USING BUTTONS ///////////////
$w.onReady(function () {
$w('#ProfileButton').onClick(() => {
$w('#stateBox').changeState("Profile");
})
$w('#NewListingButton').onClick(() => {
$w('#stateBox').changeState("NewListing");
})
$w('#UpdtadeListingButton').onClick(() => {
$w('#stateBox').changeState("UpdateListing");
})
$w('#UpdateProfileButton').onClick(() => {
$w('#stateBox').changeState("MyAccount");
})
})
SINGLE DROPDOWN FOR UPDATE REPEATER
/////// UPDATE LISTING DROPDOWN /////////////
import wixData from 'wix-data';
export function dropdown1_change(event) {
wixData.query("Properties")
.contains("propertyName", String($w("#dropdown1").value))
.find()
.then( results => {
$w("#repeatermain").data = results.items;
});
}