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 }