in android/source/src/main/kotlin/com/gu/source/components/pager/PagerProgressButtons.kt [45:104]
fun PagerProgressButtons(
pagerState: PagerState,
prevButtonContentDescription: String?,
nextButtonContentDescription: String?,
modifier: Modifier = Modifier,
buttonColours: ButtonColours = DefaultButtonColours,
disabledButtonColours: ButtonColours? = disabledModeButtonColours(buttonColours),
pageSlideAnimationSpec: AnimationSpec<Float> = DefaultPageSlideAnimationSpec,
) {
val coroutineScope = rememberCoroutineScope()
Row(
modifier = modifier,
horizontalArrangement = Arrangement.spacedBy(8.dp),
) {
SourceBaseIconButton(
size = SourceButton.Size.Small,
buttonColours = buttonColours,
disabledButtonColours = disabledButtonColours,
onClick = {
coroutineScope.launch {
animateScrollToNext(
pagerState,
ProgressDirection.Previous,
pageSlideAnimationSpec,
)
}
},
enabled = pagerState.canScrollBackward,
modifier = Modifier.offset(x = ProgressButtonTouchAdjustment * 2),
) {
Icon(
imageVector = Source.Icons.Base.ChevronLeftSingle,
contentDescription = prevButtonContentDescription,
modifier = it,
)
}
SourceBaseIconButton(
size = SourceButton.Size.Small,
buttonColours = buttonColours,
disabledButtonColours = disabledButtonColours,
onClick = {
coroutineScope.launch {
animateScrollToNext(
pagerState,
ProgressDirection.Next,
pageSlideAnimationSpec,
)
}
},
enabled = pagerState.canScrollForward,
) {
Icon(
imageVector = Source.Icons.Base.ChevronRightSingle,
contentDescription = nextButtonContentDescription,
modifier = it,
)
}
}
}