package com.suno.android.common_ui.effects import androidx.compose.foundation.lazy.LazyListState import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue import androidx.compose.runtime.remember @Composable fun OnEndOfListReachedEffect( listState: LazyListState, onEndOfListReached: () -> Unit, ) { val endOfListReached: Boolean by remember(listState) { derivedStateOf { listState.layoutInfo.run { visibleItemsInfo.lastOrNull()?.index == totalItemsCount - 1 } } } LaunchedEffect(endOfListReached) { if (endOfListReached) { onEndOfListReached() } } }