2022-05-16 23:08:04 -04:00
|
|
|
package eu.kanade.presentation.components
|
|
|
|
|
2022-10-09 23:20:43 +08:00
|
|
|
import androidx.compose.foundation.layout.PaddingValues
|
2022-05-16 23:08:04 -04:00
|
|
|
import androidx.compose.material3.MaterialTheme
|
|
|
|
import androidx.compose.runtime.Composable
|
|
|
|
import androidx.compose.ui.unit.Dp
|
2022-06-04 16:01:49 -04:00
|
|
|
import androidx.compose.ui.unit.dp
|
2022-05-16 23:08:04 -04:00
|
|
|
import com.google.accompanist.swiperefresh.SwipeRefreshState
|
2022-10-09 23:20:43 +08:00
|
|
|
import com.google.accompanist.swiperefresh.rememberSwipeRefreshState
|
2022-05-16 23:08:04 -04:00
|
|
|
import com.google.accompanist.swiperefresh.SwipeRefreshIndicator as AccompanistSwipeRefreshIndicator
|
|
|
|
|
|
|
|
@Composable
|
2022-06-04 16:01:49 -04:00
|
|
|
fun SwipeRefreshIndicator(
|
|
|
|
state: SwipeRefreshState,
|
|
|
|
refreshTriggerDistance: Dp,
|
|
|
|
refreshingOffset: Dp = 16.dp,
|
|
|
|
) {
|
2022-05-16 23:08:04 -04:00
|
|
|
AccompanistSwipeRefreshIndicator(
|
|
|
|
state = state,
|
2022-06-04 16:01:49 -04:00
|
|
|
refreshTriggerDistance = refreshTriggerDistance,
|
2022-05-16 23:08:04 -04:00
|
|
|
backgroundColor = MaterialTheme.colorScheme.primary,
|
|
|
|
contentColor = MaterialTheme.colorScheme.onPrimary,
|
2022-06-04 16:01:49 -04:00
|
|
|
refreshingOffset = refreshingOffset,
|
2022-05-16 23:08:04 -04:00
|
|
|
)
|
|
|
|
}
|
2022-10-09 23:20:43 +08:00
|
|
|
|
|
|
|
@Composable
|
|
|
|
fun SwipeRefresh(
|
|
|
|
refreshing: Boolean,
|
|
|
|
onRefresh: () -> Unit,
|
|
|
|
enabled: Boolean,
|
|
|
|
indicatorPadding: PaddingValues = PaddingValues(0.dp),
|
|
|
|
content: @Composable () -> Unit,
|
|
|
|
) {
|
|
|
|
com.google.accompanist.swiperefresh.SwipeRefresh(
|
|
|
|
state = rememberSwipeRefreshState(refreshing),
|
|
|
|
onRefresh = onRefresh,
|
|
|
|
swipeEnabled = enabled,
|
|
|
|
indicatorPadding = indicatorPadding,
|
|
|
|
indicator = { s, trigger -> SwipeRefreshIndicator(s, trigger) },
|
|
|
|
) {
|
2022-10-09 15:37:48 -04:00
|
|
|
content()
|
2022-10-09 23:20:43 +08:00
|
|
|
}
|
|
|
|
}
|