diff --git a/checkout/src/arquivos/js/components/Footer.js b/checkout/src/arquivos/js/components/Footer.js
index b34a32a..8fb2575 100644
--- a/checkout/src/arquivos/js/components/Footer.js
+++ b/checkout/src/arquivos/js/components/Footer.js
@@ -8,35 +8,94 @@ export default class Footer {
async init() {
await this.selectors();
await this.addCarrossel();
- // this.onUpdate();
+ await this.empytStart()
+ await this.onUpdate();
}
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.checkoutVazio = await waitElement(".empty-cart-content", {
+ //#my-element pode ser a class ou o id do elemento html qeu vocÊ quer pegar
+ timeout: 5000, // vai esperar 5 segundos antes de rejeitar a promise
+ interval: 1000, // vai verificar a cada 1 segundo se o elemento existe
+ });
this.slick = await waitElement(".footerCheckout__prateleira");
+ this.Footer = await waitElement(".footerCheckout");
+ this.Fds = document.createElement("div")
}
-
- onUpdate() {
+ async empytStart(){
+ let target2 = this.slick;
+ let Footer = this.Footer;
+ console.log(Footer)
+ let ExistsAtt = document.querySelector('.empty-cart-content[style="display: flex;"]');
+ if(window.location.href == "https://m3academy.myvtex.com/checkout/#/cart"){
+ if(!!ExistsAtt){
+ console.log(!!ExistsAtt,"empyt cart existe"); //true
+ target2.classList.add('hide')
+ Footer.classList.remove('footerCheckout__ComSlick')
+ }else{
+ console.log(!!ExistsAtt,"empyt cart não existe"); //false
+ target2.classList.remove('hide')
+ Footer.classList.add('footerCheckout__ComSlick')
+ }
+ }
+ }
+ 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 target = this.checkoutVazio;
- let config = { childList: true, attributes: true };
+ let target2 = this.slick;
+ let Footer = this.Footer;
+ let config = {
+ childList: true,
+ attributes: true,
+ attributeOldValue:true,
+ attributeFilter:["style"],
+ subtree:false,
+ characterData:true,
+ characterDataOldValue:true};
let observer = new MutationObserver((mutations) => {
mutations.forEach(function (mutation) {
- console.log(mutation.type);
+ console.log("mutation is ->",mutation.type, mutation.attributeName,mutation.oldValue,mutation);
+ if(window.location.href == "https://m3academy.myvtex.com/checkout/#/cart"){
+ if(mutation.oldValue == "display: none;"){
+ console.log("entrei no if",mutation.oldValue)
+ target2.classList.add('hide')
+ Footer.classList.remove('footerCheckout__ComSlick')
+ }else{
+ console.log("entrei no else",mutation.oldValue)
+ target2.classList.remove('hide')
+ Footer.classList.add('footerCheckout__ComSlick')
+ }
+ }
});
});
observer.observe(target, config);
}
async addCarrossel() {
- const elemento = await waitElement("footerCheckout__prateleira");
- $(elemento).slick({
+ let target2 = this.slick;
+ let divRegua = this.Fds;
+ console.log(this.Fds)
+ divRegua.classList.add('Regua')
+ this.Footer.appendChild(divRegua)
+ target2.classList.add('hide')
+ this.slick.innerHTML =
+ `
+
1
+ 2
+ 3
+ 4
+ 5
+ `
+ $(this.slick).slick({
slidesToShow: 4,
slidesToScroll: 1,
+ infinite: true,
+ initialSlide: 0,
+ variableWidth:true,
});
}
}
diff --git a/checkout/src/arquivos/js/components/Header.js b/checkout/src/arquivos/js/components/Header.js
index 148eda7..af111a8 100644
--- a/checkout/src/arquivos/js/components/Header.js
+++ b/checkout/src/arquivos/js/components/Header.js
@@ -12,7 +12,6 @@ export default class Header {
window.addEventListener("hashchange", this.stepProgress.bind(this));
await this.event();
await this.progress();
- await this.stepProgress();
console.log(this.item);
}
@@ -23,6 +22,8 @@ export default class Header {
interval: 1000, // vai verificar a cada 1 segundo se o elemento existe
});
this.step = document.querySelector('.completed');
+ this.slick = await waitElement(".footerCheckout__prateleira");
+ this.Footer = await waitElement(".footerCheckout");
}
async event(){
@@ -45,18 +46,23 @@ export default class Header {
`
+ await this.stepProgress();
}
async stepProgress(){
const progressList = document.querySelectorAll("#progressBar ul li")
const step1 = document.getElementById("step_1")
const step2 = document.getElementById("step_2")
const step3 = document.getElementById("step_3")
+ let target2 = this.slick;
+ let Footer = this.Footer;
progressList.forEach((li) => {
if(window.location.href == "https://m3academy.myvtex.com/checkout/#/cart"){
if(li.children[1].id === "step_1"){
step2.classList.remove('completed');
step3.classList.remove('completed');
- li.children[1].classList.toggle('completed');
+ li.children[1].classList.add('completed');
+ target2.classList.toggle('hide')
+ Footer.classList.add('footerCheckout__ComSlick')
}
}
if(window.location.href == "https://m3academy.myvtex.com/checkout/#/email"
@@ -65,16 +71,18 @@ export default class Header {
if(li.children[1].id === "step_2"){
step1.classList.remove('completed');
step3.classList.remove('completed');
- console.log(li,"esse é o children 2")
li.children[1].classList.add('completed');
+ target2.classList.add('hide');
+ Footer.classList.remove('footerCheckout__ComSlick');
}
}
if(window.location.href =="https://m3academy.myvtex.com/checkout/#/payment"){
if(li.children[1].id === "step_3"){
step1.classList.remove('completed');
step2.classList.remove('completed');
- console.log(li,"esse é o children 3")
- li.children[1].classList.toggle('completed');
+ li.children[1].classList.add('completed');
+ target2.classList.add('hide');
+ Footer.classList.remove('footerCheckout__ComSlick');
}
}
})
diff --git a/checkout/src/arquivos/sass/partials/_footer.scss b/checkout/src/arquivos/sass/partials/_footer.scss
index 20a1ea1..3846abe 100644
--- a/checkout/src/arquivos/sass/partials/_footer.scss
+++ b/checkout/src/arquivos/sass/partials/_footer.scss
@@ -1,15 +1,20 @@
/* _footer.scss */
.footerCheckout {
- border-top: none;
+ position: relative;
+ border-top: 1px solid;
color: $color-gray2;
+ margin-top: 100px;
+ &__ComSlick{
+ margin-top: 900px !important;
+ }
&::before{
content: '';
- position: absolute;
- right: 0;
- width: 100%;
- height: 67px;
- border-bottom: 1px solid $color-black;
+ // right: 0;
+ // width: 100%;
+ // height: 67px;
+ // border-bottom: 1px solid red;
+ // $color-black
}
&__payments{
&__images{
@@ -23,12 +28,11 @@
}
&__wrapper {
position: relative;
+ width: 100 !important;
height: 100px;
display: inline-flex;
align-items: flex-end;
.container{
- position: absolute;
- top: 94px;
width: 100%;
display: flex;
align-items: baseline;
@@ -107,4 +111,39 @@
}
}
}
+ &__prateleira{
+ position: absolute;
+ display: inline-flex;
+ width: 100% !important;
+ height: 390px;
+ padding-left: 7.4803149606299%;
+ margin-bottom: 54px !important;
+ top: -445px;
+ align-items: center;
+ justify-content: center;
+ padding-right: 15.33203125%;
+ .quadrado{
+ text-align: center;
+ width: 83.818897637795%!important;
+ height: 390px;
+ margin-left: 16px;
+ background: pink;
+ }
+ .slick-slide{
+ width: 258px !important;
+ }
+ .slick-list {
+ width: 1016px;
+ left: 34px;
+ }
+ }
+ .Regua{
+ background: blue;
+ position: absolute;
+ top: -485px;
+ left: 126px;
+ z-index: -1;
+ width: 1016px;
+ height: 466px !important;
+ }
}