fix(prateleira): Concerta prateleira que estava aparecendo nas paginas fora de cart e checkout vazio #13

Merged
ManuelaLuanaSchumackerTavares merged 1 commits from hotfix/prateleira-slick into develop 2022-12-18 21:44:42 +00:00
2 changed files with 34 additions and 35 deletions

View File

@ -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];

View File

@ -346,7 +346,7 @@
} }
} }
.ativado { .desativado {
display: none !important; display: none !important;
} }
} }