]> git.amazingca.dev Git - autumn/todo/commitdiff
Fix event listener disaster
authorAmazingca <autumn@amazingca.dev>
Wed, 13 May 2026 20:43:09 +0000 (14:43 -0600)
committerAmazingca <autumn@amazingca.dev>
Wed, 13 May 2026 20:43:09 +0000 (14:43 -0600)
app/settings.js
app/todos.js

index 81707f482e09738167093916065a0ddbacab72cb..e487faead7181bb20a2d6cd9ae37ba657f67be72 100644 (file)
@@ -81,6 +81,24 @@ override_css.onkeydown = (event) => {
   }
 }
 
+const resizeTextHeights = () => {
+
+  const resizeHelper = (element) => {
+
+    element.style.height = "0";
+    element.style.height = element.scrollHeight + "px";
+  }
+
+  for (const element of document.querySelectorAll("textarea")) {
+
+    resizeHelper(element);
+    element.addEventListener("focus", () => resizeHelper(element));
+    element.addEventListener("input", () => resizeHelper(element));
+  }
+}
+
+resizeTextHeights();
+
 override_css.addEventListener("input", (event) => {
 
   theme.css = event.target.value;
index fb4942175ab701cac8f099b317dddc3ee0633ca8..047dadbdf3339ad55b812db48f88b15ae718020e 100644 (file)
@@ -38,6 +38,7 @@ if (window.location.hash.length > 0) {
     ({todos, archived, theme} = JSON.parse(decodeURIComponent(atob(window.location.hash.substring(1))))); // using parenthesis around this is required because we're doing object literal destructuring without a declaration
 
     backupData();
+    window.location.replace("./");
   } catch (e) {
 
     console.error(e);
@@ -88,7 +89,7 @@ if (page == "home") document.getElementById("showCompleted").addEventListener("c
 
   theme.showCompleted = !theme.showCompleted;
   doShowCompleted(true);
-  resizeTextHeights();
+  if (theme.showCompleted) resizeTextHeights();
 });
 
 const todoElement = (item, index, isCompleted = false) => {
@@ -114,11 +115,18 @@ const todoElement = (item, index, isCompleted = false) => {
 
 const resizeTextHeights = () => {
 
-  for (const element of document.querySelectorAll("todo textarea")) {
+  const resizeHelper = (element) => {
 
     element.style.height = "0";
     element.style.height = element.scrollHeight + "px";
   }
+
+  for (const element of document.querySelectorAll("todo textarea")) {
+
+    resizeHelper(element);
+    element.addEventListener("focus", () => resizeHelper(element));
+    element.addEventListener("input", () => resizeHelper(element));
+  }
 }
 
 const applyListeners = () => {