Mercurial > public > lazybear
annotate LazyBearWatchOS Extension/Views/Helpers/WatchOSCompanyRow.swift @ 455:b560babcd5ed
WatchOS views implemented
author | Dennis Concepción Martín <dennisconcepcionmartin@gmail.com> |
---|---|
date | Mon, 28 Jun 2021 11:55:19 +0200 |
parents | LazyBearWatchOS Extension/Views/Home/Helpers/CompanyRow.swift@bb69f9d1d20f |
children |
rev | line source |
---|---|
447
8621ba6fd457
Fixes #48
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
1 // |
455
b560babcd5ed
WatchOS views implemented
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
452
diff
changeset
|
2 // WatchOSCompanyRow.swift |
447
8621ba6fd457
Fixes #48
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
3 // LazyBearWatchOS Extension |
8621ba6fd457
Fixes #48
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
4 // |
8621ba6fd457
Fixes #48
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
5 // Created by Dennis Concepción Martín on 22/6/21. |
8621ba6fd457
Fixes #48
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
6 // |
8621ba6fd457
Fixes #48
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
7 |
8621ba6fd457
Fixes #48
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
8 import SwiftUI |
8621ba6fd457
Fixes #48
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
9 |
455
b560babcd5ed
WatchOS views implemented
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
452
diff
changeset
|
10 struct WatchOSCompanyRow: View { |
452
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
11 var company: CompanyModel |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
12 |
447
8621ba6fd457
Fixes #48
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
13 var body: some View { |
452
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
14 VStack(alignment: .leading) { |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
15 HStack { |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
16 Text(company.symbol.uppercased()) |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
17 .font(.caption2) |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
18 .fontWeight(.semibold) |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
19 |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
20 Spacer() |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
21 if let changePercent = company.changePercent { |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
22 VStack { |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
23 Text("\(changePercent * 100, specifier: "%.2f")%") |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
24 .foregroundColor(changePercent < 0 ? .red: .green) |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
25 } |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
26 } |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
27 } |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
28 |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
29 if let latestPrice = company.latestPrice { |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
30 Text("\(latestPrice, specifier: "%.2f")") |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
31 .foregroundColor(company.changePercent ?? 0.0 < 0 ? .red: .green) |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
32 .font(.title2) |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
33 } |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
34 } |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
35 .padding() |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
36 .background( |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
37 RoundedRectangle(cornerRadius: 10) |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
38 .foregroundColor(company.changePercent ?? 0.0 < 0 ? .red: .green) |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
39 .opacity(0.2) |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
40 ) |
447
8621ba6fd457
Fixes #48
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
41 } |
8621ba6fd457
Fixes #48
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
42 } |
8621ba6fd457
Fixes #48
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
43 |
455
b560babcd5ed
WatchOS views implemented
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
452
diff
changeset
|
44 struct WatchOSCompanyRow_Previews: PreviewProvider { |
447
8621ba6fd457
Fixes #48
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
45 static var previews: some View { |
455
b560babcd5ed
WatchOS views implemented
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
452
diff
changeset
|
46 WatchOSCompanyRow(company: |
452
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
47 CompanyModel( |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
48 symbol: "aapl", |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
49 companyName: "Apple Inc", |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
50 latestPrice: 120.3, |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
51 changePercent: 0.03, |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
52 intradayPrices: [120.3] |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
53 ) |
bb69f9d1d20f
Implement HomeView in WatchOS
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
447
diff
changeset
|
54 ) |
447
8621ba6fd457
Fixes #48
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
55 } |
8621ba6fd457
Fixes #48
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
56 } |