Add Favourites feature

This commit is contained in:
2025-04-04 19:45:10 +02:00
parent 384ee97cb7
commit 9984f2c943
5 changed files with 125 additions and 26 deletions
+16 -6
View File
@@ -10,7 +10,8 @@ import SwiftUI
struct ContentView: View {
private var wcMgr: WCManager
@State private var drinks: Array<Drink> = []
@State private var favouriteDrinks: Array<Drink> = []
@State private var availableDrinks: Array<Drink> = []
@State private var showUpdateError: Bool = false
@State private var updateError: String = ""
@@ -30,9 +31,10 @@ struct ContentView: View {
// Update drinks list from paired device
wcMgr.requestDrinksList(
replyHandler: { drinks in
replyHandler: { favDrinks, availDrinks in
// Drinks received from backend
self.drinks = drinks
self.favouriteDrinks = favDrinks
self.availableDrinks = availDrinks
showUpdateError = false
}, errorHandler: { error in
// Error receiving drinks
@@ -46,12 +48,19 @@ struct ContentView: View {
var body: some View {
ZStack {
if drinks.count > 0 {
if favouriteDrinks.count + availableDrinks.count > 0 {
NavigationView {
List() {
// Drinks
Section("Favourites") {
ForEach(favouriteDrinks) { drink in
NavigationLink(drink.name) {
DrinkDetailView(wcMgr: wcMgr, drink: drink)
}
}
}
Section("Drinks") {
ForEach(drinks) { drink in
ForEach(availableDrinks) { drink in
NavigationLink(drink.name) {
DrinkDetailView(wcMgr: wcMgr, drink: drink)
}
@@ -61,7 +70,8 @@ struct ContentView: View {
// Controls
Section {
Button("Refresh") {
drinks = []
favouriteDrinks = []
availableDrinks = []
update()
}
}