瀏覽代碼

add deselect all functionality

Marvin Polscheit 6 月之前
父節點
當前提交
516a2ae4e5
共有 1 個文件被更改,包括 9 次插入6 次删除
  1. 9 6
      Trio/Sources/Modules/DataTable/View/DataTableRootView.swift

+ 9 - 6
Trio/Sources/Modules/DataTable/View/DataTableRootView.swift

@@ -193,13 +193,19 @@ extension DataTable {
             .popover(isPresented: $showTreatmentTypeFilter, arrowEdge: .top) {
                 VStack(alignment: .leading, spacing: 20) {
                     Button(action: {
-                        selectedTreatmentTypes = ["Bolus", "External Bolus", "SMB", "Temp Basal", "Suspend", "Other"]
+                        if selectedTreatmentTypes.count == 6 {
+                            // Deselect all - keep at least one selected
+                            selectedTreatmentTypes = []
+                        } else {
+                            // Select all
+                            selectedTreatmentTypes = ["Bolus", "External Bolus", "SMB", "Temp Basal", "Suspend", "Other"]
+                        }
                     }) {
                         HStack(spacing: 20) {
                             Image(systemName: selectedTreatmentTypes.count == 6 ? "checkmark.circle.fill" : "circle")
                                 .frame(width: 20)
                                 .foregroundColor(Color.accentColor)
-                            Text("Select All")
+                            Text(selectedTreatmentTypes.count == 6 ? "Deselect All" : "Select All")
                                 .foregroundColor(Color.primary)
                         }.padding(4)
                     }
@@ -254,10 +260,7 @@ extension DataTable {
 
         private func toggleTreatmentType(_ type: String) {
             if selectedTreatmentTypes.contains(type) {
-                // Don't allow removing the last selected type
-                if selectedTreatmentTypes.count > 1 {
-                    selectedTreatmentTypes.remove(type)
-                }
+                selectedTreatmentTypes.remove(type)
             } else {
                 selectedTreatmentTypes.insert(type)
             }