mirror of
https://github.com/ivanvorobei/SwiftUI.git
synced 2026-04-22 16:48:37 +02:00
56 lines
1.6 KiB
Swift
Executable File
56 lines
1.6 KiB
Swift
Executable File
/*
|
||
See LICENSE folder for this sample’s licensing information.
|
||
|
||
Abstract:
|
||
An editable profile view.
|
||
*/
|
||
|
||
import SwiftUI
|
||
|
||
struct ProfileEditor: View {
|
||
@Binding var profile: Profile
|
||
|
||
var body: some View {
|
||
List {
|
||
HStack {
|
||
Text("Username").bold()
|
||
Divider()
|
||
TextField("", text: $profile.username)
|
||
}
|
||
|
||
Toggle(isOn: $profile.prefersNotifications) {
|
||
Text("Enable Notifications")
|
||
}
|
||
|
||
VStack(alignment: .leading, spacing: 20) {
|
||
Text("Seasonal Photo").bold()
|
||
|
||
Picker("", selection: $profile.seasonalPhoto) {
|
||
ForEach(Profile.Season.allCases, id: \.self) { season in
|
||
Text(season.rawValue).tag(season)
|
||
}
|
||
}.pickerStyle(SegmentedPickerStyle())
|
||
}
|
||
.padding(.top)
|
||
|
||
VStack(alignment: .leading, spacing: 20) {
|
||
Text("Goal Date").bold()
|
||
DatePicker(
|
||
"", selection: $profile.goalDate,
|
||
in: Calendar.current.date(byAdding: .year, value: -1, to: profile.goalDate)! ... Calendar.current.date(byAdding: .year, value: 1, to: profile.goalDate)!,
|
||
displayedComponents: .date
|
||
)
|
||
}
|
||
.padding(.top)
|
||
}
|
||
}
|
||
}
|
||
|
||
#if DEBUG
|
||
struct ProfileEditor_Previews: PreviewProvider {
|
||
static var previews: some View {
|
||
ProfileEditor(profile: .constant(.default))
|
||
}
|
||
}
|
||
#endif
|