From 7f7fba8b88902280509efe07dfbb454a4cc13a11 Mon Sep 17 00:00:00 2001 From: Laurent Date: Mon, 4 Dec 2023 15:33:32 +0100 Subject: [PATCH] Improve lag after editing a step item --- .../Views/Countdown/CountdownFormView.swift | 24 +++++++++++++++---- .../Views/Countdown/StepFormView.swift | 4 ++++ 2 files changed, 23 insertions(+), 5 deletions(-) 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() }