diff --git a/checkout/src/arquivos/js/components/Footer.js b/checkout/src/arquivos/js/components/Footer.js index 7e0bba8..8f668f7 100644 --- a/checkout/src/arquivos/js/components/Footer.js +++ b/checkout/src/arquivos/js/components/Footer.js @@ -6,11 +6,15 @@ export default class Footer { } async init() { - await this.selectors(); - // this.onUpdate(); this.list = await this.fetchApiData(); - this.renderPrateleira(); - this.items = document.querySelector(".footerCheckout__prateleira-container"); + await this.selectors(); + this.events(); + this.cartUpdate(); + this.items = await waitElement(".footerCheckout__prateleira-container", { + timeout: 5000, + interval: 1, + }); + console.log(this.items, "console de items"); this.renderItems(); await this.addCarrossel(); } @@ -18,23 +22,19 @@ export default class Footer { async selectors() { //Para verificar se o carrinho está vazio e remover a prateleira de produtos: // vocês devem olhar a doc fornecida no Desafio para aprender a usar o waitElement - this.checkoutVazio = await waitElement(".empty-cart-content"); - this.prateleira = await waitElement(".footerCheckout__prateleira"); + this.checkoutVazio = await waitElement(".empty-cart-content", { + timeout: 5000, + interval: 1, + }); + this.cartTitle = await waitElement("#cart-title"); + this.prateleira = await waitElement(".footerCheckout__prateleira", { + timeout: 5000, + interval: 1, + }); } - onUpdate() { - //Função que 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 - // 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 config = { childList: true, attributes: true }; - let observer = new MutationObserver((mutations) => { - mutations.forEach(function (mutation) { - console.log(mutation.type); - }); - }); - - observer.observe(target, config); + events() { + window.addEventListener("hashchange", this.outPrateleira.bind(this)); } async fetchApiData() { @@ -54,6 +54,32 @@ export default class Footer { }); } + cartUpdate() { + console.log("cartUpdate"); + //Função que 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 + // 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 config = { childList: true, attributes: true }; + let observer = new MutationObserver((mutations) => { + mutations.map((mutation) => { + const cartStatus = mutation.target.attributes.style.nodeValue; + + console.log(cartStatus); + + if (cartStatus === "display: none;") { + this.cartTitle.classList.remove("inactive"); + this.renderPrateleira(); + } else if (cartStatus === "display: block;") { + this.cartTitle.classList.add("inactive"); + this.removePrateleira(); + } + }); + }); + + observer.observe(target, config); + } + renderPrateleira() { let itemsStructure = `
-