zashi-ios-wallet-private/secant/Features/WalletEventsFlow/WalletEventsFlowView.swift

46 lines
1.4 KiB
Swift

import SwiftUI
import ComposableArchitecture
struct WalletEventsFlowView: View {
let store: WalletEventsFlowStore
var body: some View {
return WithViewStore(store) { viewStore in
List {
walletEventsList(with: viewStore)
}
.navigationTitle(L10n.Transactions.title)
.listStyle(.plain)
.onAppear { viewStore.send(.onAppear) }
.onDisappear(perform: { viewStore.send(.onDisappear) })
.navigationLinkEmpty(isActive: viewStore.bindingForSelectedWalletEvent(viewStore.selectedWalletEvent)) {
viewStore.selectedWalletEvent?.detailView(store)
}
}
}
}
extension WalletEventsFlowView {
func walletEventsList(with viewStore: WalletEventsFlowViewStore) -> some View {
ForEach(viewStore.walletEvents) { walletEvent in
walletEvent.rowView(viewStore)
.onTapGesture {
viewStore.send(.updateDestination(.showWalletEvent(walletEvent)))
}
.listRowInsets(EdgeInsets())
.frame(height: 60)
}
}
}
// MARK: - Previews
struct TransactionView_Previews: PreviewProvider {
static var previews: some View {
NavigationView {
WalletEventsFlowView(store: .placeholder)
.preferredColorScheme(.light)
}
}
}