Improve lag after editing a step item

splits
Laurent 2 years ago
parent a5deb81cbc
commit 7f7fba8b88
  1. 24
      LeCountdown/Views/Countdown/CountdownFormView.swift
  2. 4
      LeCountdown/Views/Countdown/StepFormView.swift

@ -50,7 +50,8 @@ struct CountdownFormView : View {
Button {
self.selectedStepItem = stepItem
} label: {
LabeledContent(stepItem.name ?? "", value: stepItem.duration.hourMinuteSecond)
LabeledContent(stepItem.name ?? "",
value: stepItem.duration.hourMinuteSecond)
}
}.onDelete { indexSet in
self.model.deleteStep(indexSet: indexSet)
@ -98,10 +99,7 @@ struct CountdownFormView : View {
SoundFormView(model: self.model)
}
.sheet(item: self.$selectedStepItem, onDismiss: {
// TODO: improve lag
self.model.objectWillChange.send()
}) { item in
.sheet(item: self.$selectedStepItem) { item in
StepFormView(stepItem: item)
}
@ -117,6 +115,22 @@ struct CountdownFormView : View {
}
struct StepItemView: View {
var stepItem: StepItem
@Binding var selectedStepItem: StepItem?
var body: some View {
Button {
self.selectedStepItem = stepItem
} label: {
LabeledContent(self.stepItem.name ?? "",
value: self.stepItem.duration.hourMinuteSecond)
}
}
}
struct CountdownFormView_Previews: PreviewProvider {
static var previews: some View {

@ -19,6 +19,8 @@ struct StepFormView: View {
var soundModel: SoundModel = SoundModel()
@EnvironmentObject var model: TimerModel
var body: some View {
NavigationStack {
@ -72,6 +74,8 @@ struct StepFormView: View {
self.stepItem.duration = self.duration
self.stepItem.playableIds = self.soundModel.playableIds
self.model.objectWillChange.send()
self.dismiss()
}

Loading…
Cancel
Save