This commit is contained in:
Daniel Arantes Loverde
2026-04-16 14:50:07 -03:00
parent 7f7d414e6c
commit 0ebb854213
20 changed files with 871 additions and 216 deletions

View File

@@ -19,6 +19,7 @@ struct HomeView: View {
@State var stores: [StoreSummary] = []
@State var productSearchIndexByStoreId: [String: [String]] = [:]
@State var searchDebounceToken = 0
@State var favoriteRequestStoreIds: Set<String> = []
private let specials: [SpecialOfferCardModel] = [
// .init(id: "ddddd", title: "Get 50% OFF", subtitle: "For your first order", colors: [Color(hex: "#1E6B43"), Color(hex: "#58A56C")]),
@@ -47,7 +48,7 @@ struct HomeView: View {
refreshCategories: true
)
}
.background(scrollOffsetObserver)
.coordinateSpace(name: HomeScrollCoordinateSpace.name)
header(collapseProgress: collapseProgress, height: headerHeight)
.frame(maxWidth: .infinity, alignment: .top)
@@ -84,6 +85,7 @@ struct HomeView: View {
private var contentStack: some View {
VStack(spacing: 24) {
scrollOffsetObserver
categoriesSection
section(title: "Featured") {
@@ -102,7 +104,14 @@ struct HomeView: View {
appState: $appState
)
} label: {
FeaturedStoreCard(store: store)
FeaturedStoreCard(
store: store,
onFavoriteToggle: {
Task {
await toggleFavoriteStore(storeId: store.id, storeName: store.name)
}
}
)
.frame(width: 190)
}
.buttonStyle(.plain)
@@ -171,7 +180,14 @@ struct HomeView: View {
appState: $appState
)
} label: {
FeaturedStoreCard(store: store)
FeaturedStoreCard(
store: store,
onFavoriteToggle: {
Task {
await toggleFavoriteStore(storeId: store.id, storeName: store.name)
}
}
)
}
.buttonStyle(.plain)
}