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 { Button {
self.selectedStepItem = stepItem self.selectedStepItem = stepItem
} label: { } label: {
LabeledContent(stepItem.name ?? "", value: stepItem.duration.hourMinuteSecond) LabeledContent(stepItem.name ?? "",
value: stepItem.duration.hourMinuteSecond)
} }
}.onDelete { indexSet in }.onDelete { indexSet in
self.model.deleteStep(indexSet: indexSet) self.model.deleteStep(indexSet: indexSet)
@ -98,10 +99,7 @@ struct CountdownFormView : View {
SoundFormView(model: self.model) SoundFormView(model: self.model)
} }
.sheet(item: self.$selectedStepItem, onDismiss: { .sheet(item: self.$selectedStepItem) { item in
// TODO: improve lag
self.model.objectWillChange.send()
}) { item in
StepFormView(stepItem: item) 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 { struct CountdownFormView_Previews: PreviewProvider {
static var previews: some View { static var previews: some View {

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

Loading…
Cancel
Save