Skip to content

Commit 2f4f1a4

Browse files
authored
chore: refactor previews and utilities
1 parent 0093a96 commit 2f4f1a4

File tree

7 files changed

+57
-111
lines changed

7 files changed

+57
-111
lines changed

Sources/BitcoinUI/AddressFormattedView.swift

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public struct AddressFormattedView: View {
3636
),
3737
spacing: spacing
3838
) {
39-
let chunks = chunkedAddress()
39+
let chunks = address.chunked(into: 4)
4040
ForEach(chunks.indices, id: \.self) { index in
4141
Text(chunks[index])
4242
.font(.system(size: 20, weight: .medium, design: .monospaced))
@@ -46,27 +46,17 @@ public struct AddressFormattedView: View {
4646
}
4747
}
4848

49-
extension AddressFormattedView {
50-
private func chunkedAddress() -> [String] {
51-
let chunkSize = 4
52-
return stride(from: 0, to: address.count, by: chunkSize).map {
53-
let start = address.index(address.startIndex, offsetBy: $0)
54-
let end =
55-
address.index(start, offsetBy: chunkSize, limitedBy: address.endIndex)
56-
?? address.endIndex
57-
return String(address[start..<end])
58-
}
59-
}
60-
}
61-
6249
struct AddressFormattedView_Previews: PreviewProvider {
6350
static var previews: some View {
6451
AddressFormattedView(
65-
address: "tb1pw6y0vtmsn46epvz0j8ddc46ketmp28t82p22hcrrkch3a0jhu40qe267dl"
52+
address:
53+
"tb1pw6y0vtmsn46epvz0j8ddc46ketmp28t82p22hcrrkch3a0jhu40qe267dl"
6654
)
6755
}
6856
}
6957

7058
#Preview {
71-
AddressFormattedView(address: "tb1pw6y0vtmsn46epvz0j8ddc46ketmp28t82p22hcrrkch3a0jhu40qe267dl")
59+
AddressFormattedView(
60+
address: "tb1pw6y0vtmsn46epvz0j8ddc46ketmp28t82p22hcrrkch3a0jhu40qe267dl"
61+
)
7262
}

Sources/BitcoinUI/ButtonStyles.swift

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -282,11 +282,10 @@ struct ButtonStylesView: View {
282282

283283
struct ButtonStylesView_Previews: PreviewProvider {
284284
static var previews: some View {
285-
Group {
286-
ButtonStylesView()
287-
.environment(\.colorScheme, .light)
288-
ButtonStylesView()
289-
.environment(\.colorScheme, .dark)
290-
}
285+
ButtonStylesView()
291286
}
292287
}
288+
289+
#Preview {
290+
ButtonStylesView()
291+
}

Sources/BitcoinUI/Colors.swift

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -451,12 +451,10 @@ struct ColorsView: View {
451451

452452
struct ColorsView_Previews: PreviewProvider {
453453
static var previews: some View {
454-
Group {
455-
ColorsView()
456-
.environment(\.colorScheme, .light)
457-
ColorsView()
458-
.environment(\.colorScheme, .dark)
459-
460-
}
454+
ColorsView()
461455
}
462456
}
457+
458+
#Preview {
459+
ColorsView()
460+
}

Sources/BitcoinUI/Images.swift

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -118,11 +118,10 @@ struct IconsView: View {
118118

119119
struct IconsView_Previews: PreviewProvider {
120120
static var previews: some View {
121-
Group {
122-
IconsView()
123-
.environment(\.colorScheme, .light)
124-
IconsView()
125-
.environment(\.colorScheme, .dark)
126-
}
121+
IconsView()
127122
}
128123
}
124+
125+
#Preview {
126+
IconsView()
127+
}

Sources/BitcoinUI/SeedPhraseView.swift

Lines changed: 13 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -128,11 +128,19 @@ struct WordCapsule: View {
128128
}
129129
}
130130

