example/assets/js/app.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
import h3, { mount, region } from "./h3.js"; import AddTodoForm from "./components/addTodoForm.js"; import EmptyTodoError from "./components/emptyTodoError.js"; import NavigationBar from "./components/navigationBar.js"; import TodoList from "./components/todoList.js"; import store from "./store.js"; //store.on("log", (state, data) => console.log(data, state)); // Main rendering function (creates virtual dom) const build = () => { const { todos, filteredTodos, filter } = store.get(); localStorage.setItem("h3_todo_list", JSON.stringify(todos)); store.dispatch("todos/filter", filter); const [error, updateError] = region(EmptyTodoError); store.on("error/update", updateError); return h3("div#todolist.todo-list-container", [ h3("h1", "To Do List"), AddTodoForm(), error, NavigationBar(), TodoList(), ]); }; store.dispatch("todos/load"); const [app, update] = region(build); store.on("app/update", update); mount("app", app); |