File: /var/www/innodrive/src/js/modules/load-more-news.js
import { $ } from '@utils';
import axios from 'axios';
export default () => {
const buttonLoadMore = $('.load-more-news');
const newsGrid = $('.grid-news');
const newsLoader = $('.news__loader');
if (buttonLoadMore) {
buttonLoadMore.addEventListener('click', function (e){
e.preventDefault();
newsLoader.style.display = 'flex';
let linkArticles = e.target.dataset.href + e.target.dataset.page;
let posTop = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop;
axios.get(linkArticles)
.then(function (response) {
const dom = new DOMParser().parseFromString(response.data, "text/html");
const elements = dom.querySelectorAll('.cardset__item');
elements.forEach((elem) => {
newsGrid.append(elem);
});
newsLoader.style.display = 'none';
if (newsGrid.querySelectorAll('.cardset__item').length == e.target.dataset.total) {
buttonLoadMore.style.display = 'none';
} else {
e.target.dataset.page = parseInt(e.target.dataset.page) + 1;
}
window.scrollTo(0, posTop);
})
.catch(function (error) {
alert('Ой, что-то пошло не так..');
});
});
}
};