Mercurial > public > lazybear
view LazyBear/Views/Global Helpers/ExtensiveList.swift @ 383:5d7a66e2b39f
Reorganise file
author | Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com> |
---|---|
date | Sat, 24 Apr 2021 00:41:18 +0200 |
parents | |
children | c206bd0bdb4e |
line wrap: on
line source
// // ExtensiveList.swift // LazyBear // // Created by Dennis Concepción Martín on 14/4/21. // import SwiftUI struct ExtensiveList: View { var listName: String var list: [String: QuoteModel]? var intradayPrices: [String: [IntradayPriceModel]]? var latestCurrencies: [String: CurrencyModel]? var addOnDelete: Bool @Environment(\.presentationMode) private var extensiveListPresent @State var isEditMode: EditMode = .inactive var body: some View { NavigationView { VStack { if let list = list { List { ForEach(Array(list.keys.sorted()), id: \.self) { companySymbol in StockItem(symbol: companySymbol, company: list[companySymbol]!, intradayPrices: intradayPrices?[companySymbol], orientation: .horizontal, hidePriceView: self.isEditMode == .active // Hide on EditMode ) } .onDelete(perform: addOnDelete ? removeCompany: nil) } } if let latestCurrencies = latestCurrencies { List(Array(latestCurrencies.keys.sorted()), id: \.self) { currencySymbol in CurrencyListItem(currencySymbol: currencySymbol, currency: latestCurrencies[currencySymbol]!) } } } .navigationTitle(listName) .navigationBarTitleDisplayMode(.inline) .toolbar { ToolbarItem(placement: .navigationBarTrailing) { Button(action: { extensiveListPresent.wrappedValue.dismiss() }) { Image(systemName: "multiply") .imageScale(.large) } } ToolbarItem(placement: .navigationBarLeading) { if addOnDelete { EditButton() } } } .environment(\.editMode, self.$isEditMode) // Always after Toolbar } } private func removeCompany(at offsets: IndexSet) { print("Hello") } } struct ExtensiveList_Previews: PreviewProvider { static var previews: some View { ExtensiveList(listName: "List name", addOnDelete: false) } }