Server IP : 15.235.198.142 / Your IP : 216.73.216.190 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ballsack 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/yme/wp-content/themes/oceanwp/assets/src/js/theme/ |
Upload File : |
import ResponsiveAutoHeight from "responsive-auto-height"; class OWLoadMore { #elements = { loadMoreButton: document.querySelector(".load-more-button"), loadMorePostsNav: document.querySelector(".load-more-nav"), loadMorePostsStatus: document.querySelector(".load-more-status__message"), }; #loading = false; #btnText = ''; constructor() { if ( !!this.#elements.loadMorePostsNav && !!this.#elements.loadMorePostsNav.querySelector(".older-posts a") ) { this.#setupEventListeners(); this.#setElements(); } } #setElements = () => { this.#elements = { ...this.#elements, loadMoreWrapper: document.querySelector(".load-more-wrap"), }; }; #setupEventListeners = () => { this.#elements.loadMoreButton.addEventListener("click", () => { if (this.#loading) { return; } this.#loading = true; this.#btnText = this.#elements.loadMoreButton.textContent; this.#elements.loadMoreButton.textContent = "Loading..."; this.#loadMoreContent(); }); }; #loadMoreContent = () => { const loadMoreText = this.#btnText; const path = document.querySelector(".older-posts a")?.href; if (!path) { this.#elements.loadMorePostsStatus.classList.add('show'); this.#elements.loadMoreButton?.remove(); this.#elements.loadMorePostsNav?.remove(); return; } fetch(path) .then(response => response.text()) .then(html => { const parser = new DOMParser(); const doc = parser.parseFromString(html, "text/html"); const newContent = doc.querySelectorAll(".item-entry"); if (newContent.length === 0) { this.#elements.loadMorePostsStatus.classList.add('show'); this.#elements.loadMoreButton?.remove(); this.#elements.loadMorePostsNav?.remove(); return; } newContent.forEach(item => this.#elements.loadMoreWrapper.appendChild(item)); this.#adjustLayout(newContent); const nextOlderPostsLink = new DOMParser().parseFromString(html, "text/html").querySelector(".older-posts a"); if (nextOlderPostsLink) { document.querySelector(".older-posts a").href = nextOlderPostsLink.href; setTimeout(() => { this.#loading = false; this.#elements.loadMoreButton.textContent = loadMoreText; }, 10); } else { this.#elements.loadMorePostsStatus.classList.add('show'); this.#elements.loadMoreButton?.remove(); this.#elements.loadMorePostsNav?.remove(); } }) .catch(error => { console.error("Error loading more content:", error); this.#loading = false; this.#elements.loadMoreButton.textContent = loadMoreText; }); }; #adjustLayout = (newContent) => { const items = Array.from(newContent); const masonryGrid = document.querySelector(".blog-masonry-grid"); if (masonryGrid) { oceanwp?.blogMasonry?.isotop.appended(items); if (items.some((item) => item.classList.contains("gallery-format"))) { setTimeout(() => { oceanwp?.blogMasonry?.isotop.layout(); }, 600 + 1); } } if (!document.body.classList.contains("no-carousel")) { const targetElements = items .flatMap((item) => Array.from(item.querySelectorAll(".gallery-format, .product-entry-slider"))) .filter((element) => element !== null); oceanwp?.owSlider?.start(targetElements); } // Handle lightbox if (!document.body.classList.contains("no-lightbox")) { oceanwp?.owLightbox?.initSingleImageLightbox(); oceanwp?.owLightbox?.initGalleryLightbox(); } // Handle responsive auto-height if (!document.body.classList.contains("no-matchheight")) { let entryItemsSelectors = Array.from(items) .map((item) => (item.id ? `#${item.id} .blog-entry-inner` : undefined)) .filter((element) => element !== undefined); if (entryItemsSelectors.length > 0) { new ResponsiveAutoHeight(entryItemsSelectors.join(",")); } } document.dispatchEvent( new CustomEvent('cfvswVariationLoad', { detail: {} }) ); jQuery(document).trigger('oec_product_swatches_shop_init'); jQuery(document).trigger('maybe-init-oec-wishlist'); // Force re-parsing of images for Safari issue items.forEach((item) => { item.querySelectorAll("img")?.forEach((img) => { img.outerHTML = img.outerHTML; }); }); }; } ("use script"); window.oceanwp = window.oceanwp || {}; document.addEventListener("DOMContentLoaded", () => { oceanwp.owLoadMore = new OWLoadMore(); });