diff --git a/LeCountdown/Views/Countdown/CountdownFormView.swift b/LeCountdown/Views/Countdown/CountdownFormView.swift index c3e9b17..d2bd99d 100644 --- a/LeCountdown/Views/Countdown/CountdownFormView.swift +++ b/LeCountdown/Views/Countdown/CountdownFormView.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 { diff --git a/LeCountdown/Views/Countdown/StepFormView.swift b/LeCountdown/Views/Countdown/StepFormView.swift index 6a70f9f..0658c25 100644 --- a/LeCountdown/Views/Countdown/StepFormView.swift +++ b/LeCountdown/Views/Countdown/StepFormView.swift @@ -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() }