Mercurial > public > simoleon
annotate Simoleon/UI/SubscriptionPaywall.swift @ 156:84137052813d
Refactor code
author | Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com> |
---|---|
date | Sat, 28 Aug 2021 11:15:25 +0100 |
parents | Simoleon/SubscriptionPaywall.swift@fd19def1ce3f |
children |
rev | line source |
---|---|
28
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
1 // |
42
d25b02d439d4
Minor updates subscription and legal requirements
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
30
diff
changeset
|
2 // SubscriptionPaywall.swift |
28
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
3 // Simoleon |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
4 // |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
5 // Created by Dennis Concepción Martín on 22/07/2021. |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
6 // |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
7 |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
8 import SwiftUI |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
9 |
42
d25b02d439d4
Minor updates subscription and legal requirements
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
30
diff
changeset
|
10 struct SubscriptionPaywall: View { |
28
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
11 @Binding var showingSubscriptionPaywall: Bool |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
12 |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
13 var body: some View { |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
14 NavigationView { |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
15 ScrollView { |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
16 VStack(alignment: .leading, spacing: 20) { |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
17 HStack { |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
18 Spacer() |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
19 VStack { |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
20 Image("Subscription") |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
21 .resizable() |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
22 .aspectRatio(contentMode: .fit) |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
23 .frame(width: 100, height: 100) |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
24 .cornerRadius(25) |
75
b6f8661300f2
Added isLocked to CurrencyPairs
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
69
diff
changeset
|
25 .padding(.top) |
28
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
26 |
65
4082787b33e5
Minor UI updates
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
62
diff
changeset
|
27 Text("Unlock All Access") |
28
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
28 .font(.title) |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
29 .fontWeight(.semibold) |
140
fd19def1ce3f
Fix alignment problem in Russian
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
75
diff
changeset
|
30 .fixedSize(horizontal: false, vertical: true) |
fd19def1ce3f
Fix alignment problem in Russian
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
75
diff
changeset
|
31 .multilineTextAlignment(.center) |
28
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
32 .padding(.top) |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
33 } |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
34 |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
35 Spacer() |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
36 } |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
37 |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
38 Divider() |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
39 |
46
ce4eb7416b41
Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
42
diff
changeset
|
40 SubscriptionFeature( |
ce4eb7416b41
Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
42
diff
changeset
|
41 symbol: "star.circle.fill", |
ce4eb7416b41
Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
42
diff
changeset
|
42 colour: Color(.systemYellow), |
65
4082787b33e5
Minor UI updates
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
62
diff
changeset
|
43 title: "Favorite Forex Pairs", |
68
aa451ca55e48
Fixes minor bugs
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
65
diff
changeset
|
44 description: "Save any currency pair to access them quickly." |
46
ce4eb7416b41
Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
42
diff
changeset
|
45 ) |
28
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
46 |
46
ce4eb7416b41
Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
42
diff
changeset
|
47 SubscriptionFeature( |
ce4eb7416b41
Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
42
diff
changeset
|
48 symbol: "flag.circle.fill", |
ce4eb7416b41
Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
42
diff
changeset
|
49 colour: Color(.systemRed), |
65
4082787b33e5
Minor UI updates
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
62
diff
changeset
|
50 title: "Over 170 Currencies", |
4082787b33e5
Minor UI updates
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
62
diff
changeset
|
51 description: "Access almost every currency of the world." |
46
ce4eb7416b41
Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
42
diff
changeset
|
52 ) |
28
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
53 |
46
ce4eb7416b41
Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
42
diff
changeset
|
54 SubscriptionFeature( |
ce4eb7416b41
Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
42
diff
changeset
|
55 symbol: "icloud.circle.fill", |
ce4eb7416b41
Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
42
diff
changeset
|
56 colour: Color(.systemBlue), |
65
4082787b33e5
Minor UI updates
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
62
diff
changeset
|
57 title: "Everything is Up-to-date", |
53
b0bce2c8e4a9
Refactor UK spelling to US
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
47
diff
changeset
|
58 description: "Your settings and favorite currencies in all your devices." |
46
ce4eb7416b41
Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
42
diff
changeset
|
59 ) |
28
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
60 |
46
ce4eb7416b41
Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
42
diff
changeset
|
61 SubscriptionFeature( |
ce4eb7416b41
Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
42
diff
changeset
|
62 symbol: "bitcoinsign.circle.fill", |
ce4eb7416b41
Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
42
diff
changeset
|
63 colour: Color(.systemOrange), |
65
4082787b33e5
Minor UI updates
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
62
diff
changeset
|
64 title: "Cryptos and Commodities", |
4082787b33e5
Minor UI updates
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
62
diff
changeset
|
65 description: "Convert currency between cryptos, gold, and silver." |
46
ce4eb7416b41
Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
42
diff
changeset
|
66 ) |
30
f76d0e26c178
Add localisation
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
29
diff
changeset
|
67 |
28
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
68 Spacer() |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
69 SubscribeButton(showingSubscriptionPaywall: $showingSubscriptionPaywall) |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
70 HStack { |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
71 Spacer() |
57
838099ff1e02
Remove privacy policy and terms of use
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
53
diff
changeset
|
72 RestoreButton(showingSubscriptionPaywall: $showingSubscriptionPaywall) |
28
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
73 Spacer() |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
74 } |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
75 } |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
76 .padding(.bottom) |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
77 .padding(.horizontal, 40) |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
78 } |
75
b6f8661300f2
Added isLocked to CurrencyPairs
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
69
diff
changeset
|
79 .navigationBarTitleDisplayMode(.inline) |
28
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
80 .toolbar { |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
81 ToolbarItem(placement: .cancellationAction) { |
29
c52966834f83
Add localised strings
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
28
diff
changeset
|
82 Button(action: { showingSubscriptionPaywall = false }) { |
62
c7b6249ab745
uncomment localized texts
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
57
diff
changeset
|
83 Text("Cancel") |
29
c52966834f83
Add localised strings
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
28
diff
changeset
|
84 } |
28
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
85 } |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
86 } |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
87 } |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
88 } |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
89 } |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
90 |
42
d25b02d439d4
Minor updates subscription and legal requirements
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
30
diff
changeset
|
91 struct SubscriptionPaywall_Previews: PreviewProvider { |
28
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
92 static var previews: some View { |
75
b6f8661300f2
Added isLocked to CurrencyPairs
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
69
diff
changeset
|
93 SubscriptionPaywall(showingSubscriptionPaywall: .constant(true)) |
28
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
94 } |
4f862c618b44
Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
95 } |