add tab support for textareas
This commit is contained in:
parent
488a515a24
commit
f2eb16c574
1 changed files with 33 additions and 14 deletions
|
@ -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;
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue