From: Amazingca Date: Wed, 13 May 2026 20:43:09 +0000 (-0600) Subject: Fix event listener disaster X-Git-Url: http://git.amazingca.dev/?a=commitdiff_plain;h=7abb7f50add473da4f88398b94803a65c5586f06;p=autumn%2Ftodo Fix event listener disaster --- diff --git a/app/settings.js b/app/settings.js index 81707f4..e487fae 100644 --- a/app/settings.js +++ b/app/settings.js @@ -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; diff --git a/app/todos.js b/app/todos.js index fb49421..047dadb 100644 --- a/app/todos.js +++ b/app/todos.js @@ -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 = () => {