Mercurial > public > lazybear
comparison 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 |
comparison
equal
deleted
inserted
replaced
382:dc48cf87ded9 | 383:5d7a66e2b39f |
---|---|
1 // | |
2 // ExtensiveList.swift | |
3 // LazyBear | |
4 // | |
5 // Created by Dennis Concepción Martín on 14/4/21. | |
6 // | |
7 | |
8 import SwiftUI | |
9 | |
10 struct ExtensiveList: View { | |
11 var listName: String | |
12 var list: [String: QuoteModel]? | |
13 var intradayPrices: [String: [IntradayPriceModel]]? | |
14 var latestCurrencies: [String: CurrencyModel]? | |
15 var addOnDelete: Bool | |
16 | |
17 @Environment(\.presentationMode) private var extensiveListPresent | |
18 @State var isEditMode: EditMode = .inactive | |
19 | |
20 var body: some View { | |
21 NavigationView { | |
22 VStack { | |
23 if let list = list { | |
24 List { | |
25 ForEach(Array(list.keys.sorted()), id: \.self) { companySymbol in | |
26 StockItem(symbol: companySymbol, | |
27 company: list[companySymbol]!, | |
28 intradayPrices: intradayPrices?[companySymbol], | |
29 orientation: .horizontal, | |
30 hidePriceView: self.isEditMode == .active // Hide on EditMode | |
31 ) | |
32 | |
33 } | |
34 .onDelete(perform: addOnDelete ? removeCompany: nil) | |
35 } | |
36 } | |
37 | |
38 if let latestCurrencies = latestCurrencies { | |
39 List(Array(latestCurrencies.keys.sorted()), id: \.self) { currencySymbol in | |
40 CurrencyListItem(currencySymbol: currencySymbol, currency: latestCurrencies[currencySymbol]!) | |
41 | |
42 } | |
43 } | |
44 } | |
45 .navigationTitle(listName) | |
46 .navigationBarTitleDisplayMode(.inline) | |
47 .toolbar { | |
48 ToolbarItem(placement: .navigationBarTrailing) { | |
49 Button(action: { extensiveListPresent.wrappedValue.dismiss() }) { | |
50 Image(systemName: "multiply") | |
51 .imageScale(.large) | |
52 } | |
53 } | |
54 ToolbarItem(placement: .navigationBarLeading) { | |
55 if addOnDelete { | |
56 EditButton() | |
57 } | |
58 } | |
59 } | |
60 .environment(\.editMode, self.$isEditMode) // Always after Toolbar | |
61 } | |
62 } | |
63 private func removeCompany(at offsets: IndexSet) { | |
64 print("Hello") | |
65 } | |
66 } | |
67 | |
68 struct ExtensiveList_Previews: PreviewProvider { | |
69 static var previews: some View { | |
70 ExtensiveList(listName: "List name", addOnDelete: false) | |
71 } | |
72 } |