Add Favourites feature
This commit is contained in:
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user