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 8e75c4d..7ba3580 100644 Binary files a/Nextcloud Cookbook iOS Client.xcodeproj/project.xcworkspace/xcuserdata/vincie.xcuserdatad/UserInterfaceState.xcuserstate and b/Nextcloud Cookbook iOS Client.xcodeproj/project.xcworkspace/xcuserdata/vincie.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/Nextcloud Cookbook iOS Client/AppState.swift b/Nextcloud Cookbook iOS Client/AppState.swift index adfa01f..8cbb8e8 100644 --- a/Nextcloud Cookbook iOS Client/AppState.swift +++ b/Nextcloud Cookbook iOS Client/AppState.swift @@ -189,7 +189,7 @@ import UIKit ```swift let recipeDetail = await mainViewModel.getRecipe(id: 123) */ - func getRecipe(id: Int, fetchMode: FetchMode) async -> RecipeDetail? { + func getRecipe(id: Int, fetchMode: FetchMode, save: Bool = false) async -> RecipeDetail? { func getLocal() async -> RecipeDetail? { if let recipe: RecipeDetail = await loadLocal(path: "recipe\(id).data") { return recipe } return nil @@ -201,6 +201,10 @@ import UIKit id: id ) if let recipe = recipe { + if save { + self.recipeDetails[id] = recipe + await self.saveLocal(recipe, path: "recipe\(id).data") + } return recipe } else if let error = error { print(error) diff --git a/Nextcloud Cookbook iOS Client/Views/Recipes/RecipeView.swift b/Nextcloud Cookbook iOS Client/Views/Recipes/RecipeView.swift index a1d9190..fbc5b76 100644 --- a/Nextcloud Cookbook iOS Client/Views/Recipes/RecipeView.swift +++ b/Nextcloud Cookbook iOS Client/Views/Recipes/RecipeView.swift @@ -406,6 +406,9 @@ struct RecipeViewToolBar: ToolbarContent { } await appState.getCategories() await appState.getCategory(named: viewModel.observableRecipeDetail.recipeCategory, fetchMode: .preferServer) + if let id = Int(viewModel.observableRecipeDetail.id) { + await appState.getRecipe(id: id, fetchMode: .onlyServer, save: true) + } viewModel.editMode = false }