diff --git a/checkout/src/arquivos/js/components/Footer.js b/checkout/src/arquivos/js/components/Footer.js
index f7de61d..11c8a25 100644
--- a/checkout/src/arquivos/js/components/Footer.js
+++ b/checkout/src/arquivos/js/components/Footer.js
@@ -7,13 +7,12 @@ export default class Footer {
async init() {
await this.selectors();
- this.onUpdate();
+ // this.ListProducts();
+ await this.onUpdate();
this.footerCheckoutPayments();
this.footerCheckoutDevelopedBy();
- await this.ListProducts();
}
-
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
@@ -22,53 +21,41 @@ export default class Footer {
this.Vtexpci = await waitElement(".footerCheckout__vtexpci");
this.DevelopedBy = await waitElement(".footerCheckout__developedBy");
this.sliderProducts = await waitElement(".footerCheckout__prateleira");
-
- }
-
- onUpdate() {
- //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
- // 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);
}
async ListProducts() {
-
- this.sliderProducts.innerHTML += `
Você também pode gostar:
+ this.sliderProducts.innerHTML += `Você também pode gostar:
`;
- const response = await fetch("https://m3academy.myvtex.com/api/catalog_system/pub/products/search/?fq=productClusterIds:319")
- .then((response) => response.json());
+ const response = await fetch(
+ "https://m3academy.myvtex.com/api/catalog_system/pub/products/search/?fq=productClusterIds:319"
+ ).then((response) => response.json());
- response.forEach((produto) => {
- const image = produto.items[0].images[0].imageUrl;
- const name = produto.productName;
- const footerCheckoutPrateleiraList = document.querySelector(".footerCheckout__plateleira__list");
+ response.forEach((produto) => {
+ const image = produto.items[0].images[0].imageUrl;
+ const name = produto.productName;
+ const footerCheckoutPrateleiraList = document.querySelector(
+ ".footerCheckout__plateleira__list"
+ );
- footerCheckoutPrateleiraList.innerHTML += `
+ footerCheckoutPrateleiraList.innerHTML += `
${name}
- ${produto.items.map((name) => {return `- ${name.name}
`;}).join("")}
+ ${produto.items
+ .map((name) => {
+ return `- ${name.name}
`;
+ })
+ .join("")}
Ver produto
`;
- });
- this.addCarrossel();
+ });
+ this.addCarrossel();
}
-
-
async addCarrossel() {
const elemento = await waitElement(".footerCheckout__plateleira__list");
$(elemento).slick({
@@ -77,20 +64,20 @@ export default class Footer {
arrows: true,
responsive: [
{
- breakpoint: 1025,
- settings: {
- slidesToShow: 3,
- slidesToShow: 3
- }
+ breakpoint: 1025,
+ settings: {
+ slidesToShow: 3,
+ slidesToShow: 3,
+ },
},
{
- breakpoint: 377,
- settings: {
- slidesToShow: 2,
- slidesToShow: 2
- }
- }
- ]
+ breakpoint: 377,
+ settings: {
+ slidesToShow: 2,
+ slidesToShow: 2,
+ },
+ },
+ ],
});
}
@@ -126,6 +113,42 @@ export default class Footer {
`;
}
+ async onUpdate() {
+ //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
+ // sempre que o carrinho estiver vazio o elemento chcekoutVazio fica display: none e isso pode ser usado como atributo para a MutationObserver
+ let myCart = document.querySelector("#cart-title");
+ let target = this.checkoutVazio;
+ let observer = new MutationObserver((mutations) => {
+ mutations.forEach(() => {
+ if (target.style.display == "none") {
+ this.sliderProducts.classList.remove("disable");
+ myCart.classList.remove("disable");
+ this.ListProducts();
+ } else {
+ this.sliderProducts.classList.add("disable");
+ myCart.classList.add("disable");
+ this.sliderProducts.innerHTML = "";
+ }
+ });
+
+ window.addEventListener("hashchange", () => {
+ if (window.location.hash == "#/cart") {
+ if (target.style.display == "none") {
+ this.sliderProducts.classList.remove("disable");
+ this.sliderProducts.innerHTML = "";
+ this.ListProducts();
+ }
+ } else {
+ this.sliderProducts.classList.add("disable");
+ this.sliderProducts.innerHTML = "";
+ }
+ });
+ });
+
+ observer.observe(this.checkoutVazio, {
+ attributes: true,
+ });
+ }
}
-
diff --git a/checkout/src/arquivos/sass/partials/_footer.scss b/checkout/src/arquivos/sass/partials/_footer.scss
index 7a31209..2a6ad12 100644
--- a/checkout/src/arquivos/sass/partials/_footer.scss
+++ b/checkout/src/arquivos/sass/partials/_footer.scss
@@ -443,4 +443,7 @@
}
}
-// slick
+
+.disable {
+ display: none !important;
+}