Hildebrandt Tobias
09/11/2024, 9:32 AMfilters is just a `List<String>`:
val (filters, setFilters) = useState<List<String>>(listOf())
useEffect(filters) {
    println("Now in useEffect")
    val timeoutId = setTimeout({
        println("Now in timeout function")
    }, 2000)
    clearTimeout(timeoutId)
}
"Now in useEffect" is printed, but "Now in timeout function" never shows even when I call setFilters and wait.turansky
09/11/2024, 10:56 AMuseEffect(filters) {
    println("Now in useEffect")
    delay(2000)
    println("Code after timeout function")
}
delay is from coroutinesHildebrandt Tobias
09/11/2024, 11:00 AMfilters is changed again while the delay(2000) is still waiting,
is the "old" useEffect then canceled?turansky
09/11/2024, 11:02 AMuseEffectWithCleanup(filters) {
    println("Now in useEffect")
    
    val timeoutId = setTimeout({
        println("Now in timeout function")
    }, 2000)
    onCleanup {
        clearTimeout(timeoutId)
    }
}Hildebrandt Tobias
09/11/2024, 11:07 AMturansky
09/11/2024, 11:09 AMsuspend analogs with auto cleanup 😉
Like in your caseturansky
09/11/2024, 11:10 AMHildebrandt Tobias
09/11/2024, 11:18 AMHildebrandt Tobias
09/11/2024, 11:31 AMturansky
09/11/2024, 11:36 AM