<head>
<title>todo</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
+ <link rel="icon" type="image/x-icon" href="./favicon.ico" id="favicon">
<link rel="stylesheet" type="text/css" href="./style.css">
<script src="./todos.js" defer></script>
</head>
<head>
<title>todo</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
+ <link rel="icon" type="image/x-icon" href="./favicon.ico" id="favicon">
<link rel="stylesheet" type="text/css" href="./style.css">
<script src="./todos.js" defer></script>
</head>
<head>
<title>todo</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
+ <link rel="icon" type="image/x-icon" href="./favicon.ico" id="favicon">
<link rel="stylesheet" type="text/css" href="./style.css">
<script src="./settings.js" defer></script>
</head>
}
}
+const titleElement = document.getElementsByTagName("title")[0];
+const faviconElement = document.getElementById("favicon");
+
+const updateHeaders = (notify = todos.uncompleted.length > 0) => {
+
+ if (notify) {
+
+ titleElement.innerHTML = `todo (${todos.uncompleted.length})`;
+ faviconElement.href = "./favicon-notify.ico";
+ } else {
+
+ titleElement.innerHTML = "todo";
+ faviconElement.href = "./favicon.ico";
+ }
+}
+
+updateHeaders();
+
const updateTheme = (force = false) => {
if (theme.colorScheme != "default" || true) {
}
].concat(todos.uncompleted);
+ updateHeaders(true);
hydrateUncompleted();
applyListeners();
document.getElementById("todo-uncompleted-0-description").focus();
.join("");
}
+const titleElement = document.getElementsByTagName("title")[0];
+const faviconElement = document.getElementById("favicon");
+
+const updateHeaders = (notify = todos.uncompleted.length > 0) => {
+
+ if (notify) {
+
+ titleElement.innerHTML = `todo (${todos.uncompleted.length})`;
+ faviconElement.href = "./favicon-notify.ico";
+ } else {
+
+ titleElement.innerHTML = "todo";
+ faviconElement.href = "./favicon.ico";
+ }
+}
+
const hydrateTodos = () => {
+ updateHeaders();
+
if (page == "archived") hydrateArchived();
if (page == "home") {