57 lines
1.8 KiB
JavaScript
57 lines
1.8 KiB
JavaScript
async function filterPosts(e) {
|
|
const filterID =
|
|
e.target.getAttribute('data-term-id') ??
|
|
e.target.parentElement.getAttribute('data-term-id') ??
|
|
null;
|
|
|
|
const filterButtons = document.querySelectorAll('.filters-toolbar__action-button');
|
|
|
|
filterButtons.forEach((button) => {
|
|
button.classList.remove('filters-toolbar__action-button--active');
|
|
});
|
|
await hydrateNewsFeedByTypeId(filterID);
|
|
e.target.classList.add('filters-toolbar__action-button--active');
|
|
}
|
|
|
|
async function hydrateNewsFeedByTypeId(filterID) {
|
|
let newCardsContent;
|
|
if (filterID === 'all') {
|
|
const response = await fetch(`/wp-json/homegrade-datas/v1/build/news`);
|
|
newCardsContent = await response.json();
|
|
} else {
|
|
const response = await fetch(`/wp-json/homegrade-datas/v1/build/news/type/${filterID}`);
|
|
newCardsContent = await response.json();
|
|
}
|
|
|
|
let container = document.querySelector('.card-grid-container');
|
|
container.innerHTML = newCardsContent;
|
|
}
|
|
|
|
function filterNewsInit() {
|
|
const filterNewsToolbar = document.querySelector('.filters-toolbar--archive-news');
|
|
if (!filterNewsToolbar) return;
|
|
|
|
const filterButtons = filterNewsToolbar.querySelectorAll('.filters-toolbar__action-button');
|
|
if (!filterButtons) return;
|
|
|
|
filterButtons.forEach((button) => {
|
|
const termId = button.getAttribute('data-term-id');
|
|
button.addEventListener('click', (e) => filterPosts(e));
|
|
});
|
|
}
|
|
function loadMoreNewsInit() {
|
|
const loadMoreButton = document.querySelector('#load-more-news');
|
|
if (!loadMoreButton) return;
|
|
|
|
function loadMoreNews() {
|
|
console.log('loadMoreNews');
|
|
}
|
|
|
|
loadMoreButton.addEventListener('click', loadMoreNews);
|
|
}
|
|
|
|
export default function archiveNewsInit() {
|
|
filterNewsInit();
|
|
loadMoreNewsInit();
|
|
}
|