Skip to content

Commit 4893038

Browse files
authored
Merge pull request #469 from Esri/Caleb/Fix-ShowServiceAreaSteppers
[Fix] `Show service area` time breaks steppers
2 parents 932e928 + 4cdcd96 commit 4893038

File tree

1 file changed

+23
-7
lines changed

1 file changed

+23
-7
lines changed

Shared/Samples/Show service area/ShowServiceAreaView.swift

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)