@@ -28,6 +28,8 @@ struct ShowServiceAreaView: View {
2828 @State private var firstTimeBreak : Int = 3
2929 /// Second time break property set in second stepper.
3030 @State private var secondTimeBreak : Int = 8
31+ /// A Boolean value indicating whether the time breaks settings are presented.
32+ @State private var settingsArePresented = false
3133
3234 /// The data model for the sample.
3335 @StateObject private var model = Model ( )
@@ -51,11 +53,25 @@ struct ShowServiceAreaView: View {
5153 }
5254 . pickerStyle ( . segmented)
5355 Spacer ( )
54- Menu {
55- Stepper ( " Second: \( secondTimeBreak) " , value: $secondTimeBreak, in: 1 ... 15 )
56- Stepper ( " First: \( firstTimeBreak) " , value: $firstTimeBreak, in: 1 ... 15 )
57- } label: {
58- Label ( " Time Breaks " , systemImage: " gear " )
56+ Button ( " Time Breaks " , systemImage: " gear " ) {
57+ settingsArePresented = true
58+ }
59+ . popover ( isPresented: $settingsArePresented) {
60+ NavigationStack {
61+ Form {
62+ Stepper ( " First: \( firstTimeBreak) " , value: $firstTimeBreak, in: 1 ... 15 )
63+ Stepper ( " Second: \( secondTimeBreak) " , value: $secondTimeBreak, in: 1 ... 15 )
64+ }
65+ . navigationTitle ( " Time Breaks " )
66+ . navigationBarTitleDisplayMode ( . inline)
67+ . toolbar {
68+ ToolbarItem ( placement: . confirmationAction) {
69+ Button ( " Done " ) { settingsArePresented = false }
70+ }
71+ }
72+ }
73+ . presentationDetents ( [ . fraction( 0.25 ) ] )
74+ . frame ( idealWidth: 320 , idealHeight: 160 )
5975 }
6076 Spacer ( )
6177 Button ( " Service Area " ) {
0 commit comments