From fbcdfbff127e91d6f10321423828087d65cedb16 Mon Sep 17 00:00:00 2001 From: VincentMeilinger Date: Wed, 24 Jan 2024 20:54:50 +0100 Subject: [PATCH] Bugfixes --- .../UserInterfaceState.xcuserstate | Bin 65328 -> 65272 bytes .../Views/RecipeDetailView.swift | 36 ++++++++++-------- .../Views/Tabs/GroceryListTabView.swift | 14 +++++++ 3 files changed, 35 insertions(+), 15 deletions(-) diff --git a/Nextcloud Cookbook iOS Client.xcodeproj/project.xcworkspace/xcuserdata/vincie.xcuserdatad/UserInterfaceState.xcuserstate b/Nextcloud Cookbook iOS Client.xcodeproj/project.xcworkspace/xcuserdata/vincie.xcuserdatad/UserInterfaceState.xcuserstate index 6493ce8239807a086e54a5fa7656b260929c83be..c37af790fb880872a39fc00257b775849b46da64 100644 GIT binary patch delta 24843 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 delta 24800 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 XP1J%~)xRTLix&Ud4gJ^uSF8CS>goqU diff --git a/Nextcloud Cookbook iOS Client/Views/RecipeDetailView.swift b/Nextcloud Cookbook iOS Client/Views/RecipeDetailView.swift index 848e59a..76a5d48 100644 --- a/Nextcloud Cookbook iOS Client/Views/RecipeDetailView.swift +++ b/Nextcloud Cookbook iOS Client/Views/RecipeDetailView.swift @@ -367,14 +367,20 @@ fileprivate struct RecipeIngredientSection: View { } Spacer() Button { - groceryList.addItems(recipeDetail.recipeIngredient, toRecipe: recipeDetail.id, recipeName: recipeDetail.name) + withAnimation { + if groceryList.containsRecipe(recipeDetail.id) { + groceryList.deleteGroceryRecipe(recipeDetail.id) + } else { + groceryList.addItems(recipeDetail.recipeIngredient, toRecipe: recipeDetail.id, recipeName: recipeDetail.name) + } + } } label: { Image(systemName: "storefront") } } ForEach(recipeDetail.recipeIngredient, id: \.self) { ingredient in - IngredientListItem(ingredient: ingredient) { + IngredientListItem(ingredient: ingredient, recipeId: recipeDetail.id) { groceryList.addItem(ingredient, toRecipe: recipeDetail.id, recipeName: recipeDetail.name) } .padding(4) @@ -403,6 +409,7 @@ fileprivate struct RecipeToolSection: View { fileprivate struct IngredientListItem: View { @EnvironmentObject var groceryList: GroceryList @State var ingredient: String + @State var recipeId: String let addToGroceryListAction: () -> Void @State var isSelected: Bool = false @State private var dragOffset: CGFloat = 0 @@ -410,6 +417,10 @@ fileprivate struct IngredientListItem: View { var body: some View { HStack(alignment: .top) { + if groceryList.containsItem(at: recipeId, item: ingredient) { + Image(systemName: "storefront") + .foregroundStyle(Color.green) + } if isSelected { Image(systemName: "checkmark.circle") } else { @@ -435,8 +446,14 @@ fileprivate struct IngredientListItem: View { self.dragOffset = max(0, min(dragAmount, maxDragDistance + pow(dragAmount - maxDragDistance, 0.7))) } .onEnded { gesture in - if gesture.translation.width > maxDragDistance * 0.8 { // Swipe right threshold - addToGroceryListAction() + if gesture.translation.width > maxDragDistance * 0.8 { // Swipe threshold + withAnimation { + if groceryList.containsItem(at: recipeId, item: ingredient) { + groceryList.deleteItem(ingredient, fromRecipe: recipeId) + } else { + addToGroceryListAction() + } + } } // Animate back to original position withAnimation { @@ -444,17 +461,6 @@ fileprivate struct IngredientListItem: View { } } ) - .background { - if dragOffset > 0 { - HStack { - Image(systemName: "storefront") - .foregroundStyle(Color.green) - .opacity((dragOffset - 10)/(maxDragDistance-10)) - - Spacer() - } - } - } } } diff --git a/Nextcloud Cookbook iOS Client/Views/Tabs/GroceryListTabView.swift b/Nextcloud Cookbook iOS Client/Views/Tabs/GroceryListTabView.swift index 6ab5302..0f0c458 100644 --- a/Nextcloud Cookbook iOS Client/Views/Tabs/GroceryListTabView.swift +++ b/Nextcloud Cookbook iOS Client/Views/Tabs/GroceryListTabView.swift @@ -180,12 +180,14 @@ class GroceryList: ObservableObject { groceryDict.removeValue(forKey: recipeId) } save() + objectWillChange.send() } func deleteGroceryRecipe(_ recipeId: String) { print("Deleting grocery recipe with id \(recipeId)") groceryDict.removeValue(forKey: recipeId) save() + objectWillChange.send() } func deleteAll() { @@ -200,6 +202,18 @@ class GroceryList: ObservableObject { save() } + func containsItem(at recipeId: String, item: String) -> Bool { + guard let recipe = groceryDict[recipeId] else { return false } + if recipe.items.contains(where: { $0.name == item }) { + return true + } + return false + } + + func containsRecipe(_ recipeId: String) -> Bool { + return groceryDict[recipeId] != nil + } + func save() { Task { await dataStore.save(data: groceryDict, toPath: "grocery_list.data")