131-
extension Array {
132-
func chunked(into size: Int) -> [[Element]] {
133-
stride(from: 0, to: count, by: size).map {
134-
Array(self[$0..<Swift.min($0 + size, count)])
135-
}
131+
struct SeedPhraseView_Previews: PreviewProvider {
132+
static var previews: some View {
133+
SeedPhraseView(
134+
words: [
135+
"paddle", "train", "boil", "catch", "trim", "plastic",
136+
"wolf", "hazard", "govern", "oval", "drama", "gun",
137+
"swim", "accuse", "degree", "teach", "game", "penalty",
138+
"social", "hard", "crush", "media", "radar", "click",
139+
],
140+
preferredWordsPerRow: 2,
141+
usePaging: true,
142+
wordsPerPage: 4
143+
)
136144
}
137145
}
138146

@@ -149,68 +157,3 @@ extension Array {
149157
wordsPerPage: 4
150158
)
151159
}
152-
153-
#Preview {
154-
SeedPhraseView(
155-
words: [
156-
"apple", "banana", "cherry", "date", "elderberry", "fig", "grape", "honeydew", "kiwi",
157-
"lemon", "mango", "nectarine",
158-
],
159-
preferredWordsPerRow: 3
160-
)
161-
}
162-
163-
#Preview {
164-
SeedPhraseView(
165-
words: [
166-
"apple", "banana", "cherry", "date", "elderberry", "fig", "grape", "honeydew", "kiwi",
167-
"lemon", "mango", "nectarine",
168-
],
169-
preferredWordsPerRow: 3
170-
)
171-
}
172-
173-
#Preview {
174-
SeedPhraseView(
175-
words: [
176-
"apple", "banana", "cherry", "date", "elderberry", "fig", "grape", "honeydew", "kiwi",
177-
"lemon", "mango", "nectarine",
178-
],
179-
preferredWordsPerRow: 3,
180-
usePaging: true
181-
)
182-
}
183-
184-
#Preview {
185-
SeedPhraseView(
186-
words: [
187-
"apple", "banana", "cherry", "date", "elderberry", "fig", "grape", "honeydew", "kiwi",
188-
"lemon", "mango", "nectarine",
189-
],
190-
preferredWordsPerRow: 2
191-
)
192-
}
193-
194-
#Preview {
195-
SeedPhraseView(
196-
words: [
197-
"apple", "banana", "cherry", "date", "elderberry", "fig", "grape", "honeydew", "kiwi",
198-
"lemon", "mango", "nectarine",
199-
],
200-
preferredWordsPerRow: 4
201-
)
202-
}
203-
204-
struct SeedPhraseView_Previews: PreviewProvider {
205-
static var previews: some View {
206-
Group {
207-
SeedPhraseView(
208-
words: [
209-
"apple", "banana", "cherry", "date", "elderberry", "fig", "grape", "honeydew",
210-
"kiwi", "lemon", "mango", "nectarine",
211-
],
212-
preferredWordsPerRow: 3
213-
)
214-
}
215-
}
216-
}

Sources/BitcoinUI/TextStyles.swift

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -171,11 +171,10 @@ struct TextStylesView: View {
171171

172172
struct TextStylesView_Previews: PreviewProvider {
173173
static var previews: some View {
174-
Group {
175-
TextStylesView()
176-
.environment(\.colorScheme, .light)
177-
TextStylesView()
178-
.environment(\.colorScheme, .dark)
179-
}
174+
TextStylesView()
180175
}
181176
}
177+
178+
#Preview {
179+
TextStylesView()
180+
}

Sources/BitcoinUI/Utilities.swift

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,14 @@
88
import Foundation
99
import SwiftUI
1010

11+
extension Array {
12+
func chunked(into size: Int) -> [[Element]] {
13+
stride(from: 0, to: count, by: size).map {
14+
Array(self[$0..<Swift.min($0 + size, count)])
15+
}
16+
}
17+
}
18+
1119
extension CGFloat {
1220

1321
// Choose horizontal spacing per Figma
@@ -22,6 +30,16 @@ extension CGFloat {
2230

2331
}
2432

33+
extension String {
34+
func chunked(into size: Int) -> [String] {
35+
return stride(from: 0, to: self.count, by: size).map {
36+
let start = self.index(self.startIndex, offsetBy: $0)
37+
let end = self.index(start, offsetBy: size, limitedBy: self.endIndex) ?? self.endIndex
38+
return String(self[start..<end])
39+
}
40+
}
41+
}
42+
2543
extension View {
2644
func applyFidgetEffect(viewState: Binding<CGSize>) -> some View {
2745
self

0 commit comments

Comments
 (0)