@@ -8,6 +8,7 @@ import androidx.compose.runtime.setValue
8
8
import androidx.compose.ui.Modifier
9
9
import androidx.compose.ui.semantics.contentDescription
10
10
import androidx.compose.ui.semantics.semantics
11
+ import androidx.compose.ui.text.input.TextFieldValue
11
12
import org.dhis2.commons.date.DateUtils
12
13
import org.dhis2.commons.extensions.toDate
13
14
import org.dhis2.form.extensions.inputState
@@ -38,20 +39,26 @@ fun ProvideInputDate(
38
39
}
39
40
40
41
var value by remember(fieldUiModel.value) {
41
- mutableStateOf(fieldUiModel.value?.let { formatStoredDateToUI(it, fieldUiModel.valueType) })
42
+ mutableStateOf(
43
+ if (fieldUiModel.value != null ) {
44
+ TextFieldValue (formatStoredDateToUI(fieldUiModel.value!! , fieldUiModel.valueType))
45
+ } else {
46
+ TextFieldValue ()
47
+ },
48
+ )
42
49
}
43
50
44
51
InputDateTime (
45
52
title = fieldUiModel.label,
46
- value = value,
53
+ inputTextFieldValue = value,
47
54
actionIconType = actionType,
48
55
onActionClicked = {
49
56
when (actionType) {
50
57
DateTimeActionIconType .DATE -> uiEventHandler.invoke(
51
58
RecyclerViewUiEvents .OpenCustomCalendar (
52
59
uid = fieldUiModel.uid,
53
60
label = fieldUiModel.label,
54
- date = value? .toDate(),
61
+ date = value.text .toDate(),
55
62
allowFutureDates = fieldUiModel.allowFutureDates ? : true ,
56
63
isDateTime = false ,
57
64
),
@@ -61,7 +68,7 @@ fun ProvideInputDate(
61
68
RecyclerViewUiEvents .OpenTimePicker (
62
69
uid = fieldUiModel.uid,
63
70
label = fieldUiModel.label,
64
- date = formatUIDateToStored(value, fieldUiModel.valueType)?.let {
71
+ date = formatUIDateToStored(value.text , fieldUiModel.valueType)?.let {
65
72
DateUtils .timeFormat().parse(it)
66
73
},
67
74
isDateTime = false ,
@@ -72,7 +79,7 @@ fun ProvideInputDate(
72
79
RecyclerViewUiEvents .OpenCustomCalendar (
73
80
uid = fieldUiModel.uid,
74
81
label = fieldUiModel.label,
75
- date = formatUIDateToStored(value, fieldUiModel.valueType)?.let {
82
+ date = formatUIDateToStored(value.text , fieldUiModel.valueType)?.let {
76
83
DateUtils .databaseDateFormatNoSeconds().parse(it)
77
84
},
78
85
allowFutureDates = fieldUiModel.allowFutureDates ? : true ,
@@ -81,7 +88,7 @@ fun ProvideInputDate(
81
88
)
82
89
}
83
90
},
84
- modifier = modifier.semantics { contentDescription = formatStoredDateToUI(value ? : " " , fieldUiModel.valueType) },
91
+ modifier = modifier.semantics { contentDescription = formatStoredDateToUI(value.text , fieldUiModel.valueType) },
85
92
state = fieldUiModel.inputState(),
86
93
legendData = fieldUiModel.legend(),
87
94
supportingText = fieldUiModel.supportingText(),
@@ -94,7 +101,7 @@ fun ProvideInputDate(
94
101
intentHandler.invoke(
95
102
FormIntent .OnTextChange (
96
103
uid = fieldUiModel.uid,
97
- value = formatUIDateToStored(it, fieldUiModel.valueType),
104
+ value = formatUIDateToStored(it.text , fieldUiModel.valueType),
98
105
valueType = fieldUiModel.valueType,
99
106
allowFutureDates = fieldUiModel.allowFutureDates ? : true ,
100
107
),
0 commit comments