@@ -48,24 +48,30 @@ struct DatePicker<Root: RootRegistry>: View {
48
48
///- `hourAndMinute`
49
49
///- `date`
50
50
@_documentation ( visibility: public)
51
- private var components : DatePickerComponents = [ . hourAndMinute, . date]
51
+ private var components : String ?
52
+
53
+ #if os(iOS) || os(macOS)
54
+ private var datePickerComponents : DatePickerComponents {
55
+ components. flatMap ( { DatePickerComponents . init ( from: $0) } ) ?? [ . hourAndMinute, . date]
56
+ }
57
+ #endif
52
58
53
59
var body : some View {
54
60
#if os(iOS) || os(macOS)
55
61
if let start, let end {
56
- SwiftUI . DatePicker ( selection: $selection. date, in: start... end, displayedComponents: components ) {
62
+ SwiftUI . DatePicker ( selection: $selection. date, in: start... end, displayedComponents: datePickerComponents ) {
57
63
$liveElement. children ( )
58
64
}
59
65
} else if let start {
60
- SwiftUI . DatePicker ( selection: $selection. date, in: start... , displayedComponents: components ) {
66
+ SwiftUI . DatePicker ( selection: $selection. date, in: start... , displayedComponents: datePickerComponents ) {
61
67
$liveElement. children ( )
62
68
}
63
69
} else if let end {
64
- SwiftUI . DatePicker ( selection: $selection. date, in: ... end, displayedComponents: components ) {
70
+ SwiftUI . DatePicker ( selection: $selection. date, in: ... end, displayedComponents: datePickerComponents ) {
65
71
$liveElement. children ( )
66
72
}
67
73
} else {
68
- SwiftUI . DatePicker ( selection: $selection. date, displayedComponents: components ) {
74
+ SwiftUI . DatePicker ( selection: $selection. date, displayedComponents: datePickerComponents ) {
69
75
$liveElement. children ( )
70
76
}
71
77
}
@@ -103,10 +109,10 @@ private struct CodableDate: FormValue, AttributeDecodable {
103
109
#if !os(iOS) && !os(macOS)
104
110
typealias DatePickerComponents = Never
105
111
#else
106
- extension DatePickerComponents : AttributeDecodable {
107
- public init ( from attribute : LiveViewNativeCore . Attribute ? , on element : ElementNode ) throws {
112
+ extension DatePickerComponents {
113
+ public init ( from string : String ) {
108
114
#if os(iOS) || os(macOS)
109
- switch attribute ? . value {
115
+ switch string {
110
116
case " hourAndMinute " :
111
117
self = . hourAndMinute
112
118
case " date " :
0 commit comments