Skip to content

Commit

Permalink
hotfix(votepeloclima): refactor carousel from candidature profile
Browse files Browse the repository at this point in the history
  • Loading branch information
miguelzinh3 committed Aug 26, 2024
1 parent d81e244 commit b028c49
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 43 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
document.addEventListener("DOMContentLoaded", function () {
const items = [
{ icon: "ds-icon-compromisso-laranja-1", text: "Políticas de adaptação das cidades para reduzir tragédias" },
{ icon: "ds-icon-compromisso-laranja-2", text: "Políticas para redução de emissões e transição energética" },
{ icon: "ds-icon-compromisso-laranja-3", text: "Políticas sociais de apoio às populações atingidas" },
{ icon: "ds-icon-compromisso-laranja-4", text: "Transição climática com justiça social, racial e de gênero" },
{ icon: "ds-icon-compromisso-laranja-5", text: "Proteção ambiental e de recursos naturais" },
{ icon: "ds-icon-compromisso-laranja-6", text: "Incentivo à participação popular e ao engajamento da juventude" },
{ icon: "ds-icon-compromisso-laranja-7", text: "Investimentos em pesquisa e inovação para enfrentar a crise climática" },
{ icon: "ds-icon-compromisso-laranja-8", text: "Valorização de saberes tradicionais e tecnologias sociais na busca de soluções" },
];

const carouselInner = document.querySelector(".carousel-inner");
const carouselIndicators = document.querySelector(".carousel-indicators");

function createSlides(itemsPerSlide) {
carouselInner.innerHTML = "";
carouselIndicators.innerHTML = "";

for (let i = 0; i < items.length; i += itemsPerSlide) {
const slide = document.createElement("div");
slide.className = "carousel-item" + (i === 0 ? " active" : "");

const container = document.createElement("div");
container.className = "d-flex justify-content-center";

for (let j = i; j < i + itemsPerSlide && j < items.length; j++) {
const col = document.createElement("div");
col.className = "d-flex flex-column align-items-center text-center";
col.innerHTML = `
<i class="${items[j].icon}"></i>
<p class="mt-2 text-uppercase fw-bold w-75">${items[j].text}</p>
`;
container.appendChild(col);
}

slide.appendChild(container);
carouselInner.appendChild(slide);

// Cria indicadores
const indicator = document.createElement("button");
indicator.type = "button";
indicator.setAttribute("data-bs-target", "#carouselControls");
indicator.setAttribute("data-bs-slide-to", (i / itemsPerSlide).toString());
if (i === 0) indicator.className = "active";
carouselIndicators.appendChild(indicator);
}
}

// Inicializa o carousel com base na largura da tela
function initializeCarousel() {
const itemsPerSlide = window.innerWidth < 992 ? 1 : 4;
createSlides(itemsPerSlide);
}

initializeCarousel();

// Reajusta o número de itens por slide
window.addEventListener("resize", function () {
initializeCarousel();
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -106,49 +106,15 @@ <h1 class="text-center text-white text-uppercase fw-bold">O que {{ candidature.b
<section class="py-5">
<div class="container">
<h2 class="text-center text-uppercase fw-bold">O que esperar de {{ candidature.ballot_name }}</h2>
<div id="carouselControls" class="carousel slide carousel-dark py-4">
<div id="carouselControls" class="carousel slide carousel-dark py-4" data-bs-ride="carousel">
<!-- Indicadores de Slides -->
<div class="carousel-indicators"></div>

<!-- Itens do Carousel -->
<div class="carousel-inner">
<div class="carousel-item active">
<div class="grid">
<div class="g-col-6 g-col-md-3 px-2 text-center d-flex flex-column align-items-center">
<i class="ds-icon-compromisso-laranja-1"></i>
<p class="mt-2 text-uppercase fw-bold w-75">Políticas de adaptação das cidades para reduzir tragédias</p>
</div>
<div class="g-col-6 g-col-md-3 px-2 text-center d-flex flex-column align-items-center">
<i class="ds-icon-compromisso-laranja-2"></i>
<p class="mt-2 text-uppercase fw-bold w-75">Políticas para redução de emissões e transição energética</p>
</div>
<div class="g-col-6 g-col-md-3 px-2 text-center d-flex flex-column align-items-center">
<i class="ds-icon-compromisso-laranja-3"></i>
<p class="mt-2 text-uppercase fw-bold w-75">Políticas sociais de apoio às populações atingidas</p>
</div>
<div class="g-col-6 g-col-md-3 px-2 text-center d-flex flex-column align-items-center">
<i class="ds-icon-compromisso-laranja-4"></i>
<p class="mt-2 text-uppercase fw-bold w-75">Transição climática com justiça social, racial e de gênero</p>
</div>
</div>
</div>
<div class="carousel-item">
<div class="grid">
<div class="g-col-6 g-col-md-3 px-2 text-center d-flex flex-column align-items-center">
<i class="ds-icon-compromisso-laranja-5"></i>
<p class="mt-2 text-uppercase fw-bold w-75">Proteção ambiental e de recursos naturais</p>
</div>
<div class="g-col-6 g-col-md-3 px-2 text-center d-flex flex-column align-items-center">
<i class="ds-icon-compromisso-laranja-6"></i>
<p class="mt-2 text-uppercase fw-bold w-75">Incentivo à participação popular e ao engajamento da juventude</p>
</div>
<div class="g-col-6 g-col-md-3 px-2 text-center d-flex flex-column align-items-center">
<i class="ds-icon-compromisso-laranja-7"></i>
<p class="mt-2 text-uppercase fw-bold w-75">Investimentos em pesquisa e inovação para enfrentar a crise climática</p>
</div>
<div class="g-col-6 g-col-md-3 px-2 text-center d-flex flex-column align-items-center">
<i class="ds-icon-compromisso-laranja-8"></i>
<p class="mt-2 text-uppercase fw-bold w-75">Valorização de saberes tradicionais e tecnologias sociais na busca de soluções</p>
</div>
</div>
</div>
</div>

<!-- Controles do Carousel -->
<button class="carousel-control-prev w-auto" type="button" data-bs-target="#carouselControls" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Anterior</span>
Expand All @@ -157,7 +123,8 @@ <h2 class="text-center text-uppercase fw-bold">O que esperar de {{ candidature.b
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Próximo</span>
</button>
</div>
</div>


<p class="text-center">*As organizações da plataforma não se comprometem com a efetividade e execução dos compromissos firmados. O controle social e a participação ativa da cidadania são fundamentais para que parlamentares e gestores públicos cumpram suas promessas.</p>
</div>
Expand Down Expand Up @@ -208,5 +175,6 @@ <h2 class="fw-bold text-uppercase mb-3">Compartilhe nas redes sociais
{% endblock %}

{% block footer_js %}
<script src="{% static 'js/copy-to-clipboard.js' %}" type="text/javascript"></script>
<script src="{% static '/js/copy-to-clipboard.js' %}" type="text/javascript"></script>
<script src="{% static '/js/carousel-icons.js' %}" type="text/javascript"></script>
{% endblock %}

0 comments on commit b028c49

Please sign in to comment.