Skip to content

Commit bf7618d

Browse files
committed
ui: export descriptor
1 parent 10d8a07 commit bf7618d

File tree

3 files changed

+44
-1
lines changed

3 files changed

+44
-1
lines changed

BDKSwiftExampleWallet/Resources/Localizable.xcstrings

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,7 @@
289289
}
290290
},
291291
"Copy" : {
292+
"extractionState" : "stale",
292293
"localizations" : {
293294
"fr" : {
294295
"stringUnit" : {
@@ -327,6 +328,9 @@
327328
}
328329
}
329330
}
331+
},
332+
"Descriptor" : {
333+
330334
},
331335
"Destructive Zone" : {
332336
"localizations" : {
@@ -576,6 +580,9 @@
576580
}
577581
}
578582
}
583+
},
584+
"Seed" : {
585+
579586
},
580587
"Seed is not synced across devices." : {
581588

BDKSwiftExampleWallet/View Model/Settings/SeedViewModel.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,21 @@ import SwiftUI
1313
@MainActor
1414
class SeedViewModel {
1515
let bdkService: BDKClient
16+
let keyService: KeyClient
1617

1718
var seed: BackupInfo?
1819
var seedViewError: AppError?
1920
var showingSeedViewErrorAlert: Bool
2021

2122
init(
2223
bdkService: BDKClient = .live,
24+
keyService: KeyClient = .live,
2325
seed: BackupInfo? = nil,
2426
seedViewError: AppError? = nil,
2527
showingSeedViewErrorAlert: Bool = false
2628
) {
2729
self.bdkService = bdkService
30+
self.keyService = keyService
2831
self.seed = seed
2932
self.seedViewError = seedViewError
3033
self.showingSeedViewErrorAlert = showingSeedViewErrorAlert

BDKSwiftExampleWallet/View/Settings/SeedView.swift

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ struct SeedView: View {
5555
? "document.on.document.fill" : "document.on.document"
5656
)
5757
.contentTransition(.symbolEffect(.replace))
58-
Text("Copy")
58+
Text("Seed")
5959
.bold()
6060
}
6161
}
@@ -70,6 +70,39 @@ struct SeedView: View {
7070
)
7171
Spacer()
7272
}
73+
74+
HStack {
75+
Spacer()
76+
Button {
77+
UIPasteboard.general.string = seed.descriptor
78+
isCopied = true
79+
showCheckmark = true
80+
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
81+
isCopied = false
82+
showCheckmark = false
83+
}
84+
} label: {
85+
HStack {
86+
Image(
87+
systemName: showCheckmark
88+
? "document.on.document.fill" : "document.on.document"
89+
)
90+
.contentTransition(.symbolEffect(.replace))
91+
Text("Descriptor")
92+
.bold()
93+
}
94+
}
95+
.buttonStyle(
96+
BitcoinFilled(
97+
width: 160,
98+
height: 40,
99+
tintColor: .primary,
100+
textColor: Color(uiColor: .systemBackground),
101+
isCapsule: true
102+
)
103+
)
104+
Spacer()
105+
}
73106
.padding()
74107
} else {
75108
Text("No seed available")

0 commit comments

Comments
 (0)