1
1
package com.mohamedrejeb.calf.ui.datepicker
2
2
3
+ import androidx.compose.material3.DatePickerColors
4
+ import androidx.compose.material3.ExperimentalMaterial3Api
3
5
import androidx.compose.runtime.mutableStateOf
6
+ import com.mohamedrejeb.calf.core.InternalCalfApi
7
+ import com.mohamedrejeb.calf.ui.utils.applyTheme
8
+ import com.mohamedrejeb.calf.ui.utils.isDark
9
+ import com.mohamedrejeb.calf.ui.utils.toUIColor
4
10
import kotlinx.cinterop.BetaInteropApi
5
11
import kotlinx.cinterop.ExperimentalForeignApi
6
12
import kotlinx.cinterop.ObjCAction
@@ -9,8 +15,14 @@ import platform.Foundation.*
9
15
import platform.UIKit.*
10
16
import platform.objc.sel_registerName
11
17
12
- @OptIn(ExperimentalForeignApi ::class )
13
- class DatePickerManager internal constructor(
18
+ @OptIn(
19
+ ExperimentalForeignApi ::class ,
20
+ ExperimentalMaterial3Api ::class
21
+ )
22
+ @InternalCalfApi
23
+ class DatePickerManager @OptIn(ExperimentalMaterial3Api ::class ) internal constructor(
24
+ initialSelectedDateMillis : Long? ,
25
+ colors : DatePickerColors ,
14
26
private val datePicker : UIDatePicker ,
15
27
displayMode : UIKitDisplayMode ,
16
28
private val onSelectionChanged : (dateMillis: Long? ) -> Unit ,
@@ -28,15 +40,18 @@ class DatePickerManager internal constructor(
28
40
@ObjCAction
29
41
fun dateSelection () {
30
42
onSelectionChanged(
31
- stripTimeFromDate( datePicker.date) .timeIntervalSince1970.toLong() * 1000
43
+ datePicker.date.timeIntervalSince1970.toLong() * 1000
32
44
)
33
45
}
34
46
35
47
val datePickerWidth = mutableStateOf(0f )
36
48
val datePickerHeight = mutableStateOf(0f )
37
49
38
50
init {
39
- datePicker.date = NSDate ()
51
+ val date = initialSelectedDateMillis
52
+ ?.let { NSDate .dateWithTimeIntervalSince1970(it / 1000.0 ) }
53
+ ? : NSDate ()
54
+ datePicker.setDate(date, animated = false )
40
55
datePicker.locale = NSLocale .currentLocale
41
56
datePicker.datePickerMode = UIDatePickerMode .UIDatePickerModeDate
42
57
datePicker.preferredDatePickerStyle = when (displayMode) {
0 commit comments