* create new pack, handle user follow buttons, use pack on article page, remove initializeUserFollowButts * init all follow button types, add pack to tag index and podcast episode pages * add pack to all relevant pages, listen for newly inserted follow buttons * change to searchParams to remove follow button initializer calls * fix bug with tag page, add pack to notifications page * fix issue with follow back inner text * update cypress specs * run the followbuttons code on sponsors page * remove extra foreach * add test for follow from article sidebar * add test for follow and unfollow tag * add test for the tag index page * add spec for organisation profile follow * add tests for follow buttons in search results * add tests for notification follows * commit missed file - woops * show login modal if user is logged out when they click * add cypress tests for logged out state * change tag button initialization * remove data-button-initialized * init follow buttons from base pack * handle the case where multiple follow buttons exist on a page for the same user * account for instantclick and userdata not being defined, lower coverage for jest * use getInstantClick * fix issue with set initialisation * only listen for mutations in areas we know follow buttons may be added dynamically * small refactors
84 lines
2.7 KiB
JavaScript
84 lines
2.7 KiB
JavaScript
/*
|
|
global initializeLocalStorageRender, initializeBodyData,
|
|
initializeAllChatButtons, initializeAllTagEditButtons, initializeUserFollowButts,
|
|
initializeBaseTracking, initializeCommentsPage,
|
|
initializeArticleDate, initializeArticleReactions, initNotifications,
|
|
initializeCommentDate, initializeSettings,
|
|
initializeCommentPreview, initializeRuntimeBanner,
|
|
initializeTimeFixer, initializeDashboardSort, initializePWAFunctionality,
|
|
initializeArchivedPostFilter, initializeCreditsPage,
|
|
initializeProfileInfoToggle, initializePodcastPlayback,
|
|
initializeVideoPlayback, initializeDrawerSliders, initializeProfileBadgesToggle,
|
|
initializeHeroBannerClose, initializeOnboardingTaskCard, initScrolling,
|
|
nextPage:writable, fetching:writable, done:writable, adClicked:writable,
|
|
initializePaymentPointers, initializeBroadcast, initializeDateHelpers,
|
|
initializeColorPicker, Runtime
|
|
*/
|
|
|
|
function callInitializers() {
|
|
initializeBaseTracking();
|
|
initializePaymentPointers();
|
|
initializeCommentsPage();
|
|
initializeArticleDate();
|
|
initializeArticleReactions();
|
|
initNotifications();
|
|
initializeCommentDate();
|
|
initializeSettings();
|
|
initializeCommentPreview();
|
|
initializeTimeFixer();
|
|
initializeDashboardSort();
|
|
initializePWAFunctionality();
|
|
initializeArchivedPostFilter();
|
|
initializeCreditsPage();
|
|
initializeProfileInfoToggle();
|
|
initializeProfileBadgesToggle();
|
|
initializePodcastPlayback();
|
|
initializeVideoPlayback();
|
|
initializeDrawerSliders();
|
|
initializeHeroBannerClose();
|
|
initializeOnboardingTaskCard();
|
|
initializeDateHelpers();
|
|
initializeColorPicker();
|
|
}
|
|
|
|
function initializePage() {
|
|
initializeLocalStorageRender();
|
|
initializeBodyData();
|
|
|
|
var waitingForDataLoad = setInterval(function wait() {
|
|
if (document.body.getAttribute('data-loaded') === 'true') {
|
|
clearInterval(waitingForDataLoad);
|
|
if (document.body.getAttribute('data-user-status') === 'logged-in') {
|
|
initializeBaseUserData();
|
|
initializeAllChatButtons();
|
|
initializeAllTagEditButtons();
|
|
}
|
|
initializeBroadcast();
|
|
initializeReadingListIcons();
|
|
initializeSponsorshipVisibility();
|
|
if (document.getElementById('sidebar-additional')) {
|
|
document.getElementById('sidebar-additional').classList.add('showing');
|
|
}
|
|
}
|
|
}, 1);
|
|
|
|
callInitializers();
|
|
|
|
function freezeScrolling(event) {
|
|
event.preventDefault();
|
|
}
|
|
|
|
nextPage = 0;
|
|
fetching = false;
|
|
done = false;
|
|
adClicked = false;
|
|
setTimeout(function undone() {
|
|
done = false;
|
|
}, 300);
|
|
if (!initScrolling.called) {
|
|
initScrolling();
|
|
}
|
|
|
|
// Initialize data-runtime context to the body data-attribute
|
|
document.body.dataset.runtime = Runtime.currentContext();
|
|
}
|