@@ -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 " ) {
@@ -122,15 +138,15 @@ private extension ShowServiceAreaView {
122138 return facilitiesGraphicsOverlay
123139 } ( )
124140
125- private let barriersGraphicsOverlay : GraphicsOverlay = {
141+ private let barriersGraphicsOverlay : GraphicsOverlay = {
126142 let barriersGraphicsOverlay = GraphicsOverlay ( )
127143 let barrierSymbol = SimpleFillSymbol ( style: . diagonalCross, color: . red, outline: nil )
128144 // Sets symbol on barrier graphics overlay using renderer.
129145 barriersGraphicsOverlay. renderer = SimpleRenderer ( symbol: barrierSymbol)
130146 return barriersGraphicsOverlay
131147 } ( )
132148
133- private let serviceAreaGraphicsOverlay = GraphicsOverlay ( )
149+ private let serviceAreaGraphicsOverlay = GraphicsOverlay ( )
134150
135151 /// The graphics overlays used by this model.
136152 var graphicsOverlays : [ GraphicsOverlay ] {
0 commit comments