8bde35298f
Co-authored-by: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com> Co-authored-by: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>
63 lines
2.4 KiB
Kotlin
63 lines
2.4 KiB
Kotlin
package eu.kanade.presentation.components
|
|
|
|
import androidx.compose.foundation.gestures.FlingBehavior
|
|
import androidx.compose.foundation.layout.Arrangement
|
|
import androidx.compose.foundation.layout.PaddingValues
|
|
import androidx.compose.foundation.lazy.grid.GridCells
|
|
import androidx.compose.foundation.lazy.grid.LazyGridScope
|
|
import androidx.compose.foundation.lazy.grid.LazyGridState
|
|
import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
|
|
import androidx.compose.foundation.lazy.grid.rememberLazyGridState
|
|
import androidx.compose.material3.MaterialTheme
|
|
import androidx.compose.runtime.Composable
|
|
import androidx.compose.ui.Modifier
|
|
import androidx.compose.ui.graphics.Color
|
|
import androidx.compose.ui.unit.Dp
|
|
import androidx.compose.ui.unit.dp
|
|
import eu.kanade.presentation.util.flingBehaviorIgnoringMotionScale
|
|
|
|
@Composable
|
|
fun FastScrollLazyVerticalGrid(
|
|
columns: GridCells,
|
|
modifier: Modifier = Modifier,
|
|
state: LazyGridState = rememberLazyGridState(),
|
|
thumbAllowed: () -> Boolean = { true },
|
|
thumbColor: Color = MaterialTheme.colorScheme.primary,
|
|
contentPadding: PaddingValues = PaddingValues(0.dp),
|
|
topContentPadding: Dp = Dp.Hairline,
|
|
bottomContentPadding: Dp = Dp.Hairline,
|
|
endContentPadding: Dp = Dp.Hairline,
|
|
reverseLayout: Boolean = false,
|
|
verticalArrangement: Arrangement.Vertical =
|
|
if (!reverseLayout) Arrangement.Top else Arrangement.Bottom,
|
|
horizontalArrangement: Arrangement.Horizontal = Arrangement.Start,
|
|
flingBehavior: FlingBehavior = flingBehaviorIgnoringMotionScale(),
|
|
userScrollEnabled: Boolean = true,
|
|
content: LazyGridScope.() -> Unit,
|
|
) {
|
|
VerticalGridFastScroller(
|
|
state = state,
|
|
columns = columns,
|
|
arrangement = horizontalArrangement,
|
|
contentPadding = contentPadding,
|
|
modifier = modifier,
|
|
thumbAllowed = thumbAllowed,
|
|
thumbColor = thumbColor,
|
|
topContentPadding = topContentPadding,
|
|
bottomContentPadding = bottomContentPadding,
|
|
endContentPadding = endContentPadding,
|
|
) {
|
|
LazyVerticalGrid(
|
|
columns = columns,
|
|
state = state,
|
|
contentPadding = contentPadding,
|
|
reverseLayout = reverseLayout,
|
|
verticalArrangement = verticalArrangement,
|
|
horizontalArrangement = horizontalArrangement,
|
|
flingBehavior = flingBehavior,
|
|
userScrollEnabled = userScrollEnabled,
|
|
content = content,
|
|
)
|
|
}
|
|
}
|