mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 22:07:57 +01:00 
			
		
		
		
	Tabs: Don't explicitly set text color in the text (#8365)
The container already provides color option for both states
This commit is contained in:
		| @@ -7,6 +7,7 @@ import androidx.compose.foundation.layout.calculateEndPadding | ||||
| import androidx.compose.foundation.layout.calculateStartPadding | ||||
| import androidx.compose.foundation.layout.fillMaxSize | ||||
| import androidx.compose.foundation.layout.padding | ||||
| import androidx.compose.material3.MaterialTheme | ||||
| import androidx.compose.material3.Tab | ||||
| import androidx.compose.material3.TabRow | ||||
| import androidx.compose.runtime.Composable | ||||
| @@ -80,9 +81,8 @@ fun TabbedScreen( | ||||
|                     Tab( | ||||
|                         selected = state.currentPage == index, | ||||
|                         onClick = { scope.launch { state.animateScrollToPage(index) } }, | ||||
|                         text = { | ||||
|                             TabText(stringResource(tab.titleRes), tab.badgeNumber, state.currentPage == index) | ||||
|                         }, | ||||
|                         text = { TabText(text = stringResource(tab.titleRes), badgeCount = tab.badgeNumber) }, | ||||
|                         unselectedContentColor = MaterialTheme.colorScheme.onSurface, | ||||
|                     ) | ||||
|                 } | ||||
|             } | ||||
|   | ||||
| @@ -30,17 +30,13 @@ fun TabIndicator(currentTabPosition: TabPosition) { | ||||
| fun TabText( | ||||
|     text: String, | ||||
|     badgeCount: Int? = null, | ||||
|     isCurrentPage: Boolean, | ||||
| ) { | ||||
|     val pillAlpha = if (isSystemInDarkTheme()) 0.12f else 0.08f | ||||
|  | ||||
|     Row( | ||||
|         verticalAlignment = Alignment.CenterVertically, | ||||
|     ) { | ||||
|         Text( | ||||
|             text = text, | ||||
|             color = if (isCurrentPage) MaterialTheme.colorScheme.primary else MaterialTheme.colorScheme.onBackground, | ||||
|         ) | ||||
|         Text(text = text) | ||||
|         if (badgeCount != null) { | ||||
|             Pill( | ||||
|                 text = "$badgeCount", | ||||
|   | ||||
| @@ -68,12 +68,13 @@ fun LibraryContent( | ||||
|  | ||||
|         if (isLibraryEmpty.not() && showPageTabs && categories.size > 1) { | ||||
|             LibraryTabs( | ||||
|                 state = pagerState, | ||||
|                 categories = categories, | ||||
|                 currentPageIndex = pagerState.currentPage, | ||||
|                 showMangaCount = showMangaCount, | ||||
|                 getNumberOfMangaForCategory = getNumberOfMangaForCategory, | ||||
|                 isDownloadOnly = isDownloadOnly, | ||||
|                 isIncognitoMode = isIncognitoMode, | ||||
|                 onTabItemClick = { scope.launch { pagerState.animateScrollToPage(it) } }, | ||||
|             ) | ||||
|         } | ||||
|  | ||||
|   | ||||
| @@ -1,56 +1,54 @@ | ||||
| package eu.kanade.presentation.library.components | ||||
|  | ||||
| import androidx.compose.foundation.layout.Column | ||||
| import androidx.compose.material3.MaterialTheme | ||||
| import androidx.compose.material3.ScrollableTabRow | ||||
| import androidx.compose.material3.Tab | ||||
| import androidx.compose.runtime.Composable | ||||
| import androidx.compose.runtime.State | ||||
| import androidx.compose.runtime.getValue | ||||
| import androidx.compose.runtime.mutableStateOf | ||||
| import androidx.compose.runtime.remember | ||||
| import androidx.compose.runtime.rememberCoroutineScope | ||||
| import androidx.compose.ui.unit.dp | ||||
| import eu.kanade.domain.category.model.Category | ||||
| import eu.kanade.presentation.category.visualName | ||||
| import eu.kanade.presentation.components.AppStateBanners | ||||
| import eu.kanade.presentation.components.Divider | ||||
| import eu.kanade.presentation.components.PagerState | ||||
| import eu.kanade.presentation.components.TabIndicator | ||||
| import eu.kanade.presentation.components.TabText | ||||
| import kotlinx.coroutines.launch | ||||
|  | ||||
| @Composable | ||||
| fun LibraryTabs( | ||||
|     state: PagerState, | ||||
|     categories: List<Category>, | ||||
|     currentPageIndex: Int, | ||||
|     showMangaCount: Boolean, | ||||
|     isDownloadOnly: Boolean, | ||||
|     isIncognitoMode: Boolean, | ||||
|     getNumberOfMangaForCategory: @Composable (Long) -> State<Int?>, | ||||
|     onTabItemClick: (Int) -> Unit, | ||||
| ) { | ||||
|     val scope = rememberCoroutineScope() | ||||
|  | ||||
|     Column { | ||||
|         ScrollableTabRow( | ||||
|             selectedTabIndex = state.currentPage, | ||||
|             selectedTabIndex = currentPageIndex, | ||||
|             edgePadding = 0.dp, | ||||
|             indicator = { TabIndicator(it[state.currentPage]) }, | ||||
|             indicator = { TabIndicator(it[currentPageIndex]) }, | ||||
|             // TODO: use default when width is fixed upstream | ||||
|             // https://issuetracker.google.com/issues/242879624 | ||||
|             divider = {}, | ||||
|         ) { | ||||
|             categories.forEachIndexed { index, category -> | ||||
|                 val count by if (showMangaCount) { | ||||
|                     getNumberOfMangaForCategory(category.id) | ||||
|                 } else { | ||||
|                     remember { mutableStateOf<Int?>(null) } | ||||
|                 } | ||||
|                 Tab( | ||||
|                     selected = state.currentPage == index, | ||||
|                     onClick = { scope.launch { state.animateScrollToPage(index) } }, | ||||
|                     selected = currentPageIndex == index, | ||||
|                     onClick = { onTabItemClick(index) }, | ||||
|                     text = { | ||||
|                         TabText(category.visualName, count, state.currentPage == index) | ||||
|                         TabText( | ||||
|                             text = category.visualName, | ||||
|                             badgeCount = if (showMangaCount) { | ||||
|                                 getNumberOfMangaForCategory(category.id) | ||||
|                             } else { | ||||
|                                 null | ||||
|                             }?.value, | ||||
|                         ) | ||||
|                     }, | ||||
|                     unselectedContentColor = MaterialTheme.colorScheme.onSurface, | ||||
|                 ) | ||||
|             } | ||||
|         } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user