From 55e033fdece61fd8352dbe0fd2571ecadbbf2ab0 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 9 Aug 2018 22:01:35 -0600 Subject: [PATCH] Update timeline component, add lazy loading --- resources/assets/js/timeline.js | 41 +++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/resources/assets/js/timeline.js b/resources/assets/js/timeline.js index 69eec9af0..bae140581 100644 --- a/resources/assets/js/timeline.js +++ b/resources/assets/js/timeline.js @@ -1,13 +1,54 @@ $(document).ready(function() { $('.pagination').hide(); + $('.container.timeline-container').removeClass('d-none'); let elem = document.querySelector('.timeline-feed'); + pixelfed.fetchLikes(); + let infScroll = new InfiniteScroll( elem, { path: '.pagination__next', append: '.timeline-feed', status: '.page-load-status', history: false, }); + infScroll.on( 'append', function( response, path, items ) { pixelfed.hydrateLikes(); + $('.status-card > .card-footer').each(function() { + var el = $(this); + if(!el.hasClass('d-none') && !el.find('input[name="comment"]').val()) { + $(this).addClass('d-none'); + } + }); }); + + +}); + +$(document).on("DOMContentLoaded", function() { + + var active = false; + + var lazyLoad = function() { + if (active === false) { + active = true; + + var lazyImages = [].slice.call(document.querySelectorAll("img.lazy")); + lazyImages.forEach(function(lazyImage) { + if ((lazyImage.getBoundingClientRect().top <= window.innerHeight && lazyImage.getBoundingClientRect().bottom >= 0) && getComputedStyle(lazyImage).display !== "none") { + lazyImage.src = lazyImage.dataset.src; + lazyImage.srcset = lazyImage.dataset.srcset; + lazyImage.classList.remove("lazy"); + + lazyImages = lazyImages.filter(function(image) { + return image !== lazyImage; + }); + } + }); + + active = false; + }; + } + document.addEventListener("scroll", lazyLoad); + window.addEventListener("resize", lazyLoad); + window.addEventListener("orientationchange", lazyLoad); });