repeatOn

suspend fun <T> StateFlow<T>.repeatOn(predicate: (T) -> Boolean, restartOnStateChange: Boolean = false, action: CoroutineScope.(T) -> Unit)