Changeset 4b5db37 in Klonkt for src/assets/js/mod/post-edit.js
- Timestamp:
- 08/07/2026 06:33:54 PM (5 weeks ago)
- Branches:
- main
- Children:
- da84110
- Parents:
- c1df3e9
- git-author:
- Robin <roboburr@…> (08/07/2026 06:33:41 PM)
- git-committer:
- Robin <roboburr@…> (08/07/2026 06:33:54 PM)
- File:
-
- 1 edited
-
src/assets/js/mod/post-edit.js (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/assets/js/mod/post-edit.js
rc1df3e9 r4b5db37 5 5 // het houdt een apostrof in een vertaling uit de HTML die hier geplakt wordt. 6 6 7 import { pageData, esc } from './lib.js'; 8 9 const T = pageData(); 7 import { pageData, esc, makeSweeper } from './lib.js'; 8 9 // De oude inline scripts draaiden bij ELKE render; een module draait zijn 10 // top-level een keer per sessie. Vandaar init(): de bootstrap roept hem aan 11 // bij elke paginawissel waarop deze module actief is, en de veger haalt eerst 12 // de document/window-listeners van de vorige pagina weg -- die overleven de 13 // swap, met closures naar elementen die al verdwenen zijn (shaer-5s1). 14 const doc = makeSweeper(); 15 let T = {}; 16 let _barObserver = null; 17 18 export function init() { 19 doc.sweep(); 20 if (_barObserver) { _barObserver.disconnect(); _barObserver = null; } 21 T = pageData(); 22 run(); 23 } 24 25 function run() { 10 26 11 27 (function () { … … 631 647 } 632 648 function toggleFullscreen() { if (isFs()) closeFs(); else openFs(); } 633 window.addEventListener('popstate', function () { if (isFs()) applyFs(false); });649 doc.on(window, 'popstate', function () { if (isFs()) applyFs(false); }); 634 650 if (fsBtn) fsBtn.addEventListener('click', toggleFullscreen); 635 651 var fsDoneBtn = document.getElementById('pe-fs-done'); 636 652 if (fsDoneBtn) fsDoneBtn.addEventListener('click', closeFs); 637 doc ument.addEventListener('keydown', (e) => {653 doc.on(document, 'keydown', (e) => { 638 654 if (e.key === 'Escape' && isFs()) { e.preventDefault(); closeFs(); } 639 655 }); … … 663 679 if (bqBtn) bqBtn.classList.toggle('is-active', !!blockquoteAncestor()); 664 680 } 665 doc ument.addEventListener('selectionchange', () => {681 doc.on(document, 'selectionchange', () => { 666 682 if (document.activeElement === editor) updateToolbarState(); 667 683 }); … … 884 900 } 885 901 }); 886 doc ument.addEventListener('keydown', (e) => {902 doc.on(document, 'keydown', (e) => { 887 903 if (!trackPicker.hidden && e.key === 'Escape') { 888 904 e.preventDefault(); … … 1092 1108 } 1093 1109 position(); 1094 window.addEventListener('resize', position); 1095 if (vv) { vv.addEventListener('resize', position); vv.addEventListener('scroll', position); } 1096 // has-audio-player is toggled via a body class → observe it. 1097 try { new MutationObserver(position).observe(document.body, { attributes: true, attributeFilter: ['class'] }); } catch (_) {} 1110 doc.on(window, 'resize', position); 1111 if (vv) { doc.on(vv, 'resize', position); doc.on(vv, 'scroll', position); } 1112 // has-audio-player is toggled via a body class → observe it. De observer 1113 // overleeft de swap net als de listeners; init() disconnect de vorige. 1114 try { _barObserver = new MutationObserver(position); _barObserver.observe(document.body, { attributes: true, attributeFilter: ['class'] }); } catch (_) {} 1098 1115 })(); 1116 }
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)