Skip to content

Commit 8d62429

Browse files
authored
Merge pull request #1443 from LukasKorba/1440-List-of-bugs-to-resolve-after-1-3-1
[#1440] list of bugs to resolve after 1.3.1
2 parents b894fdb + 8f1d666 commit 8d62429

File tree

82 files changed

+917
-788
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+917
-788
lines changed

CHANGELOG.md

+13
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,19 @@ directly impact users rather than highlighting other crucial architectural updat
66

77
## [Unreleased]
88

9+
## 1.3.2 build 1 (2025-01-09)
10+
11+
### Fixed
12+
- Appearance colors when mode changed.
13+
- Info text truncation removed on a balance tab.
14+
- What's new data are no longer corrupted.
15+
- Balances tab's duplicated status bar removed.
16+
- Reset Zashi clears out accounts so cached addresses and previously selected account properly are no longer invalid.
17+
- Selected account is not listed in the Address Book among accounts.
18+
- Send Feedback screen is now scrollable so a Send button can be reached on a smaller screens.
19+
- Report button on a failed screen fallbacks to share a message when a native mail client is not set up.
20+
- Migration to a new device with backed up database lets a user to set the birthday.
21+
922
## 1.3.1 build 1 (2024-12-24)
1023

1124
### Fixed

modules/Package.swift

+6-6
Original file line numberDiff line numberDiff line change
@@ -89,15 +89,15 @@ let package = Package(
8989
.library(name: "ZecKeyboard", targets: ["ZecKeyboard"])
9090
],
9191
dependencies: [
92-
.package(url: "https://github.com/pointfreeco/swift-composable-architecture", exact: "1.15.2"),
93-
.package(url: "https://github.com/pointfreeco/swift-case-paths", from: "1.5.4"),
92+
.package(url: "https://github.com/pointfreeco/swift-composable-architecture", from: "1.17.1"),
93+
.package(url: "https://github.com/pointfreeco/swift-case-paths", from: "1.5.6"),
9494
.package(url: "https://github.com/pointfreeco/swift-url-routing", from: "0.6.2"),
9595
.package(url: "https://github.com/zcash-hackworks/MnemonicSwift", from: "2.2.4"),
9696
.package(url: "https://github.com/Electric-Coin-Company/zcash-swift-wallet-sdk", from: "2.2.8"),
97-
.package(url: "https://github.com/firebase/firebase-ios-sdk", from: "10.27.0"),
98-
.package(url: "https://github.com/flexa/flexa-ios.git", from: "1.0.8"),
99-
.package(url: "https://github.com/pacu/zcash-swift-payment-uri", from: "0.1.0-beta.9"),
100-
.package(url: "https://github.com/airbnb/lottie-spm.git", from: "4.5.0"),
97+
.package(url: "https://github.com/firebase/firebase-ios-sdk", from: "11.6.0"),
98+
.package(url: "https://github.com/flexa/flexa-ios.git", from: "1.0.9"),
99+
.package(url: "https://github.com/pacu/zcash-swift-payment-uri", from: "0.1.0-beta.10"),
100+
.package(url: "https://github.com/airbnb/lottie-spm.git", from: "4.5.1"),
101101
.package(url: "https://github.com/KeystoneHQ/keystone-sdk-ios/", from: "0.0.1")
102102
],
103103
targets: [

modules/Sources/Features/AddKeystoneHWWallet/AccountsSelectionView.swift

+3-2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import Generated
1111
import UIComponents
1212

1313
public struct AccountsSelectionView: View {
14+
@Environment(\.colorScheme) private var colorScheme
1415
@Perception.Bindable var store: StoreOf<AddKeystoneHWWallet>
1516

1617
public init(store: StoreOf<AddKeystoneHWWallet>) {
@@ -75,7 +76,7 @@ public struct AccountsSelectionView: View {
7576
.padding(8)
7677
.background {
7778
Circle()
78-
.fill(Design.Surfaces.bgAlt.color)
79+
.fill(Design.Surfaces.bgAlt.color(colorScheme))
7980
}
8081
.padding(.trailing, 8)
8182

@@ -97,7 +98,7 @@ public struct AccountsSelectionView: View {
9798
.padding(.vertical, 12)
9899
.background {
99100
RoundedRectangle(cornerRadius: 20)
100-
.stroke(Design.Surfaces.strokeSecondary.color)
101+
.stroke(Design.Surfaces.strokeSecondary.color(colorScheme))
101102
}
102103
}
103104
}

modules/Sources/Features/AddKeystoneHWWallet/AddHWWalletStore.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -122,10 +122,10 @@ public struct AddKeystoneHWWallet {
122122
return .none
123123

124124
case let .loadedWalletAccounts(walletAccounts, uuid):
125-
state.walletAccounts = walletAccounts
125+
state.$walletAccounts.withLock { $0 = walletAccounts }
126126
for walletAccount in walletAccounts {
127127
if walletAccount.id == uuid {
128-
state.selectedWalletAccount = walletAccount
128+
state.$selectedWalletAccount.withLock { $0 = walletAccount }
129129
break
130130
}
131131
}

modules/Sources/Features/AddKeystoneHWWallet/AddHWWalletView.swift

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import Generated
1111
import UIComponents
1212

1313
public struct AddKeystoneHWWalletView: View {
14+
@Environment(\.colorScheme) private var colorScheme
1415
@Perception.Bindable var store: StoreOf<AddKeystoneHWWallet>
1516

1617
public init(store: StoreOf<AddKeystoneHWWallet>) {
@@ -42,7 +43,7 @@ public struct AddKeystoneHWWalletView: View {
4243
} label: {
4344
Text(L10n.Keystone.AddHWWallet.tutorial)
4445
.font(.custom(FontFamily.Inter.semiBold.name, size: 14))
45-
.foregroundColor(Design.Utility.HyperBlue._700.color)
46+
.foregroundColor(Design.Utility.HyperBlue._700.color(colorScheme))
4647
.underline()
4748
.padding(.top, 4)
4849
}

modules/Sources/Features/AddressBook/AddressBookStore.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ public struct AddressBook {
141141
return .send(.fetchABContactsRequested)
142142

143143
case .alert(.presented(let action)):
144-
return Effect.send(action)
144+
return .send(action)
145145

146146
case .alert(.dismiss):
147147
state.alert = nil
@@ -295,7 +295,7 @@ public struct AddressBook {
295295
guard let account = state.zashiWalletAccount else {
296296
return .none
297297
}
298-
state.addressBookContacts = abContacts
298+
state.$addressBookContacts.withLock { $0 = abContacts }
299299
if requestToSync {
300300
return .run { send in
301301
do {

modules/Sources/Features/AddressBook/AddressBookView.swift

+29-55
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ extension String {
2525
}
2626

2727
public struct AddressBookView: View {
28+
@Environment(\.colorScheme) private var colorScheme
2829
@Perception.Bindable var store: StoreOf<AddressBook>
2930

3031
public init(store: StoreOf<AddressBook>) {
@@ -138,23 +139,23 @@ public struct AddressBookView: View {
138139
ZStack {
139140
Asset.Assets.send.image
140141
.zImage(size: 32, style: Design.Btns.Tertiary.fg)
141-
.foregroundColor(Design.Btns.Tertiary.fg.color)
142+
.zForegroundColor(Design.Btns.Tertiary.fg)
142143
.background {
143144
Circle()
144-
.fill(Design.Btns.Tertiary.bg.color)
145+
.fill(Design.Btns.Tertiary.bg.color(colorScheme))
145146
.frame(width: 72, height: 72)
146147
}
147148

148149
ZcashSymbol()
149150
.frame(width: 24, height: 24)
150-
.foregroundColor(Design.Surfaces.bgPrimary.color)
151+
.zForegroundColor(Design.Surfaces.bgPrimary)
151152
.background {
152153
Circle()
153-
.fill(Design.Surfaces.brandBg.color)
154+
.fill(Design.Surfaces.brandBg.color(colorScheme))
154155
.frame(width: 32, height: 32)
155156
.background {
156157
Circle()
157-
.fill(Design.Surfaces.bgPrimary.color)
158+
.fill(Design.Surfaces.bgPrimary.color(colorScheme))
158159
.frame(width: 36, height: 36)
159160
}
160161
}
@@ -175,23 +176,25 @@ public struct AddressBookView: View {
175176
.listBackground()
176177

177178
ForEach(store.walletAccounts, id: \.self) { walletAccount in
178-
VStack {
179-
walletAcoountView(
180-
icon: walletAccount.vendor.icon(),
181-
title: walletAccount.vendor.name(),
182-
address: walletAccount.unifiedAddress ?? L10n.Receive.Error.cantExtractUnifiedAddress
183-
) {
184-
store.send(.walletAccountTapped(walletAccount))
185-
}
186-
187-
if let last = store.walletAccounts.last, last != walletAccount {
188-
Design.Surfaces.divider.color
189-
.frame(height: 1)
190-
.padding(.top, 12)
191-
.padding(.horizontal, 4)
179+
if walletAccount != store.selectedWalletAccount {
180+
VStack {
181+
walletAccountView(
182+
icon: walletAccount.vendor.icon(),
183+
title: walletAccount.vendor.name(),
184+
address: walletAccount.unifiedAddress ?? L10n.Receive.Error.cantExtractUnifiedAddress
185+
) {
186+
store.send(.walletAccountTapped(walletAccount))
187+
}
188+
189+
if let last = store.walletAccounts.last, last != walletAccount {
190+
Design.Surfaces.divider.color(colorScheme)
191+
.frame(height: 1)
192+
.padding(.top, 12)
193+
.padding(.horizontal, 4)
194+
}
192195
}
196+
.listBackground()
193197
}
194-
.listBackground()
195198
}
196199

197200
if store.addressBookContacts.contacts.isEmpty {
@@ -209,7 +212,7 @@ public struct AddressBookView: View {
209212
.padding(.top, 70)
210213
.background {
211214
RoundedRectangle(cornerRadius: 16)
212-
.stroke(Design.Surfaces.strokeSecondary.color, style: StrokeStyle(lineWidth: 2.0, dash: [8, 6]))
215+
.stroke(Design.Surfaces.strokeSecondary.color(colorScheme), style: StrokeStyle(lineWidth: 2.0, dash: [8, 6]))
213216
}
214217
.padding(.top, 24)
215218
.screenHorizontalPadding()
@@ -234,7 +237,7 @@ public struct AddressBookView: View {
234237
}
235238

236239
if let last = store.addressBookContacts.contacts.last, last != record {
237-
Design.Surfaces.divider.color
240+
Design.Surfaces.divider.color(colorScheme)
238241
.frame(height: 1)
239242
.padding(.top, 12)
240243
.padding(.horizontal, 4)
@@ -249,37 +252,8 @@ public struct AddressBookView: View {
249252
.background(Asset.Colors.background.color)
250253
.listStyle(.plain)
251254
}
252-
253-
@ViewBuilder func walletAccountsList() -> some View {
254-
List {
255-
ForEach(store.walletAccounts, id: \.self) { walletAccount in
256-
VStack {
257-
walletAcoountView(
258-
icon: walletAccount.vendor.icon(),
259-
title: walletAccount.vendor.name(),
260-
address: walletAccount.unifiedAddress ?? L10n.Receive.Error.cantExtractUnifiedAddress
261-
) {
262-
store.send(.walletAccountTapped(walletAccount))
263-
}
264-
265-
if let last = store.walletAccounts.last, last != walletAccount {
266-
Design.Surfaces.divider.color
267-
.frame(height: 1)
268-
.padding(.top, 12)
269-
.padding(.horizontal, 4)
270-
}
271-
}
272-
.listRowInsets(EdgeInsets())
273-
.listRowBackground(Asset.Colors.background.color)
274-
.listRowSeparator(.hidden)
275-
}
276-
}
277-
.padding(.vertical, 1)
278-
.background(Asset.Colors.background.color)
279-
.listStyle(.plain)
280-
}
281-
282-
@ViewBuilder func walletAcoountView(
255+
256+
@ViewBuilder func walletAccountView(
283257
icon: Image,
284258
title: String,
285259
address: String,
@@ -297,7 +271,7 @@ public struct AddressBookView: View {
297271
.padding(8)
298272
.background {
299273
Circle()
300-
.fill(Design.Surfaces.bgAlt.color)
274+
.fill(Design.Surfaces.bgAlt.color(colorScheme))
301275
}
302276
.padding(.trailing, 12)
303277

@@ -319,7 +293,7 @@ public struct AddressBookView: View {
319293
.background {
320294
if selected {
321295
RoundedRectangle(cornerRadius: 16)
322-
.fill(Design.Surfaces.bgSecondary.color)
296+
.fill(Design.Surfaces.bgSecondary.color(colorScheme))
323297
}
324298
}
325299
}

modules/Sources/Features/AddressDetails/AddressDetailsStore.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public struct AddressDetails {
8686

8787
case .copyToPastboard:
8888
pasteboard.setString(state.address)
89-
state.toast = .top(L10n.General.copiedToTheClipboard)
89+
state.$toast.withLock { $0 = .top(L10n.General.copiedToTheClipboard) }
9090
return .none
9191

9292
case .generateQRCode:

modules/Sources/Features/AddressDetails/AddressDetailsView.swift

+3-3
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,12 @@ public struct AddressDetailsView: View {
3939
.background {
4040
RoundedRectangle(cornerRadius: 12)
4141
.fill(store.isQRCodeAppreanceFlipped
42-
? Asset.Colors.ZDesign.Base.bone.color
43-
: Design.screenBackground.color
42+
? Asset.Colors.ZDesign.Base.bone.color
43+
: Design.screenBackground.color(colorScheme)
4444
)
4545
.background {
4646
RoundedRectangle(cornerRadius: 12)
47-
.stroke(Design.Surfaces.strokeSecondary.color)
47+
.stroke(Design.Surfaces.strokeSecondary.color(colorScheme))
4848
}
4949
}
5050
.padding(.top, 40)

modules/Sources/Features/BalanceBreakdown/BalancesStore.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ public struct Balances {
127127
Reduce { state, action in
128128
switch action {
129129
case .alert(.presented(let action)):
130-
return Effect.send(action)
130+
return .send(action)
131131

132132
case .alert(.dismiss):
133133
state.alert = nil

modules/Sources/Features/BalanceBreakdown/BalancesView.swift

+3-3
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import WalletBalances
1919
import Combine
2020

2121
public struct BalancesView: View {
22+
@Environment(\.colorScheme) private var colorScheme
2223
@Perception.Bindable var store: StoreOf<Balances>
2324
let tokenName: String
2425

@@ -54,14 +55,14 @@ public struct BalancesView: View {
5455
.padding(.horizontal, store.isHintBoxVisible ? 15 : 30)
5556
.background {
5657
RoundedRectangle(cornerRadius: 12)
57-
.stroke(Design.Surfaces.strokePrimary.color)
58+
.stroke(Design.Surfaces.strokePrimary.color(colorScheme))
5859
}
5960
.padding(.horizontal, 30)
6061

6162
if walletStatus == .restoring {
6263
Text(L10n.Balances.restoringWalletWarning)
6364
.zFont(.medium, size: 10, style: Design.Utility.ErrorRed._600)
64-
.lineLimit(nil)
65+
.fixedSize(horizontal: false, vertical: true)
6566
.multilineTextAlignment(.center)
6667
.padding(.horizontal, 60)
6768
.padding(.vertical, 20)
@@ -82,7 +83,6 @@ public struct BalancesView: View {
8283
}
8384
)
8485
}
85-
.walletStatusPanel()
8686
}
8787
.navigationBarTitleDisplayMode(.inline)
8888
.padding(.vertical, 1)

modules/Sources/Features/CurrencyConversionSetup/CurrencyConversionSetupStore.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ public struct CurrencyConversionSetup {
128128

129129
case .settingsOptionChanged(let option):
130130
if option == .optOut {
131-
state.currencyConversion = nil
131+
state.$currencyConversion.withLock { $0 = nil }
132132
}
133133
return .none
134134

0 commit comments

Comments
 (0)