nodebb-plugin-ezoic-infinite 1.7.78 → 1.7.79

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/public/client.js +6 -5
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nodebb-plugin-ezoic-infinite",
3
- "version": "1.7.78",
3
+ "version": "1.7.79",
4
4
  "description": "Production-ready Ezoic infinite ads integration for NodeBB 4.x",
5
5
  "main": "library.js",
6
6
  "license": "MIT",
package/public/client.js CHANGED
@@ -281,21 +281,22 @@
281
281
 
282
282
  function watchFill(id, wrap) {
283
283
  // Phase 1 : attend qu'une vraie pub apparaisse (iframe/ins).
284
- // Phase 2 : si la pub disparaît ensuite (AMP lazy unload), collapse le wrap.
284
+ // Phase 2 : si la pub disparaît (AMP lazy unload) réobserve le placeholder
285
+ // pour relancer showAds quand il repasse dans le viewport.
285
286
  const ph = document.getElementById(`${PH_PREFIX}${id}`);
286
287
  if (!ph) return;
287
288
  let filled = false;
288
289
  const obs = new MutationObserver(() => {
289
290
  const hasPub = !!(ph.querySelector('iframe, ins'));
290
291
  if (!filled && hasPub) {
291
- // Pub vient de charger
292
292
  filled = true;
293
293
  wrap.setAttribute('data-ez-filled', '1');
294
294
  wrap.classList.remove('is-empty');
295
295
  } else if (filled && !hasPub) {
296
- // Pub a disparu (AMP unload) collapse
297
- wrap.classList.add('is-empty');
298
- obs.disconnect();
296
+ // Pub disparue retirer data-ez-filled et réobserver pour reload
297
+ wrap.removeAttribute('data-ez-filled');
298
+ filled = false;
299
+ try { getIO()?.observe(ph); } catch (_) {}
299
300
  }
300
301
  });
301
302
  obs.observe(ph, { childList: true, subtree: true });