package com.suno.android.common_ui.components.loading import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.BoxScope import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.pulltorefresh.PullToRefreshDefaults import androidx.compose.material3.pulltorefresh.pullToRefresh import androidx.compose.material3.pulltorefresh.rememberPullToRefreshState import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import com.suno.android.common_ui.theme.ExtendedTheme @Composable @OptIn(ExperimentalMaterial3Api::class) fun SunoPullToRefreshBox( isRefreshing: Boolean, onRefresh: () -> Unit, modifier: Modifier = Modifier, contentAlignment: Alignment = Alignment.TopStart, enabled: Boolean = true, content: @Composable BoxScope.() -> Unit, ) { val refreshState = rememberPullToRefreshState() Box( modifier.pullToRefresh( state = refreshState, isRefreshing = isRefreshing, onRefresh = onRefresh, enabled = enabled, ), contentAlignment = contentAlignment, ) { content() PullToRefreshDefaults.Indicator( modifier = Modifier.align(Alignment.TopCenter), isRefreshing = isRefreshing, state = refreshState, color = ExtendedTheme.colors.sunoPink, ) } }