Skip to content

Commit

Permalink
Revert "Edit Temp Targets"
Browse files Browse the repository at this point in the history
This reverts commit f9663ee.
  • Loading branch information
mountrcg committed Jun 27, 2024
1 parent f9663ee commit d7c9902
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 160 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -93,32 +93,6 @@ extension AddTempTarget {
}
}

private func convertAndRound(_ value: Decimal) -> Decimal {
if units == .mmolL {
return Decimal(round(Double(value.asMgdL)))
} else {
return Decimal(round(Double(value)))
}
}

func updatePreset(_ preset: TempTarget, low: Decimal) {
let roundedLow = convertAndRound(low)

if let index = presets.firstIndex(where: { $0.id == preset.id }) {
presets[index] = TempTarget(
id: preset.id,
name: newPresetName.isEmpty ? preset.name : newPresetName,
createdAt: preset.createdAt,
targetTop: roundedLow,
targetBottom: roundedLow,
duration: duration,
enteredBy: preset.enteredBy,
reason: newPresetName.isEmpty ? preset.reason : newPresetName
)
storage.storePresets(presets)
}
}

func save() {
guard duration > 0 else {
return
Expand All @@ -127,8 +101,6 @@ extension AddTempTarget {
if units == .mmolL {
lowTarget = Decimal(round(Double(lowTarget.asMgdL)))
}

let roundedLow = convertAndRound(lowTarget)
let highTarget = lowTarget

if viewPercantage {
Expand All @@ -139,9 +111,8 @@ extension AddTempTarget {
let entry = TempTarget(
name: newPresetName.isEmpty ? TempTarget.custom : newPresetName,
createdAt: Date(),
targetTop: roundedLow,
targetBottom: roundedLow,

targetTop: highTarget,
targetBottom: lowTarget,
duration: duration,
enteredBy: TempTarget.manual,
reason: newPresetName.isEmpty ? TempTarget.custom : newPresetName
Expand Down Expand Up @@ -217,23 +188,5 @@ extension AddTempTarget {
}
return round(Double(hbtcalc))
}

func updatePreset(_ preset: TempTarget) {
let updatedPreset = TempTarget(
id: preset.id,
name: newPresetName.isEmpty ? preset.name : newPresetName,
createdAt: preset.createdAt,
targetTop: preset.targetTop,
targetBottom: low,
duration: duration,
enteredBy: preset.enteredBy,
reason: newPresetName.isEmpty ? preset.reason : newPresetName
)

if let index = presets.firstIndex(where: { $0.id == preset.id }) {
presets[index] = updatedPreset
storage.storePresets(presets)
}
}
}
}
135 changes: 24 additions & 111 deletions FreeAPS/Sources/Modules/AddTempTarget/View/AddTempTargetRootView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ extension AddTempTarget {
@State private var isRemoveAlertPresented = false
@State private var removeAlert: Alert?
@State private var isEditing = false
@State private var selectedPreset: TempTarget?
@State private var isEditSheetPresented = false

@FetchRequest(
entity: TempTargetsSlider.entity(),
Expand All @@ -25,21 +23,6 @@ extension AddTempTarget {
return formatter
}

private var displayString: String {
guard let preset = selectedPreset else { return "" }
var low = preset.targetBottom
var high = preset.targetBottom // change to only use targetBottom instead of targetTop
if state.units == .mmolL {
low = low?.asMmolL
high = high?.asMmolL
}

let formattedLow = low.flatMap { formatter.string(from: $0 as NSNumber) } ?? ""
let formattedDuration = formatter.string(from: preset.duration as NSNumber) ?? ""

return "\(formattedLow) \(state.units.rawValue) for \(formattedDuration) min"
}

var body: some View {
Form {
if state.storage?.current() != nil {
Expand All @@ -57,37 +40,6 @@ extension AddTempTarget {
Section(header: Text("Presets")) {
ForEach(state.presets) { preset in
presetView(for: preset)
.swipeActions {
Button(role: .none, action: {
removeAlert = Alert(
title: Text("Are you sure?"),
message: Text("Delete preset \n\(preset.displayName)?"),
primaryButton: .destructive(Text("Delete"), action: {
state.removePreset(id: preset.id)
isRemoveAlertPresented = false
}),
secondaryButton: .cancel()
)
isRemoveAlertPresented = true
}) {
Label("Delete", systemImage: "trash")
}.tint(.red)
Button {
selectedPreset = preset
state.newPresetName = preset.displayName
state.low = state.units == .mmolL ? preset.targetBottom?.asMmolL ?? 0 : preset
.targetBottom ?? 0
state.duration = preset.duration
state.date = preset.date as? Date ?? Date()
isEditSheetPresented = true
} label: {
Label("Edit", systemImage: "square.and.pencil")
}
.tint(.blue)
}
.alert(isPresented: $isRemoveAlertPresented) {
removeAlert!
}
}
}
}
Expand Down Expand Up @@ -185,15 +137,13 @@ extension AddTempTarget {

Section {
Button { state.enact() }
label: { Text("Enact") }
label: { Text("Start") }
}
}
.popover(isPresented: $isPromtPresented) {
Form {
Section(header: Text("Enter preset name")) {
TextField("Name", text: $state.newPresetName)
}
Section {
Button {
state.save()
isPromtPresented = false
Expand All @@ -204,10 +154,6 @@ extension AddTempTarget {
}
}
}
.sheet(isPresented: $isEditSheetPresented) {
editPresetPopover()
.padding()
}
.onAppear {
configureView()
state.hbt = isEnabledArray.first?.hbt ?? 160
Expand All @@ -217,47 +163,9 @@ extension AddTempTarget {
.navigationBarItems(leading: Button("Close", action: state.hideModal))
}

@ViewBuilder private func editPresetPopover() -> some View {
Form {
Section(header: Text("Edit Preset")) {
TextField("Name", text: $state.newPresetName)
Text("Before change: \(displayString)")
.foregroundColor(.secondary)
.font(.caption)
HStack {
Text("New Target")
Spacer()
DecimalTextField("0", value: $state.low, formatter: formatter, cleanInput: true)
Text(state.units.rawValue).foregroundColor(.secondary)
}
HStack {
Text("New Duration")
Spacer()
DecimalTextField("0", value: $state.duration, formatter: formatter, cleanInput: true)
Text("min").foregroundColor(.secondary)
}
}
Section {
Button("Save") {
guard let selectedPreset = selectedPreset else { return }
state.updatePreset(
selectedPreset,
low: state.low
)
isEditSheetPresented = false
}
.disabled(state.newPresetName.isEmpty)

Button("Cancel") {
isEditSheetPresented = false
}
}
}
}

private func presetView(for preset: TempTarget) -> some View {
var low = preset.targetBottom
var high = preset.targetBottom // change to only use targetBottom instead of targetTop
var high = preset.targetTop
if state.units == .mmolL {
low = low?.asMmolL
high = high?.asMmolL
Expand All @@ -267,24 +175,13 @@ extension AddTempTarget {
HStack {
Text(preset.displayName)
Spacer()
Button {
selectedPreset = preset
state.newPresetName = preset.displayName
state.low = state.units == .mmolL ? preset.targetBottom?
.asMmolL ?? 0 : preset.targetBottom ?? 0
state.duration = preset.duration
state.date = preset.date as? Date ?? Date()
isEditSheetPresented = true
} label: {}
}
HStack(spacing: 2) {
if let lowValue = low,
let formattedLow = formatter.string(from: lowValue as NSNumber)
{
Text(formattedLow)
.foregroundColor(.secondary)
.font(.caption)
}
Text(
"\(formatter.string(from: (low ?? 0) as NSNumber)!)" // - \(formatter.string(from: (high ?? 0) as NSNumber)!)"
)
.foregroundColor(.secondary)
.font(.caption)

Text(state.units.rawValue)
.foregroundColor(.secondary)
Expand All @@ -300,12 +197,28 @@ extension AddTempTarget {
.font(.caption)

Spacer()
}.padding(.bottom, 2)
}.padding(.top, 2)
}
.contentShape(Rectangle())
.onTapGesture {
state.enactPreset(id: preset.id)
}

Image(systemName: "xmark.circle").foregroundColor(.secondary)
.contentShape(Rectangle())
.padding(.vertical)
.onTapGesture {
removeAlert = Alert(
title: Text("Are you sure?"),
message: Text("Delete preset \"\(preset.displayName)\""),
primaryButton: .destructive(Text("Delete"), action: { state.removePreset(id: preset.id) }),
secondaryButton: .cancel()
)
isRemoveAlertPresented = true
}
.alert(isPresented: $isRemoveAlertPresented) {
removeAlert!
}
}
}

Expand Down

0 comments on commit d7c9902

Please sign in to comment.