ASSINE NOSSA NEWSLETTER
E garanta 10% na primeira compra
E garanta 10% na primeira compra
Acervo Gratuito
Selecionamos obras para transformar vidas. Faça o download gratuitamente — sem cadastro, sem complicação.
Explorar o acervo© 2024 Editora Recriar. Todos os direitos reservados.
`; return; } grid.innerHTML = ''; filtered.forEach(book => { const card = document.createElement('div'); card.className = 'book-card'; card.setAttribute('data-id', book.id); const coverWrap = document.createElement('div'); coverWrap.className = 'book-cover-wrap'; if (book.cover) { const img = document.createElement('img'); img.className = 'book-cover'; img.src = book.cover; img.alt = book.title; coverWrap.appendChild(img); } else { coverWrap.appendChild(buildPlaceholderCover(book)); } if (book.isNew) { const badge = document.createElement('span'); badge.className = 'badge-new'; badge.textContent = 'Novo'; coverWrap.appendChild(badge); } const catLabel = { espiritualidade: 'Espiritualidade', autoconhecimento: 'Autoconhecimento', educacao: 'Educação', saude: 'Saúde', familia: 'Família' }[book.cat] || book.cat; const catBadge = document.createElement('span'); catBadge.className = 'badge-cat'; catBadge.textContent = catLabel; coverWrap.appendChild(catBadge); const overlay = document.createElement('div'); overlay.className = 'book-overlay'; overlay.innerHTML = ` Baixar PDF Ver detalhes `; coverWrap.appendChild(overlay); const info = document.createElement('div'); info.className = 'book-info'; info.innerHTML = `${book.title}
`; card.appendChild(coverWrap); card.appendChild(info); card.querySelector('.overlay-btn-sec').addEventListener('click', e => { e.stopPropagation(); openModal(book.id); }); coverWrap.addEventListener('click', () => openModal(book.id)); grid.appendChild(card); }); } /* ── MODAL ── */ function openModal(id) { const book = books.find(b => b.id === id); if (!book) return; const catLabel = { espiritualidade: 'Espiritualidade', autoconhecimento: 'Autoconhecimento', educacao: 'Educação', saude: 'Saúde & Bem-estar', familia: 'Família' }[book.cat] || book.cat; document.getElementById('modal-cat').textContent = catLabel; document.getElementById('modal-title').textContent = book.title; document.getElementById('modal-author').textContent = book.author; document.getElementById('modal-desc').textContent = book.desc; document.getElementById('modal-download').href = book.url; const coverEl = document.getElementById('modal-cover'); coverEl.innerHTML = ''; if (book.cover) { const img = document.createElement('img'); img.src = book.cover; img.alt = book.title; coverEl.appendChild(img); } else { coverEl.appendChild(buildPlaceholderCover(book, 'modal')); } document.getElementById('modal-backdrop').classList.add('open'); document.body.style.overflow = 'hidden'; } function closeModal() { document.getElementById('modal-backdrop').classList.remove('open'); document.body.style.overflow = ''; } document.getElementById('modal-close').addEventListener('click', closeModal); document.getElementById('modal-backdrop').addEventListener('click', e => { if (e.target === document.getElementById('modal-backdrop')) closeModal(); }); document.addEventListener('keydown', e => { if (e.key === 'Escape') closeModal(); }); /* ── FILTERS ── */ document.querySelectorAll('.filter-btn').forEach(btn => { btn.addEventListener('click', () => { document.querySelectorAll('.filter-btn').forEach(b => b.classList.remove('active')); btn.classList.add('active'); activeFilter = btn.dataset.cat; renderBooks(); }); }); /* ── SEARCH ── */ document.getElementById('search-input').addEventListener('input', e => { searchTerm = e.target.value.toLowerCase().trim(); renderBooks(); }); /* ── INIT ── */ document.getElementById('total-count').textContent = books.length; renderBooks();