add tab support for textareas

This commit is contained in:
Inhji 2023-06-04 21:05:38 +02:00
parent 488a515a24
commit f2eb16c574

View file

@ -47,20 +47,39 @@ window.liveSocket = liveSocket
const reactRoot = document.querySelector('#react-root') const reactRoot = document.querySelector('#react-root')
if (reactRoot) { if (reactRoot) {
const root = createRoot(reactRoot); const root = createRoot(reactRoot);
root.render(<KBar/>); root.render(<KBar/>);
} }
document document
.querySelector("#dark-mode-toggle") .querySelector("#dark-mode-toggle")
.addEventListener("click", (e) => { .addEventListener("click", (e) => {
e.preventDefault() e.preventDefault()
const data = document.documentElement.dataset const data = document.documentElement.dataset
if (data["mode"] && data["mode"] == "dark") { if (data["mode"] && data["mode"] == "dark") {
delete data["mode"] delete data["mode"]
window.localStorage.removeItem("theme") window.localStorage.removeItem("theme")
} else { } else {
data["mode"] = "dark" data["mode"] = "dark"
window.localStorage.setItem("theme", "dark") window.localStorage.setItem("theme", "dark")
} }
}) })
document
.querySelectorAll('textarea')
.forEach(e => e.addEventListener('keydown', function(e) {
if (e.key == 'Tab') {
e.preventDefault();
var start = this.selectionStart;
var end = this.selectionEnd;
// set textarea value to: text before caret + tab + text after caret
this.value = this.value.substring(0, start) +
"\t" + this.value.substring(end);
// put caret at right position again
this.selectionStart =
this.selectionEnd = start + 1;
}
}))