commonMain.dev.darkokoa.datetimewheelpicker.WheelTimePicker.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of datetime-wheel-picker Show documentation
Show all versions of datetime-wheel-picker Show documentation
Wheel Date & Time Picker in Compose Multiplatform
package dev.darkokoa.datetimewheelpicker
import androidx.compose.material3.LocalContentColor
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.text.TextStyle
import androidx.compose.ui.unit.DpSize
import androidx.compose.ui.unit.dp
import dev.darkokoa.datetimewheelpicker.core.DefaultWheelTimePicker
import dev.darkokoa.datetimewheelpicker.core.MAX
import dev.darkokoa.datetimewheelpicker.core.MIN
import dev.darkokoa.datetimewheelpicker.core.SelectorProperties
import dev.darkokoa.datetimewheelpicker.core.TimeFormat
import dev.darkokoa.datetimewheelpicker.core.WheelPickerDefaults
import dev.darkokoa.datetimewheelpicker.core.now
import kotlinx.datetime.LocalTime
@Composable
fun WheelTimePicker(
modifier: Modifier = Modifier,
startTime: LocalTime = LocalTime.now(),
minTime: LocalTime = LocalTime.MIN,
maxTime: LocalTime = LocalTime.MAX,
timeFormat: TimeFormat = TimeFormat.HOUR_24,
size: DpSize = DpSize(128.dp, 128.dp),
rowCount: Int = 3,
textStyle: TextStyle = MaterialTheme.typography.titleMedium,
textColor: Color = LocalContentColor.current,
selectorProperties: SelectorProperties = WheelPickerDefaults.selectorProperties(),
onSnappedTime: (snappedTime: LocalTime) -> Unit = {},
) {
DefaultWheelTimePicker(
modifier,
startTime,
minTime,
maxTime,
timeFormat,
size,
rowCount,
textStyle,
textColor,
selectorProperties,
onSnappedTime = { snappedTime, _ ->
onSnappedTime(snappedTime.snappedLocalTime)
snappedTime.snappedIndex
}
)
}