ktxt2 scroll links to top and bottom

This commit is contained in:
2021-11-02 11:44:49 -04:00
parent 9dc27c99b8
commit 3095de79da

View File

@@ -202,14 +202,22 @@
(document.body.appendChild content) (document.body.appendChild content)
(when text (set ktxt2Elements (KTxt2.splitFileElements (Stream.fromString text)))) (when text (set ktxt2Elements (KTxt2.splitFileElements (Stream.fromString text))))
(when (< 0 elementScrollY) (when (< 0 elementScrollY)
(let [upLink (document.createElement "a")] (let [upLink (document.createElement "a")
(set upLink.innerHTML "^") topLink (document.createElement "a")]
(set upLink.innerHTML "^ ")
(set topLink.innerHTML "^^^")
(upLink.addEventListener "click" (upLink.addEventListener "click"
->{ ->{
(-= elementScrollY SCROLL_AMOUNT) (-= elementScrollY SCROLL_AMOUNT)
(updateContent) (updateContent)
}) })
(content.appendChild upLink))) (topLink.addEventListener "click"
->{
(set elementScrollY 0)
(updateContent)
})
(content.appendChild upLink)
(content.appendChild topLink)))
(doFor [idx element] (.slice (collect (enumerate ktxt2Elements)) elementScrollY (+ elementScrollY PAGE_SIZE)) (doFor [idx element] (.slice (collect (enumerate ktxt2Elements)) elementScrollY (+ elementScrollY PAGE_SIZE))
(case element (case element
((Comment (objectWith text)) ((Comment (objectWith text))
@@ -217,14 +225,22 @@
((Block (objectWith source output outputLocked)) ((Block (objectWith source output outputLocked))
(blockElements source output outputLocked idx)))) (blockElements source output outputLocked idx))))
(when (> (- ktxt2Elements.length 1) (+ elementScrollY SCROLL_AMOUNT)) (when (> (- ktxt2Elements.length 1) (+ elementScrollY SCROLL_AMOUNT))
(let [downLink (document.createElement "a")] (let [downLink (document.createElement "a")
(set downLink.innerHTML "v") bottomLink (document.createElement "a")]
(set downLink.innerHTML "v ")
(set bottomLink.innerHTML "vvv")
(downLink.addEventListener "click" (downLink.addEventListener "click"
->{ ->{
(+= elementScrollY SCROLL_AMOUNT) (+= elementScrollY SCROLL_AMOUNT)
(updateContent) (updateContent)
}) })
(content.appendChild downLink))) (bottomLink.addEventListener "click"
->{
(set elementScrollY (- ktxt2Elements.length PAGE_SIZE))
(updateContent)
})
(content.appendChild downLink)
(content.appendChild bottomLink)))
(set updatingContent false) (set updatingContent false)
} }
(catch [error] (print "Error updating ktxt2 editor: ${error}")))) (catch [error] (print "Error updating ktxt2 editor: ${error}"))))