Plugin Directory

Changeset 3261670


Ignore:
Timestamp:
03/25/2025 04:08:28 PM (10 months ago)
Author:
wpspecialprojects
Message:

Update to version 1.0.9 from GitHub

Location:
query-loop-load-more
Files:
26 edited
1 copied

Legend:

Unmodified
Added
Removed
  • query-loop-load-more/tags/1.0.9/assets/css/src/_infinite.scss

    r3254935 r3261670  
    1818        width: 32px;
    1919        height: 32px;
    20         visibility: hidden;
    2120
    2221        div {
     
    3231                animation-delay: -0.5s;
    3332            }
    34         }
    35     }
    36 
    37     &.loading {
    38 
    39         .animation-wrapper {
    40             visibility: visible;
    4133        }
    4234    }
  • query-loop-load-more/tags/1.0.9/assets/css/src/editor.scss

    r3254935 r3261670  
    3737
    3838            @media (prefers-reduced-motion: reduce) {
    39                 animation-play-state: paused
     39                animation-play-state: paused;
    4040            }
    4141        }
  • query-loop-load-more/tags/1.0.9/assets/css/src/style.scss

    r3254935 r3261670  
    22
    33.wp-load-more__button {
    4     display: flex;
    5     align-items: center;
    6     gap: var(--wp--preset--spacing--30);
     4
     5    .qllm-load-more {
     6        display: flex;
     7        align-items: center;
     8        gap: var(--wp--preset--spacing--30);
     9    }
     10
     11    .qllm-loading {
     12        display: none;
     13    }
     14
     15    &.loading {
     16
     17        .qllm-loading {
     18            display: block;
     19        }
     20
     21        .qllm-load-more {
     22            display: none;
     23        }
     24    }
    725}
  • query-loop-load-more/tags/1.0.9/assets/js/build/frontend.asset.php

    r3258468 r3261670  
    1 <?php return array('dependencies' => array('wp-dom-ready'), 'version' => 'f653acb666e5161b28d7');
     1<?php return array('dependencies' => array('wp-dom-ready'), 'version' => '03f1f5d966ee1aea9b6b');
  • query-loop-load-more/tags/1.0.9/assets/js/build/frontend.js

    r3258468 r3261670  
    1 (()=>{"use strict";var e={n:t=>{var o=t&&t.__esModule?()=>t.default:()=>t;return e.d(o,{a:o}),o},d:(t,o)=>{for(var n in o)e.o(o,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:o[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.wp.domReady;var o=e.n(t);const n=new window.IntersectionObserver((e=>{e.forEach((e=>{e.isIntersecting&&r(e.target)}))}),{threshold:.5}),r=e=>{const t=e.href,o=e.closest(".wp-block-query")?.querySelector(".wp-block-post-template");!e.classList.contains("loading")&&o&&t&&new URL(t,window.location.origin).origin===window.location.origin&&(e.classList.add("loading"),e.classList.contains("wp-load-more__infinite-scroll")||(e.innerText=e.dataset.loadingText),fetch(t,{method:"GET",headers:{"Content-Type":"text/html"}}).then((function(e){if(e.ok)return e.text();throw new Error("Network response was not ok.")})).then((function(t){const r=document.createElement("div");r.innerHTML=t;const a=o.dataset.qllmQueryRegion||"",s=r.querySelector(`.wp-block-post-template[data-qllm-query-region="${a}"]`);s&&o.insertAdjacentHTML("beforeend",s.innerHTML);const i=e.closest(".wp-block-button");i&&i.classList.remove("loading");const l=+e.dataset.queryNextPage,c=+e.dataset.queryMaxPage;if(e.dataset.updateUrl){const t=new URL(window.location.href);t.searchParams.set(e.dataset.queryUrl,l),window.history.pushState({},"",t)}if(l>=c)return e.classList.contains("wp-load-more__infinite-scroll")&&n.unobserve(e),void e.closest(".wp-block-buttons")?.remove();l<c&&(e.dataset.queryNextPage=l+1,e.href="?"+e.dataset.queryUrl+"="+e.dataset.queryNextPage)})).catch((e=>{console.error("Fetch error:",e)})).finally((()=>{e.classList.remove("loading"),e.classList.contains("wp-load-more__infinite-scroll")||(e.innerText=e.dataset.loadMoreText);const t=e.getBoundingClientRect();e.classList.contains("wp-load-more__infinite-scroll")&&t.bottom>0&&t.top<window.innerHeight&&(n.unobserve(e),n.observe(e))})))};o()((()=>{document.querySelectorAll(".wp-load-more__button:not(.wp-load-more__infinite-scroll)").forEach((function(e){void 0===e.dataset.loadMoreText&&(e.dataset.loadMoreText=e.innerText),e.addEventListener("click",(function(e){e.preventDefault(),r(e.target)}))})),document.querySelectorAll(".wp-load-more__infinite-scroll").forEach((function(e){n.observe(e)}))}))})();
     1(()=>{"use strict";var e={n:t=>{var o=t&&t.__esModule?()=>t.default:()=>t;return e.d(o,{a:o}),o},d:(t,o)=>{for(var n in o)e.o(o,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:o[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.wp.domReady;var o=e.n(t);const n=new window.IntersectionObserver((e=>{e.forEach((e=>{e.isIntersecting&&r(e.target)}))}),{threshold:.5}),r=e=>{const t=e?.closest(".wp-load-more__button");if(!t)return;const o=t.href,r=t.closest(".wp-block-query")?.querySelector(".wp-block-post-template");!t.classList.contains("loading")&&r&&o&&new URL(o,window.location.origin).origin===window.location.origin&&(t.classList.add("loading"),fetch(o,{method:"GET",headers:{"Content-Type":"text/html"}}).then((function(e){if(e.ok)return e.text();throw new Error("Network response was not ok.")})).then((function(e){const o=document.createElement("div");o.innerHTML=e;const s=r.dataset.qllmQueryRegion||"",a=o.querySelector(`.wp-block-post-template[data-qllm-query-region="${s}"]`);a&&r.insertAdjacentHTML("beforeend",a.innerHTML);const i=t.closest(".wp-block-button");i&&i.classList.remove("loading");const c=+t.dataset.queryNextPage,l=+t.dataset.queryMaxPage;if(t.dataset.updateUrl){const e=new URL(window.location.href);e.searchParams.set(t.dataset.queryUrl,c),window.history.pushState({},"",e)}if(c>=l)return t.classList.contains("wp-load-more__infinite-scroll")&&n.unobserve(t),void t.closest(".wp-block-buttons")?.remove();c<l&&(t.dataset.queryNextPage=c+1,t.href="?"+t.dataset.queryUrl+"="+t.dataset.queryNextPage)})).catch((e=>{console.error("Fetch error:",e)})).finally((()=>{if(t.classList.remove("loading"),t.classList.contains("wp-load-more__infinite-scroll")){const e=t.getBoundingClientRect();e.bottom>0&&e.top<window.innerHeight&&(n.unobserve(t),n.observe(t))}})))};o()((()=>{document.querySelectorAll(".wp-load-more__button:not(.wp-load-more__infinite-scroll)").forEach((function(e){e.addEventListener("click",(function(e){e.preventDefault(),r(e.target)}))})),document.querySelectorAll(".wp-load-more__infinite-scroll").forEach((function(e){n.observe(e)}))}))})();
  • query-loop-load-more/tags/1.0.9/assets/js/build/index.asset.php

    r3254935 r3261670  
    1 <?php return array('dependencies' => array('wp-block-editor', 'wp-components', 'wp-compose', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-primitives'), 'version' => '2c9a39a9e88d23ce0151');
     1<?php return array('dependencies' => array('wp-block-editor', 'wp-components', 'wp-compose', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-primitives'), 'version' => '7ac142c4a969e5d91459');
  • query-loop-load-more/tags/1.0.9/assets/js/build/index.css

    r3254935 r3261670  
    1 body .wp-load-more__infinite-scroll{pointer-events:none;justify-content:center;display:flex}body .wp-load-more__infinite-scroll.is-content-justification-right{justify-content:flex-end}body .wp-load-more__infinite-scroll.is-content-justification-left{justify-content:flex-start}body .wp-load-more__infinite-scroll .animation-wrapper{display:inline-block;position:relative;width:32px;height:32px;visibility:hidden}body .wp-load-more__infinite-scroll .animation-wrapper div{position:absolute;border-width:2px;border-style:solid;border-color:inherit;opacity:1;border-radius:50%;animation:load-more-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite}body .wp-load-more__infinite-scroll .animation-wrapper div:nth-child(2){animation-delay:-0.5s}body .wp-load-more__infinite-scroll.loading .animation-wrapper{visibility:visible}body .wp-load-more__infinite-scroll+.wp-block-buttons{opacity:0;visibility:hidden;overflow:hidden;height:1px;pointer-events:none}@keyframes load-more-ripple{0%{top:50%;left:50%;width:0;height:0;opacity:0}4.9%{top:50%;left:50%;width:0;height:0;opacity:0}5%{top:50%;left:50%;width:0;height:0;opacity:1}100%{top:0;left:0;width:100%;height:100%;opacity:0}}.wp-block-query-pagination.load-more{min-height:66px}.wp-block-query-pagination.load-more *{display:none}.wp-block-query-pagination.load-more+.load-more-button-wrap{margin-top:-66px;pointer-events:none}.wp-load-more__button{display:flex;align-items:center;gap:var(--wp--preset--spacing--30)}.wp-load-more__button+.wp-load-more__button{display:none}.wp-load-more__infinite-scroll{margin-top:-66px;display:flex}.wp-load-more__infinite-scroll .animation-wrapper.animation-wrapper{visibility:visible}.wp-load-more__infinite-scroll .animation-wrapper.animation-wrapper div{animation-duration:2.5s}@media(prefers-reduced-motion: reduce){.wp-load-more__infinite-scroll .animation-wrapper.animation-wrapper div{animation-play-state:paused}}
     1body .wp-load-more__infinite-scroll{pointer-events:none;justify-content:center;display:flex}body .wp-load-more__infinite-scroll.is-content-justification-right{justify-content:flex-end}body .wp-load-more__infinite-scroll.is-content-justification-left{justify-content:flex-start}body .wp-load-more__infinite-scroll .animation-wrapper{display:inline-block;position:relative;width:32px;height:32px}body .wp-load-more__infinite-scroll .animation-wrapper div{position:absolute;border-width:2px;border-style:solid;border-color:inherit;opacity:1;border-radius:50%;animation:load-more-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite}body .wp-load-more__infinite-scroll .animation-wrapper div:nth-child(2){animation-delay:-0.5s}body .wp-load-more__infinite-scroll+.wp-block-buttons{opacity:0;visibility:hidden;overflow:hidden;height:1px;pointer-events:none}@keyframes load-more-ripple{0%{top:50%;left:50%;width:0;height:0;opacity:0}4.9%{top:50%;left:50%;width:0;height:0;opacity:0}5%{top:50%;left:50%;width:0;height:0;opacity:1}100%{top:0;left:0;width:100%;height:100%;opacity:0}}.wp-block-query-pagination.load-more{min-height:66px}.wp-block-query-pagination.load-more *{display:none}.wp-block-query-pagination.load-more+.load-more-button-wrap{margin-top:-66px;pointer-events:none}.wp-load-more__button{display:flex;align-items:center;gap:var(--wp--preset--spacing--30)}.wp-load-more__button+.wp-load-more__button{display:none}.wp-load-more__infinite-scroll{margin-top:-66px;display:flex}.wp-load-more__infinite-scroll .animation-wrapper.animation-wrapper{visibility:visible}.wp-load-more__infinite-scroll .animation-wrapper.animation-wrapper div{animation-duration:2.5s}@media(prefers-reduced-motion: reduce){.wp-load-more__infinite-scroll .animation-wrapper.animation-wrapper div{animation-play-state:paused}}
  • query-loop-load-more/tags/1.0.9/assets/js/build/style-index.css

    r3254935 r3261670  
    1 body .wp-load-more__infinite-scroll{pointer-events:none;justify-content:center;display:flex}body .wp-load-more__infinite-scroll.is-content-justification-right{justify-content:flex-end}body .wp-load-more__infinite-scroll.is-content-justification-left{justify-content:flex-start}body .wp-load-more__infinite-scroll .animation-wrapper{display:inline-block;position:relative;width:32px;height:32px;visibility:hidden}body .wp-load-more__infinite-scroll .animation-wrapper div{position:absolute;border-width:2px;border-style:solid;border-color:inherit;opacity:1;border-radius:50%;animation:load-more-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite}body .wp-load-more__infinite-scroll .animation-wrapper div:nth-child(2){animation-delay:-0.5s}body .wp-load-more__infinite-scroll.loading .animation-wrapper{visibility:visible}body .wp-load-more__infinite-scroll+.wp-block-buttons{opacity:0;visibility:hidden;overflow:hidden;height:1px;pointer-events:none}@keyframes load-more-ripple{0%{top:50%;left:50%;width:0;height:0;opacity:0}4.9%{top:50%;left:50%;width:0;height:0;opacity:0}5%{top:50%;left:50%;width:0;height:0;opacity:1}100%{top:0;left:0;width:100%;height:100%;opacity:0}}.wp-load-more__button{display:flex;align-items:center;gap:var(--wp--preset--spacing--30)}
     1body .wp-load-more__infinite-scroll{pointer-events:none;justify-content:center;display:flex}body .wp-load-more__infinite-scroll.is-content-justification-right{justify-content:flex-end}body .wp-load-more__infinite-scroll.is-content-justification-left{justify-content:flex-start}body .wp-load-more__infinite-scroll .animation-wrapper{display:inline-block;position:relative;width:32px;height:32px}body .wp-load-more__infinite-scroll .animation-wrapper div{position:absolute;border-width:2px;border-style:solid;border-color:inherit;opacity:1;border-radius:50%;animation:load-more-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite}body .wp-load-more__infinite-scroll .animation-wrapper div:nth-child(2){animation-delay:-0.5s}body .wp-load-more__infinite-scroll+.wp-block-buttons{opacity:0;visibility:hidden;overflow:hidden;height:1px;pointer-events:none}@keyframes load-more-ripple{0%{top:50%;left:50%;width:0;height:0;opacity:0}4.9%{top:50%;left:50%;width:0;height:0;opacity:0}5%{top:50%;left:50%;width:0;height:0;opacity:1}100%{top:0;left:0;width:100%;height:100%;opacity:0}}.wp-load-more__button .qllm-load-more{display:flex;align-items:center;gap:var(--wp--preset--spacing--30)}.wp-load-more__button .qllm-loading{display:none}.wp-load-more__button.loading .qllm-loading{display:block}.wp-load-more__button.loading .qllm-load-more{display:none}
  • query-loop-load-more/tags/1.0.9/assets/js/src/frontend.js

    r3258468 r3261670  
    1818 * Load page from server, extract and append new posts to button's query block.
    1919 *
    20  * @param {*} button
     20 * @param {*} target
    2121 */
    22 const fetchPosts = ( button ) => {
     22const fetchPosts = ( target ) => {
     23    const button = target?.closest( '.wp-load-more__button' );
     24
     25    if ( ! button ) {
     26        return;
     27    }
     28
    2329    const url = button.href;
    2430    const container = button
     
    4046    //set loading text and classes
    4147    button.classList.add( 'loading' );
    42     if ( ! button.classList.contains( 'wp-load-more__infinite-scroll' ) ) {
    43         button.innerText = button.dataset.loadingText;
    44     }
    4548
    4649    // Load posts via fetch from the button URL.
     
    7376            if ( posts ) {
    7477                container.insertAdjacentHTML( 'beforeend', posts.innerHTML );
    75             } 
     78            }
    7679
    7780            const $button = button.closest( '.wp-block-button' );
     
    128131
    129132            if (
    130                 ! button.classList.contains( 'wp-load-more__infinite-scroll' )
     133                button.classList.contains( 'wp-load-more__infinite-scroll' )
    131134            ) {
    132                 button.innerText = button.dataset.loadMoreText;
    133             }
     135                const bcr = button.getBoundingClientRect();
    134136
    135             const bcr = button.getBoundingClientRect();
    136 
    137             // fix not triggering the callback if the button is still visible
    138             // if button is visible - toggle observing to ensure the
    139             // Intersection observer triggers the callback again
    140             if ( button.classList.contains( 'wp-load-more__infinite-scroll' ) && bcr.bottom > 0 && bcr.top < window.innerHeight ) {
    141                 intersectionObserver.unobserve( button );
    142                 intersectionObserver.observe( button );
     137                // fix not triggering the callback if the button is still visible
     138                // if button is visible - toggle observing to ensure the
     139                // Intersection observer triggers the callback again
     140                if ( bcr.bottom > 0 && bcr.top < window.innerHeight ) {
     141                    intersectionObserver.unobserve( button );
     142                    intersectionObserver.observe( button );
     143                }
    143144            }
    144145        } );
     
    158159        )
    159160        .forEach( function ( button ) {
    160             // store load more text
    161             if ( button.dataset.loadMoreText === undefined ) {
    162                 button.dataset.loadMoreText = button.innerText;
    163             }
    164 
    165161            //add listener
    166162            button.addEventListener( 'click', function ( e ) {
  • query-loop-load-more/tags/1.0.9/query-loop-load-more.php

    r3258468 r3261670  
    44 * Plugin URI:              https://github.com/a8cteam51/query-loop-load-more
    55 * Description:             Adds a load more option to the Query Loop Pagination block in Gutenberg.
    6  * Version:                 1.0.8
     6 * Version:                 1.0.9
    77 * Requires at least:       6.2
    88 * Tested up to:            6.7.2
  • query-loop-load-more/tags/1.0.9/readme.txt

    r3258559 r3261670  
    44Requires at least: 6.2
    55Tested up to: 6.7.2
    6 Stable tag: 1.0.8
     6Stable tag: 1.0.9
    77Requires PHP: 8.0
    88License: GPLv3 or later
     
    7272== Changelog ==
    7373
     74= 1.0.9 =
     75* Fix - Loading more posts for query blocks with no or zero as the queryId
     76* Fix - Keeping original button content after loading more posts. Fixes pagination arrow
     77
    7478= 1.0.8 =
    7579* Fix - Only use intersection observer if infinite loading setting is active
  • query-loop-load-more/tags/1.0.9/src/Plugin.php

    r3258468 r3261670  
    218218        // Get query context for current page number and query Id.
    219219        $query_id         = (int) $block->context['queryId'] ?? 0;
    220         $page_key         = $query_id ? 'query-' . $block->context['queryId'] . '-page' : 'query-page';
     220        $page_key         = isset( $block->context['queryId'] ) ? 'query-' . $query_id . '-page' : 'query-page';
    221221        $inherit          = $block->context['query']['inherit'] ?? false;
    222222        $is_infinite      = $attributes['infiniteScroll'] ?? false;
     
    245245            // Build list of load more links.
    246246            $block_content = sprintf(
    247                 '<a class="%1$s" href="?%2$s=%3$d" data-loading-text="%4$s" data-query-next-page="%3$d" data-query-key="%5$d" data-query-max-page="%6$d" data-query-url="%2$s" data-update-url="%7$s">%8$s%9$s</a>',
     247                '<a class="%1$s" href="?%2$s=%3$d" data-query-next-page="%3$d" data-query-key="%5$d" data-query-max-page="%6$d" data-query-url="%2$s" data-update-url="%7$s"><span class="qllm-loading">%4$s%9$s</span><span class="qllm-load-more">%8$s</span></a>',
    248248                $button_classes,
    249249                $page_parameter,
    250250                $page + 1,
    251                 $is_infinite ? '' : esc_attr( $attributes['loadingText'] ),
     251                $is_infinite ? '' : esc_html( $attributes['loadingText'] ),
    252252                $query_id,
    253253                $block_query->max_num_pages,
  • query-loop-load-more/tags/1.0.9/vendor/composer/installed.php

    r3258468 r3261670  
    22    'root' => array(
    33        'name' => 'a8cteam51/query-loop-load-more',
    4         'pretty_version' => 'v1.0.8',
    5         'version' => '1.0.8.0',
    6         'reference' => '93a5015a359419e8c7ee1b02c8770bbed4adb3ca',
     4        'pretty_version' => 'v1.0.9',
     5        'version' => '1.0.9.0',
     6        'reference' => '5e9806510023a97032b78f72a87537a139259d35',
    77        'type' => 'wordpress-plugin',
    88        'install_path' => __DIR__ . '/../../',
     
    1212    'versions' => array(
    1313        'a8cteam51/query-loop-load-more' => array(
    14             'pretty_version' => 'v1.0.8',
    15             'version' => '1.0.8.0',
    16             'reference' => '93a5015a359419e8c7ee1b02c8770bbed4adb3ca',
     14            'pretty_version' => 'v1.0.9',
     15            'version' => '1.0.9.0',
     16            'reference' => '5e9806510023a97032b78f72a87537a139259d35',
    1717            'type' => 'wordpress-plugin',
    1818            'install_path' => __DIR__ . '/../../',
  • query-loop-load-more/trunk/assets/css/src/_infinite.scss

    r3254935 r3261670  
    1818        width: 32px;
    1919        height: 32px;
    20         visibility: hidden;
    2120
    2221        div {
     
    3231                animation-delay: -0.5s;
    3332            }
    34         }
    35     }
    36 
    37     &.loading {
    38 
    39         .animation-wrapper {
    40             visibility: visible;
    4133        }
    4234    }
  • query-loop-load-more/trunk/assets/css/src/editor.scss

    r3254935 r3261670  
    3737
    3838            @media (prefers-reduced-motion: reduce) {
    39                 animation-play-state: paused
     39                animation-play-state: paused;
    4040            }
    4141        }
  • query-loop-load-more/trunk/assets/css/src/style.scss

    r3254935 r3261670  
    22
    33.wp-load-more__button {
    4     display: flex;
    5     align-items: center;
    6     gap: var(--wp--preset--spacing--30);
     4
     5    .qllm-load-more {
     6        display: flex;
     7        align-items: center;
     8        gap: var(--wp--preset--spacing--30);
     9    }
     10
     11    .qllm-loading {
     12        display: none;
     13    }
     14
     15    &.loading {
     16
     17        .qllm-loading {
     18            display: block;
     19        }
     20
     21        .qllm-load-more {
     22            display: none;
     23        }
     24    }
    725}
  • query-loop-load-more/trunk/assets/js/build/frontend.asset.php

    r3258468 r3261670  
    1 <?php return array('dependencies' => array('wp-dom-ready'), 'version' => 'f653acb666e5161b28d7');
     1<?php return array('dependencies' => array('wp-dom-ready'), 'version' => '03f1f5d966ee1aea9b6b');
  • query-loop-load-more/trunk/assets/js/build/frontend.js

    r3258468 r3261670  
    1 (()=>{"use strict";var e={n:t=>{var o=t&&t.__esModule?()=>t.default:()=>t;return e.d(o,{a:o}),o},d:(t,o)=>{for(var n in o)e.o(o,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:o[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.wp.domReady;var o=e.n(t);const n=new window.IntersectionObserver((e=>{e.forEach((e=>{e.isIntersecting&&r(e.target)}))}),{threshold:.5}),r=e=>{const t=e.href,o=e.closest(".wp-block-query")?.querySelector(".wp-block-post-template");!e.classList.contains("loading")&&o&&t&&new URL(t,window.location.origin).origin===window.location.origin&&(e.classList.add("loading"),e.classList.contains("wp-load-more__infinite-scroll")||(e.innerText=e.dataset.loadingText),fetch(t,{method:"GET",headers:{"Content-Type":"text/html"}}).then((function(e){if(e.ok)return e.text();throw new Error("Network response was not ok.")})).then((function(t){const r=document.createElement("div");r.innerHTML=t;const a=o.dataset.qllmQueryRegion||"",s=r.querySelector(`.wp-block-post-template[data-qllm-query-region="${a}"]`);s&&o.insertAdjacentHTML("beforeend",s.innerHTML);const i=e.closest(".wp-block-button");i&&i.classList.remove("loading");const l=+e.dataset.queryNextPage,c=+e.dataset.queryMaxPage;if(e.dataset.updateUrl){const t=new URL(window.location.href);t.searchParams.set(e.dataset.queryUrl,l),window.history.pushState({},"",t)}if(l>=c)return e.classList.contains("wp-load-more__infinite-scroll")&&n.unobserve(e),void e.closest(".wp-block-buttons")?.remove();l<c&&(e.dataset.queryNextPage=l+1,e.href="?"+e.dataset.queryUrl+"="+e.dataset.queryNextPage)})).catch((e=>{console.error("Fetch error:",e)})).finally((()=>{e.classList.remove("loading"),e.classList.contains("wp-load-more__infinite-scroll")||(e.innerText=e.dataset.loadMoreText);const t=e.getBoundingClientRect();e.classList.contains("wp-load-more__infinite-scroll")&&t.bottom>0&&t.top<window.innerHeight&&(n.unobserve(e),n.observe(e))})))};o()((()=>{document.querySelectorAll(".wp-load-more__button:not(.wp-load-more__infinite-scroll)").forEach((function(e){void 0===e.dataset.loadMoreText&&(e.dataset.loadMoreText=e.innerText),e.addEventListener("click",(function(e){e.preventDefault(),r(e.target)}))})),document.querySelectorAll(".wp-load-more__infinite-scroll").forEach((function(e){n.observe(e)}))}))})();
     1(()=>{"use strict";var e={n:t=>{var o=t&&t.__esModule?()=>t.default:()=>t;return e.d(o,{a:o}),o},d:(t,o)=>{for(var n in o)e.o(o,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:o[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.wp.domReady;var o=e.n(t);const n=new window.IntersectionObserver((e=>{e.forEach((e=>{e.isIntersecting&&r(e.target)}))}),{threshold:.5}),r=e=>{const t=e?.closest(".wp-load-more__button");if(!t)return;const o=t.href,r=t.closest(".wp-block-query")?.querySelector(".wp-block-post-template");!t.classList.contains("loading")&&r&&o&&new URL(o,window.location.origin).origin===window.location.origin&&(t.classList.add("loading"),fetch(o,{method:"GET",headers:{"Content-Type":"text/html"}}).then((function(e){if(e.ok)return e.text();throw new Error("Network response was not ok.")})).then((function(e){const o=document.createElement("div");o.innerHTML=e;const s=r.dataset.qllmQueryRegion||"",a=o.querySelector(`.wp-block-post-template[data-qllm-query-region="${s}"]`);a&&r.insertAdjacentHTML("beforeend",a.innerHTML);const i=t.closest(".wp-block-button");i&&i.classList.remove("loading");const c=+t.dataset.queryNextPage,l=+t.dataset.queryMaxPage;if(t.dataset.updateUrl){const e=new URL(window.location.href);e.searchParams.set(t.dataset.queryUrl,c),window.history.pushState({},"",e)}if(c>=l)return t.classList.contains("wp-load-more__infinite-scroll")&&n.unobserve(t),void t.closest(".wp-block-buttons")?.remove();c<l&&(t.dataset.queryNextPage=c+1,t.href="?"+t.dataset.queryUrl+"="+t.dataset.queryNextPage)})).catch((e=>{console.error("Fetch error:",e)})).finally((()=>{if(t.classList.remove("loading"),t.classList.contains("wp-load-more__infinite-scroll")){const e=t.getBoundingClientRect();e.bottom>0&&e.top<window.innerHeight&&(n.unobserve(t),n.observe(t))}})))};o()((()=>{document.querySelectorAll(".wp-load-more__button:not(.wp-load-more__infinite-scroll)").forEach((function(e){e.addEventListener("click",(function(e){e.preventDefault(),r(e.target)}))})),document.querySelectorAll(".wp-load-more__infinite-scroll").forEach((function(e){n.observe(e)}))}))})();
  • query-loop-load-more/trunk/assets/js/build/index.asset.php

    r3254935 r3261670  
    1 <?php return array('dependencies' => array('wp-block-editor', 'wp-components', 'wp-compose', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-primitives'), 'version' => '2c9a39a9e88d23ce0151');
     1<?php return array('dependencies' => array('wp-block-editor', 'wp-components', 'wp-compose', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-primitives'), 'version' => '7ac142c4a969e5d91459');
  • query-loop-load-more/trunk/assets/js/build/index.css

    r3254935 r3261670  
    1 body .wp-load-more__infinite-scroll{pointer-events:none;justify-content:center;display:flex}body .wp-load-more__infinite-scroll.is-content-justification-right{justify-content:flex-end}body .wp-load-more__infinite-scroll.is-content-justification-left{justify-content:flex-start}body .wp-load-more__infinite-scroll .animation-wrapper{display:inline-block;position:relative;width:32px;height:32px;visibility:hidden}body .wp-load-more__infinite-scroll .animation-wrapper div{position:absolute;border-width:2px;border-style:solid;border-color:inherit;opacity:1;border-radius:50%;animation:load-more-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite}body .wp-load-more__infinite-scroll .animation-wrapper div:nth-child(2){animation-delay:-0.5s}body .wp-load-more__infinite-scroll.loading .animation-wrapper{visibility:visible}body .wp-load-more__infinite-scroll+.wp-block-buttons{opacity:0;visibility:hidden;overflow:hidden;height:1px;pointer-events:none}@keyframes load-more-ripple{0%{top:50%;left:50%;width:0;height:0;opacity:0}4.9%{top:50%;left:50%;width:0;height:0;opacity:0}5%{top:50%;left:50%;width:0;height:0;opacity:1}100%{top:0;left:0;width:100%;height:100%;opacity:0}}.wp-block-query-pagination.load-more{min-height:66px}.wp-block-query-pagination.load-more *{display:none}.wp-block-query-pagination.load-more+.load-more-button-wrap{margin-top:-66px;pointer-events:none}.wp-load-more__button{display:flex;align-items:center;gap:var(--wp--preset--spacing--30)}.wp-load-more__button+.wp-load-more__button{display:none}.wp-load-more__infinite-scroll{margin-top:-66px;display:flex}.wp-load-more__infinite-scroll .animation-wrapper.animation-wrapper{visibility:visible}.wp-load-more__infinite-scroll .animation-wrapper.animation-wrapper div{animation-duration:2.5s}@media(prefers-reduced-motion: reduce){.wp-load-more__infinite-scroll .animation-wrapper.animation-wrapper div{animation-play-state:paused}}
     1body .wp-load-more__infinite-scroll{pointer-events:none;justify-content:center;display:flex}body .wp-load-more__infinite-scroll.is-content-justification-right{justify-content:flex-end}body .wp-load-more__infinite-scroll.is-content-justification-left{justify-content:flex-start}body .wp-load-more__infinite-scroll .animation-wrapper{display:inline-block;position:relative;width:32px;height:32px}body .wp-load-more__infinite-scroll .animation-wrapper div{position:absolute;border-width:2px;border-style:solid;border-color:inherit;opacity:1;border-radius:50%;animation:load-more-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite}body .wp-load-more__infinite-scroll .animation-wrapper div:nth-child(2){animation-delay:-0.5s}body .wp-load-more__infinite-scroll+.wp-block-buttons{opacity:0;visibility:hidden;overflow:hidden;height:1px;pointer-events:none}@keyframes load-more-ripple{0%{top:50%;left:50%;width:0;height:0;opacity:0}4.9%{top:50%;left:50%;width:0;height:0;opacity:0}5%{top:50%;left:50%;width:0;height:0;opacity:1}100%{top:0;left:0;width:100%;height:100%;opacity:0}}.wp-block-query-pagination.load-more{min-height:66px}.wp-block-query-pagination.load-more *{display:none}.wp-block-query-pagination.load-more+.load-more-button-wrap{margin-top:-66px;pointer-events:none}.wp-load-more__button{display:flex;align-items:center;gap:var(--wp--preset--spacing--30)}.wp-load-more__button+.wp-load-more__button{display:none}.wp-load-more__infinite-scroll{margin-top:-66px;display:flex}.wp-load-more__infinite-scroll .animation-wrapper.animation-wrapper{visibility:visible}.wp-load-more__infinite-scroll .animation-wrapper.animation-wrapper div{animation-duration:2.5s}@media(prefers-reduced-motion: reduce){.wp-load-more__infinite-scroll .animation-wrapper.animation-wrapper div{animation-play-state:paused}}
  • query-loop-load-more/trunk/assets/js/build/style-index.css

    r3254935 r3261670  
    1 body .wp-load-more__infinite-scroll{pointer-events:none;justify-content:center;display:flex}body .wp-load-more__infinite-scroll.is-content-justification-right{justify-content:flex-end}body .wp-load-more__infinite-scroll.is-content-justification-left{justify-content:flex-start}body .wp-load-more__infinite-scroll .animation-wrapper{display:inline-block;position:relative;width:32px;height:32px;visibility:hidden}body .wp-load-more__infinite-scroll .animation-wrapper div{position:absolute;border-width:2px;border-style:solid;border-color:inherit;opacity:1;border-radius:50%;animation:load-more-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite}body .wp-load-more__infinite-scroll .animation-wrapper div:nth-child(2){animation-delay:-0.5s}body .wp-load-more__infinite-scroll.loading .animation-wrapper{visibility:visible}body .wp-load-more__infinite-scroll+.wp-block-buttons{opacity:0;visibility:hidden;overflow:hidden;height:1px;pointer-events:none}@keyframes load-more-ripple{0%{top:50%;left:50%;width:0;height:0;opacity:0}4.9%{top:50%;left:50%;width:0;height:0;opacity:0}5%{top:50%;left:50%;width:0;height:0;opacity:1}100%{top:0;left:0;width:100%;height:100%;opacity:0}}.wp-load-more__button{display:flex;align-items:center;gap:var(--wp--preset--spacing--30)}
     1body .wp-load-more__infinite-scroll{pointer-events:none;justify-content:center;display:flex}body .wp-load-more__infinite-scroll.is-content-justification-right{justify-content:flex-end}body .wp-load-more__infinite-scroll.is-content-justification-left{justify-content:flex-start}body .wp-load-more__infinite-scroll .animation-wrapper{display:inline-block;position:relative;width:32px;height:32px}body .wp-load-more__infinite-scroll .animation-wrapper div{position:absolute;border-width:2px;border-style:solid;border-color:inherit;opacity:1;border-radius:50%;animation:load-more-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite}body .wp-load-more__infinite-scroll .animation-wrapper div:nth-child(2){animation-delay:-0.5s}body .wp-load-more__infinite-scroll+.wp-block-buttons{opacity:0;visibility:hidden;overflow:hidden;height:1px;pointer-events:none}@keyframes load-more-ripple{0%{top:50%;left:50%;width:0;height:0;opacity:0}4.9%{top:50%;left:50%;width:0;height:0;opacity:0}5%{top:50%;left:50%;width:0;height:0;opacity:1}100%{top:0;left:0;width:100%;height:100%;opacity:0}}.wp-load-more__button .qllm-load-more{display:flex;align-items:center;gap:var(--wp--preset--spacing--30)}.wp-load-more__button .qllm-loading{display:none}.wp-load-more__button.loading .qllm-loading{display:block}.wp-load-more__button.loading .qllm-load-more{display:none}
  • query-loop-load-more/trunk/assets/js/src/frontend.js

    r3258468 r3261670  
    1818 * Load page from server, extract and append new posts to button's query block.
    1919 *
    20  * @param {*} button
     20 * @param {*} target
    2121 */
    22 const fetchPosts = ( button ) => {
     22const fetchPosts = ( target ) => {
     23    const button = target?.closest( '.wp-load-more__button' );
     24
     25    if ( ! button ) {
     26        return;
     27    }
     28
    2329    const url = button.href;
    2430    const container = button
     
    4046    //set loading text and classes
    4147    button.classList.add( 'loading' );
    42     if ( ! button.classList.contains( 'wp-load-more__infinite-scroll' ) ) {
    43         button.innerText = button.dataset.loadingText;
    44     }
    4548
    4649    // Load posts via fetch from the button URL.
     
    7376            if ( posts ) {
    7477                container.insertAdjacentHTML( 'beforeend', posts.innerHTML );
    75             } 
     78            }
    7679
    7780            const $button = button.closest( '.wp-block-button' );
     
    128131
    129132            if (
    130                 ! button.classList.contains( 'wp-load-more__infinite-scroll' )
     133                button.classList.contains( 'wp-load-more__infinite-scroll' )
    131134            ) {
    132                 button.innerText = button.dataset.loadMoreText;
    133             }
     135                const bcr = button.getBoundingClientRect();
    134136
    135             const bcr = button.getBoundingClientRect();
    136 
    137             // fix not triggering the callback if the button is still visible
    138             // if button is visible - toggle observing to ensure the
    139             // Intersection observer triggers the callback again
    140             if ( button.classList.contains( 'wp-load-more__infinite-scroll' ) && bcr.bottom > 0 && bcr.top < window.innerHeight ) {
    141                 intersectionObserver.unobserve( button );
    142                 intersectionObserver.observe( button );
     137                // fix not triggering the callback if the button is still visible
     138                // if button is visible - toggle observing to ensure the
     139                // Intersection observer triggers the callback again
     140                if ( bcr.bottom > 0 && bcr.top < window.innerHeight ) {
     141                    intersectionObserver.unobserve( button );
     142                    intersectionObserver.observe( button );
     143                }
    143144            }
    144145        } );
     
    158159        )
    159160        .forEach( function ( button ) {
    160             // store load more text
    161             if ( button.dataset.loadMoreText === undefined ) {
    162                 button.dataset.loadMoreText = button.innerText;
    163             }
    164 
    165161            //add listener
    166162            button.addEventListener( 'click', function ( e ) {
  • query-loop-load-more/trunk/query-loop-load-more.php

    r3258468 r3261670  
    44 * Plugin URI:              https://github.com/a8cteam51/query-loop-load-more
    55 * Description:             Adds a load more option to the Query Loop Pagination block in Gutenberg.
    6  * Version:                 1.0.8
     6 * Version:                 1.0.9
    77 * Requires at least:       6.2
    88 * Tested up to:            6.7.2
  • query-loop-load-more/trunk/readme.txt

    r3258559 r3261670  
    44Requires at least: 6.2
    55Tested up to: 6.7.2
    6 Stable tag: 1.0.8
     6Stable tag: 1.0.9
    77Requires PHP: 8.0
    88License: GPLv3 or later
     
    7272== Changelog ==
    7373
     74= 1.0.9 =
     75* Fix - Loading more posts for query blocks with no or zero as the queryId
     76* Fix - Keeping original button content after loading more posts. Fixes pagination arrow
     77
    7478= 1.0.8 =
    7579* Fix - Only use intersection observer if infinite loading setting is active
  • query-loop-load-more/trunk/src/Plugin.php

    r3258468 r3261670  
    218218        // Get query context for current page number and query Id.
    219219        $query_id         = (int) $block->context['queryId'] ?? 0;
    220         $page_key         = $query_id ? 'query-' . $block->context['queryId'] . '-page' : 'query-page';
     220        $page_key         = isset( $block->context['queryId'] ) ? 'query-' . $query_id . '-page' : 'query-page';
    221221        $inherit          = $block->context['query']['inherit'] ?? false;
    222222        $is_infinite      = $attributes['infiniteScroll'] ?? false;
     
    245245            // Build list of load more links.
    246246            $block_content = sprintf(
    247                 '<a class="%1$s" href="?%2$s=%3$d" data-loading-text="%4$s" data-query-next-page="%3$d" data-query-key="%5$d" data-query-max-page="%6$d" data-query-url="%2$s" data-update-url="%7$s">%8$s%9$s</a>',
     247                '<a class="%1$s" href="?%2$s=%3$d" data-query-next-page="%3$d" data-query-key="%5$d" data-query-max-page="%6$d" data-query-url="%2$s" data-update-url="%7$s"><span class="qllm-loading">%4$s%9$s</span><span class="qllm-load-more">%8$s</span></a>',
    248248                $button_classes,
    249249                $page_parameter,
    250250                $page + 1,
    251                 $is_infinite ? '' : esc_attr( $attributes['loadingText'] ),
     251                $is_infinite ? '' : esc_html( $attributes['loadingText'] ),
    252252                $query_id,
    253253                $block_query->max_num_pages,
  • query-loop-load-more/trunk/vendor/composer/installed.php

    r3258468 r3261670  
    22    'root' => array(
    33        'name' => 'a8cteam51/query-loop-load-more',
    4         'pretty_version' => 'v1.0.8',
    5         'version' => '1.0.8.0',
    6         'reference' => '93a5015a359419e8c7ee1b02c8770bbed4adb3ca',
     4        'pretty_version' => 'v1.0.9',
     5        'version' => '1.0.9.0',
     6        'reference' => '5e9806510023a97032b78f72a87537a139259d35',
    77        'type' => 'wordpress-plugin',
    88        'install_path' => __DIR__ . '/../../',
     
    1212    'versions' => array(
    1313        'a8cteam51/query-loop-load-more' => array(
    14             'pretty_version' => 'v1.0.8',
    15             'version' => '1.0.8.0',
    16             'reference' => '93a5015a359419e8c7ee1b02c8770bbed4adb3ca',
     14            'pretty_version' => 'v1.0.9',
     15            'version' => '1.0.9.0',
     16            'reference' => '5e9806510023a97032b78f72a87537a139259d35',
    1717            'type' => 'wordpress-plugin',
    1818            'install_path' => __DIR__ . '/../../',
Note: See TracChangeset for help on using the changeset viewer.