forked from M3-Academy/m3-academy-template-checkout
fix(prateleira): Concerta prateleira que estava aparecendo nas paginas fora de cart e checkout vazio #13
@ -9,17 +9,13 @@ export default class Footer {
|
|||||||
this.list = await this.apiRequest();
|
this.list = await this.apiRequest();
|
||||||
await this.selectors();
|
await this.selectors();
|
||||||
this.footerIcons();
|
this.footerIcons();
|
||||||
this.onUpdate();
|
|
||||||
if (window.location.hash === "#/cart") {
|
if (window.location.hash === "#/cart") {
|
||||||
await this.createContainerShelf();
|
await this.onUpdate();
|
||||||
}
|
|
||||||
if (window.location.hash !== "#/cart") {
|
|
||||||
await this.removeShelf();
|
|
||||||
}
|
}
|
||||||
this.shelfItem = await waitElement(".footerCheckout__shelfList");
|
this.shelfItem = await waitElement(".footerCheckout__shelfList");
|
||||||
await this.createShelf();
|
await this.createShelf();
|
||||||
|
this.events();
|
||||||
this.addCarrossel();
|
this.addCarrossel();
|
||||||
console.log(this.list);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async selectors() {
|
async selectors() {
|
||||||
@ -31,23 +27,23 @@ export default class Footer {
|
|||||||
this.checkoutVazio = await waitElement(".empty-cart-content");
|
this.checkoutVazio = await waitElement(".empty-cart-content");
|
||||||
}
|
}
|
||||||
|
|
||||||
onUpdate() {
|
events() {
|
||||||
|
window.addEventListener("hashchange", this.hashChange.bind(this));
|
||||||
|
}
|
||||||
|
|
||||||
|
async onUpdate() {
|
||||||
//Função qeu fará a verificação se o carrinho está vazio para remover a prateleira de produtos:
|
//Função qeu fará a verificação se o carrinho está vazio para remover a prateleira de produtos:
|
||||||
// vocês devem olhar a doc fornecida no Desafio para aprender a usar a MutationObserver
|
// vocês devem olhar a doc fornecida no Desafio para aprender a usar a MutationObserver
|
||||||
// sempre que o carrinho estiver vazio o elemento chcekoutVazio fica display: none e isso pode ser usado como atributo para a MutationObserver
|
// sempre que o carrinho estiver vazio o elemento chcekoutVazio fica display: none e isso pode ser usado como atributo para a MutationObserver
|
||||||
let target = this.checkoutVazio;
|
let target = this.checkoutVazio;
|
||||||
let config = { childList: true, attributes: true };
|
let config = { childList: true, attributes: true };
|
||||||
let observer = new MutationObserver((mutations) => {
|
let observer = new MutationObserver((mutations) => {
|
||||||
mutations.forEach(function (mutation) {
|
console.log("ndidubazsbf");
|
||||||
console.log(mutation.type);
|
mutations.map((mutation) => {
|
||||||
console.log(mutation);
|
if (mutation.target.attributes.style.nodeValue == "display: none;") {
|
||||||
|
this.createContainerShelf();
|
||||||
const footer = document.querySelector(".footerCheckout");
|
} else if (mutation.target.attributes.style.nodeValue == "display: block;") {
|
||||||
console.log(footer);
|
this.removeShelf();
|
||||||
if (target.attributes.style.nodeValue == "display: none;") {
|
|
||||||
footer.children[0].classList.remove("ativado");
|
|
||||||
} else {
|
|
||||||
footer.children[0].classList.add("ativado");
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -55,26 +51,27 @@ export default class Footer {
|
|||||||
observer.observe(target, config);
|
observer.observe(target, config);
|
||||||
}
|
}
|
||||||
|
|
||||||
async createContainerShelf() {
|
createContainerShelf() {
|
||||||
if (this.shelf) {
|
this.shelf.innerHTML = `
|
||||||
this.shelf.innerHTML = `
|
<div class="footerCheckout__prateleira-title">
|
||||||
<div class="footerCheckout__prateleira-title">
|
<h2>Você também pode gostar:</h2>
|
||||||
<h2>Você também pode gostar:</h2>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<ul class="footerCheckout__shelfList"></ul>
|
<ul class="footerCheckout__shelfList"></ul>
|
||||||
|
|
||||||
`;
|
`;
|
||||||
|
}
|
||||||
|
|
||||||
|
hashChange(e) {
|
||||||
|
console.log(e);
|
||||||
|
if (e.newURL !== "https://m3academy.myvtex.com/checkout/#/cart") {
|
||||||
|
this.shelf.classList.add("desativado");
|
||||||
|
} else {
|
||||||
|
this.shelf.classList.remove("desativado");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async removeShelf() {
|
createShelf() {
|
||||||
if (this.shelf) {
|
|
||||||
this.shelf.innerHTML = "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async createShelf() {
|
|
||||||
let structure = "";
|
let structure = "";
|
||||||
|
|
||||||
this.list.forEach((resp) => {
|
this.list.forEach((resp) => {
|
||||||
@ -91,7 +88,10 @@ export default class Footer {
|
|||||||
});
|
});
|
||||||
|
|
||||||
this.shelfItem.innerHTML = structure;
|
this.shelfItem.innerHTML = structure;
|
||||||
// console.log("ioaioaioiaoioa");
|
}
|
||||||
|
|
||||||
|
removeShelf() {
|
||||||
|
this.shelf.innerHTML = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
async apiRequest() {
|
async apiRequest() {
|
||||||
@ -171,7 +171,6 @@ export default class Footer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const footerDevelopedBy = document.getElementsByClassName("footerCheckout__developedBy");
|
const footerDevelopedBy = document.getElementsByClassName("footerCheckout__developedBy");
|
||||||
// console.log(footerDevelopedBy);
|
|
||||||
|
|
||||||
if (footerDevelopedBy) {
|
if (footerDevelopedBy) {
|
||||||
const vtexIcon = footerDevelopedBy[0].children[0].children[0];
|
const vtexIcon = footerDevelopedBy[0].children[0].children[0];
|
||||||
|
@ -346,7 +346,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.ativado {
|
.desativado {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user