diff --git a/assets/js/app.js b/assets/js/app.js
index b876f92..e245ae5 100644
--- a/assets/js/app.js
+++ b/assets/js/app.js
@@ -47,20 +47,39 @@ window.liveSocket = liveSocket
const reactRoot = document.querySelector('#react-root')
if (reactRoot) {
- const root = createRoot(reactRoot);
- root.render();
+ const root = createRoot(reactRoot);
+ root.render();
}
document
- .querySelector("#dark-mode-toggle")
- .addEventListener("click", (e) => {
- e.preventDefault()
- const data = document.documentElement.dataset
- if (data["mode"] && data["mode"] == "dark") {
- delete data["mode"]
- window.localStorage.removeItem("theme")
- } else {
- data["mode"] = "dark"
- window.localStorage.setItem("theme", "dark")
- }
- })
+ .querySelector("#dark-mode-toggle")
+ .addEventListener("click", (e) => {
+ e.preventDefault()
+ const data = document.documentElement.dataset
+ if (data["mode"] && data["mode"] == "dark") {
+ delete data["mode"]
+ window.localStorage.removeItem("theme")
+ } else {
+ data["mode"] = "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;
+ }
+ }))
+