repeatOnState

suspend fun <T : Enum<T>> StateFlow<T>.repeatOnState(vararg states: T, restartOnStateChange: Boolean = false, action: CoroutineScope.(T) -> Unit)