Filtros
Carregando...

Aplicando filtros...

// Infinite Scroll (function() { const container = document.getElementById('classif-lista-6ae380c1730f5'); if (!container || container.dataset.infiniteScroll !== 'true') return; const resultado = container.querySelector('.classif-lista-resultado'); const sentinel = document.getElementById('classif-lista-6ae380c1730f5-sentinel'); const loading = document.getElementById('classif-lista-6ae380c1730f5-loading'); if (!resultado || !sentinel) return; const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting && resultado.dataset.hasMore === 'true' && resultado.dataset.loading === 'false') { loadMore(); } }); }, { rootMargin: '200px' // Carregar 200px antes do final }); observer.observe(sentinel); function loadMore() { const currentPage = parseInt(resultado.dataset.page) || 1; const nextPage = currentPage + 1; const limit = parseInt(resultado.dataset.limit) || 12; const category = resultado.dataset.category; const columns = parseInt(resultado.dataset.columns) || 3; // Marcar como carregando resultado.dataset.loading = 'true'; loading.classList.remove('d-none'); // Fazer requisição const url = classifPublic.rest_url + 'ads?per_page=' + limit + '&page=' + nextPage + '&status=active' + (category !== 'all' ? '&category=' + category : ''); fetch(url, { headers: { 'X-WP-Nonce': classifPublic.rest_nonce } }) .then(response => response.json()) .then(data => { if (!data.success || !data.data || data.data.length === 0) { // Não há mais anúncios resultado.dataset.hasMore = 'false'; sentinel.remove(); } else { // Adicionar novos anúncios const row = resultado.querySelector('.row'); const colSize = 12 / columns; data.data.forEach(ad => { const meta = ad.meta_data || {}; // Permalink (vem da API agora) const permalink = ad.permalink || 'https://site.quatix.com.br/anuncio/?ad_id=' + ad.id; const colDiv = document.createElement('div'); colDiv.className = 'col-md-' + colSize + ' mb-4'; colDiv.innerHTML = ` `; row.appendChild(colDiv); }); // Atualizar página resultado.dataset.page = nextPage; // Verificar se há mais páginas if (data.data.length < limit) { resultado.dataset.hasMore = 'false'; sentinel.remove(); } } }) .catch(error => { console.error('Erro ao carregar mais anúncios:', error); resultado.dataset.hasMore = 'false'; sentinel.remove(); }) .finally(() => { resultado.dataset.loading = 'false'; loading.classList.add('d-none'); }); } })();