Fixed tabs scrollbar handling clicks when it isn't visible

This commit is contained in:
Abdelilah El Aissaoui 2022-11-01 01:18:12 +01:00
parent 76cfcb69d8
commit 113ff9339f

View File

@ -58,6 +58,26 @@ fun RepositoriesTabPanel(
} }
} }
val canBeScrolled by remember {
derivedStateOf {
val layoutInfo = stateHorizontal.layoutInfo
val visibleItemsInfo = layoutInfo.visibleItemsInfo
if (layoutInfo.totalItemsCount == 0) {
false
} else {
val firstVisibleItem = visibleItemsInfo.first()
val lastVisibleItem = visibleItemsInfo.last()
val viewportHeight = layoutInfo.viewportEndOffset + layoutInfo.viewportStartOffset
!(firstVisibleItem.index == 0 &&
firstVisibleItem.offset == 0 &&
lastVisibleItem.index + 1 == layoutInfo.totalItemsCount &&
lastVisibleItem.offset + lastVisibleItem.size <= viewportHeight)
}
}
}
Row { Row {
Box( Box(
@ -99,6 +119,7 @@ fun RepositoriesTabPanel(
} }
} }
if (canBeScrolled) {
Tooltip( Tooltip(
"\"Shift + Mouse wheel\" to scroll" "\"Shift + Mouse wheel\" to scroll"
) { ) {
@ -110,6 +131,7 @@ fun RepositoriesTabPanel(
) )
} }
} }
}
IconButton( IconButton(
onClick = { onClick = {