oont-contents/plugins/jetpack/modules/infinite-scroll/infinity-customizer.js
2025-02-10 13:57:45 +01:00

53 lines
1.9 KiB
JavaScript

( function ( $ ) {
/**
* Ready, set, go!
*/
$( document ).ready( function () {
// Integrate with Selective Refresh in the Customizer.
if ( 'undefined' !== typeof wp && wp.customize && wp.customize.selectiveRefresh ) {
/**
* Handle rendering of selective refresh partials.
*
* Make sure that when a partial is rendered, the Jetpack post-load event
* will be triggered so that any dynamic elements will be re-constructed,
* such as ME.js elements, Photon replacements, social sharing, and more.
* Note that this is applying here not strictly to posts being loaded.
* If a widget contains a ME.js element and it is previewed via selective
* refresh, the post-load would get triggered allowing any dynamic elements
* therein to also be re-constructed.
*
* @param {wp.customize.selectiveRefresh.Placement} placement
*/
wp.customize.selectiveRefresh.bind( 'partial-content-rendered', function ( placement ) {
var content;
if ( 'string' === typeof placement.addedContent ) {
content = placement.addedContent;
} else if ( placement.container ) {
content = $( placement.container ).html();
}
if ( content ) {
$( document.body ).trigger( 'post-load', { html: content } );
}
} );
/*
* Add partials for posts added via infinite scroll.
*
* This is unnecessary when MutationObserver is supported by the browser
* since then this will be handled by Selective Refresh in core.
*/
if ( 'undefined' === typeof MutationObserver ) {
$( document.body ).on( 'post-load', function ( e, response ) {
var rootElement = null;
if ( response.html && -1 !== response.html.indexOf( 'data-customize-partial' ) ) {
if ( window.infiniteScroll.settings.id ) {
rootElement = $( '#' + window.infiniteScroll.settings.id );
}
wp.customize.selectiveRefresh.addPartials( rootElement );
}
} );
}
}
} );
} )( jQuery ); // Close closure