Why does the EditButton says "Done" (instead of "Edit") after I delete one scrum using "swipe to delete"?
I tried changing editMode to .inactive inside onDelete, but even this didn't work.
Why is this not working, and can I fix it somehow? Is it some new bug?
struct ScrumsView: View {
@Binding var scrums: [DailyScrum]
@Environment(\.scenePhase) private var scenePhase
@State private var isPresentingNewScrumView = false
@State private var newScrumData = DailyScrum.Data()
let saveAction: ()->Void
var body: some View {
List {
ForEach($scrums) { $scrum in
NavigationLink(destination: DetailView(scrum: $scrum)) {
CardView(scrum: scrum)
}
.listRowBackground(scrum.theme.mainColor)
}
.onDelete { indexSet in
scrums.remove(atOffsets: indexSet)
}
}
.navigationTitle("Daily Scrums")
.toolbar {
ToolbarItemGroup(placement: .navigationBarLeading) {
EditButton()
}
ToolbarItemGroup(placement: .navigationBarTrailing) {
Button {
isPresentingNewScrumView = true
} label: {
Image(systemName: "plus")
}
.accessibilityLabel("New scrum")
}
}
.sheet(isPresented: $isPresentingNewScrumView) {
NavigationView {
DetailEditView(data: $newScrumData)
//.navigationTitle(Text("New Scrum"))
.toolbar {
ToolbarItemGroup(placement: .cancellationAction) {
Button("Dismiss") {
isPresentingNewScrumView = false
newScrumData = DailyScrum.Data()
}
}
ToolbarItemGroup(placement: .confirmationAction) {
Button("Add") {
let newScrum = DailyScrum(data: newScrumData)
scrums.append(newScrum)
isPresentingNewScrumView = false
newScrumData = DailyScrum.Data()
}
}
}
}
}
.onChange(of: scenePhase) { phase in
if phase == .inactive { saveAction() }
}
}
}