File: /var/www/innodrive/src/js/modules/load-more.js
import { $ } from '@utils';
import axios from 'axios';
import initMasonry from './masonry.js';
export default () => {
const buttonLoadMore = $('.load-more');
const cardsetGrid = $('.grid-articles');
const articlesLoader = $('.articles__loader');
if (buttonLoadMore) {
buttonLoadMore.addEventListener('click', function (e) {
e.preventDefault();
articlesLoader.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) => {
cardsetGrid.append(elem);
});
articlesLoader.style.display = 'none';
if (cardsetGrid.querySelectorAll('.cardset__item').length === Number(e.target.dataset.total)) {
buttonLoadMore.style.display = 'none';
} else {
e.target.dataset.page = parseInt(e.target.dataset.page) + 1;
}
window.scrollTo(0, posTop);
})
.catch(() => {
alert('Ой, что-то пошло не так..');
});
});
}
};