Changeset a4b903a in Klonkt for src/assets/js/mod/post-edit.js
- Timestamp:
- 08/08/2026 09:32:09 PM (4 weeks ago)
- Branches:
- main
- Children:
- 7c38a09
- Parents:
- dc0da72
- git-author:
- Robin <roboburr@…> (08/08/2026 09:32:05 PM)
- git-committer:
- Robin <roboburr@…> (08/08/2026 09:32:09 PM)
- File:
-
- 1 edited
-
src/assets/js/mod/post-edit.js (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/assets/js/mod/post-edit.js
rdc0da72 ra4b903a 582 582 const editorFrame = document.querySelector('.pe-editor-frame'); 583 583 const isTouch = !!(window.matchMedia && window.matchMedia('(pointer: coarse)').matches); 584 // OP TOUCH IS DIT GEEN LUXE MAAR DE ENIGE INGANG (shaer-kd1). Buiten 585 // fullscreen is de toolbar daar verborgen (@media (pointer: coarse) in 586 // pages/post-edit.ejs), en het veld staat op contenteditable=false. Ontbreekt 587 // een van deze twee elementen, dan kun je op een telefoon NIET TYPEN -- en tot 588 // nu toe gebeurde dat zonder één spoor: applyFs deed een kale `return`. 589 if (isTouch && (!editorFrame || !editor)) { 590 console.warn('[post-edit] fullscreen onbereikbaar op touch:', 591 'frame=' + !!editorFrame, 'editor=' + !!editor, 592 '-- de toolbar is hier verborgen, dus dit betekent: niet kunnen typen'); 593 } 584 594 585 595 // On mobile the keyboard pushes the visible (visual) viewport up while … … 601 611 function isFs() { return !!(editorFrame && editorFrame.classList.contains('pe-fs')); } 602 612 function applyFs(on) { 603 if (!editorFrame) return; 613 if (!editorFrame) { 614 // Was een kale `return`. Op touch is dit het verschil tussen "fullscreen 615 // werkt niet" en "je kunt niet typen", en het gebeurde zonder spoor. 616 console.warn('[post-edit] fullscreen kan niet: .pe-editor-frame ontbreekt'); 617 return; 618 } 604 619 editorFrame.classList.toggle('pe-fs', on); 605 620 document.body.classList.toggle('pe-fs-open', on); … … 648 663 function toggleFullscreen() { if (isFs()) closeFs(); else openFs(); } 649 664 doc.on(window, 'popstate', function () { if (isFs()) applyFs(false); }); 650 if (fsBtn) fsBtn.addEventListener('click', toggleFullscreen); 665 // __wired zoals overal in run(): init() draait bij ELKE paginawissel, en op 666 // dezelfde DOM zou een kale addEventListener stapelen. Na een htmx-wissel is 667 // het element nieuw en dus de vlag weg -- precies de bedoeling. 668 if (fsBtn && !fsBtn.__fsWired) { fsBtn.__fsWired = true; fsBtn.addEventListener('click', toggleFullscreen); } 651 669 var fsDoneBtn = document.getElementById('pe-fs-done'); 652 if (fsDoneBtn ) fsDoneBtn.addEventListener('click', closeFs);670 if (fsDoneBtn && !fsDoneBtn.__fsWired) { fsDoneBtn.__fsWired = true; fsDoneBtn.addEventListener('click', closeFs); } 653 671 doc.on(document, 'keydown', (e) => { 654 672 if (e.key === 'Escape' && isFs()) { e.preventDefault(); closeFs(); } … … 658 676 // not a text field there. One tap → fullscreen, where it becomes editable 659 677 // (toggleFullscreen toggles contenteditable). This prevents inline typing. 660 if (isTouch) { 678 if (isTouch && editor && !editor.__fsTapWired) { 679 editor.__fsTapWired = true; 661 680 editor.setAttribute('contenteditable', 'false'); 662 681 editor.classList.add('pe-tap-to-edit');
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)