LibraryTabRow: PrimaryTabRow -> ScrollableTabRow(due to new material3 version PrimaryTabRow's changes). (v1.0.1)

This commit is contained in:
acclorite 2024-05-05 18:11:18 +03:00
parent c9ddc69588
commit 3d6c81bb98

View file

@ -9,10 +9,9 @@ import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.width
import androidx.compose.foundation.pager.PagerState import androidx.compose.foundation.pager.PagerState
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.PrimaryScrollableTabRow import androidx.compose.material3.ScrollableTabRow
import androidx.compose.material3.Tab import androidx.compose.material3.Tab
import androidx.compose.material3.TabRowDefaults import androidx.compose.material3.TabRowDefaults
import androidx.compose.material3.TabRowDefaults.tabIndicatorOffset import androidx.compose.material3.TabRowDefaults.tabIndicatorOffset
@ -33,8 +32,11 @@ import ua.acclorite.book_story.presentation.screens.library.data.LibraryEvent
/** /**
* Tab row, either scrollable or static, depends on screen width. * Tab row, either scrollable or static, depends on screen width.
*
* @param onEvent Event used to Scroll to Page.
* @param books The list of all books.
* @param pagerState [PagerState].
*/ */
@OptIn(ExperimentalMaterial3Api::class)
@Composable @Composable
fun LibraryTabRow( fun LibraryTabRow(
onEvent: (LibraryEvent) -> Unit, onEvent: (LibraryEvent) -> Unit,
@ -70,7 +72,7 @@ fun LibraryTabRow(
.fillMaxWidth(), .fillMaxWidth(),
color = MaterialTheme.colorScheme.surfaceContainerHighest color = MaterialTheme.colorScheme.surfaceContainerHighest
) )
PrimaryScrollableTabRow( ScrollableTabRow(
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.padding(bottom = 0.5.dp), .padding(bottom = 0.5.dp),
@ -86,8 +88,7 @@ fun LibraryTabRow(
) )
TabRowDefaults.PrimaryIndicator( TabRowDefaults.PrimaryIndicator(
Modifier Modifier.tabIndicatorOffset(tabPositions[pagerState.currentPage]),
.tabIndicatorOffset(tabPositions[pagerState.currentPage]),
width = width width = width
) )
} }
@ -95,7 +96,6 @@ fun LibraryTabRow(
) { ) {
tabItems.forEachIndexed { index, tabItem -> tabItems.forEachIndexed { index, tabItem ->
Tab( Tab(
modifier = Modifier,
selected = pagerState.currentPage == index, selected = pagerState.currentPage == index,
onClick = { onClick = {
onEvent(LibraryEvent.OnScrollToPage(index, pagerState)) onEvent(LibraryEvent.OnScrollToPage(index, pagerState))