S
SolidJS•14mo ago
nikivi

Need help solve issue with createEffect, complex state

GitHub
GitHub - nikitavoloboev/kuskus: Fast todo app
Fast todo app. Contribute to nikitavoloboev/kuskus development by creating an account on GitHub.
11 Replies
nikivi
nikivi•14mo ago
GitHub
kuskus/All.tsx at main · nikitavoloboev/kuskus
Fast todo app. Contribute to nikitavoloboev/kuskus development by creating an account on GitHub.
nikivi
nikivi•14mo ago
I have a key event listener here that on return chooses if a todo should be edited or not
nikivi
nikivi•14mo ago
nikivi
nikivi•14mo ago
so from this go to this
nikivi
nikivi•14mo ago
nikivi
nikivi•14mo ago
the editable todo is this component
nikivi
nikivi•14mo ago
GitHub
kuskus/TodoEdit.tsx at main · nikitavoloboev/kuskus
Fast todo app. Contribute to nikitavoloboev/kuskus development by creating an account on GitHub.
nikivi
nikivi•14mo ago
GitHub
kuskus/TodoEdit.tsx at main · nikitavoloboev/kuskus
Fast todo app. Contribute to nikitavoloboev/kuskus development by creating an account on GitHub.
nikivi
nikivi•14mo ago
the issue I get is that this effect inside TodoEdit runs instantly its very confusing
nikivi
nikivi•14mo ago
if you wish to help please clone https://github.com/nikitavoloboev/kuskus
GitHub
GitHub - nikitavoloboev/kuskus: Fast todo app
Fast todo app. Contribute to nikitavoloboev/kuskus development by creating an account on GitHub.
nikivi
nikivi•14mo ago
then inside localhost press n key type a todo and press return it should create a new todo I am forced to enter return 2 times
createEffect(() => {
if (event()?.key === "Enter") {
untrack(() => {
if (focusedTodo() !== 0) {
untrack(() => {
if (editingTodo()) {
setEditingTodo(false)
} else {
setEditingTodo(true)
}
setTodoToEdit(focusedTodo())
})
}
})
}
})
createEffect(() => {
if (event()?.key === "Enter") {
untrack(() => {
if (focusedTodo() !== 0) {
untrack(() => {
if (editingTodo()) {
setEditingTodo(false)
} else {
setEditingTodo(true)
}
setTodoToEdit(focusedTodo())
})
}
})
}
})
ok this helped solve it 🎊