Skip to content

Commit 0000165

Browse files
committed
Move MaxWidthModifier to separate file for reusing
1 parent f37d7b4 commit 0000165

File tree

3 files changed

+29
-26
lines changed

3 files changed

+29
-26
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import SwiftUI
2+
3+
struct MaxWidthPreferenceKey: PreferenceKey {
4+
static var defaultValue: CGFloat? = nil
5+
6+
static func reduce(value: inout CGFloat?, nextValue: () -> CGFloat?) {
7+
if let nv = nextValue(), nv > value ?? .zero {
8+
value = nv
9+
}
10+
}
11+
}
12+
13+
struct MaxWidthModifier: ViewModifier {
14+
private var sizeView: some View {
15+
GeometryReader { geometry in
16+
Color.clear
17+
.preference(key: MaxWidthPreferenceKey.self,
18+
value: geometry.size.width)
19+
}
20+
}
21+
22+
func body(content: Content) -> some View {
23+
content.background(sizeView)
24+
}
25+
}

WooCommerce/Classes/ViewRelated/ReusableViews/SwiftUI Components/TitleAndTextFieldRow.swift

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -68,32 +68,6 @@ private extension TitleAndTextFieldRow {
6868
}
6969
}
7070

71-
/// PreferenceKey to store max title width among the fields.
72-
///
73-
struct MaxWidthPreferenceKey: PreferenceKey {
74-
static var defaultValue: CGFloat? = nil
75-
76-
static func reduce(value: inout CGFloat?, nextValue: () -> CGFloat?) {
77-
if let nv = nextValue(), nv > value ?? .zero {
78-
value = nv
79-
}
80-
}
81-
}
82-
83-
private struct MaxWidthModifier: ViewModifier {
84-
private var sizeView: some View {
85-
GeometryReader { geometry in
86-
Color.clear
87-
.preference(key: MaxWidthPreferenceKey.self,
88-
value: geometry.size.width)
89-
}
90-
}
91-
92-
func body(content: Content) -> some View {
93-
content.background(sizeView)
94-
}
95-
}
96-
9771
struct TitleAndTextFieldRow_Previews: PreviewProvider {
9872
static var previews: some View {
9973
TitleAndTextFieldRow(title: "Add your text",

WooCommerce/WooCommerce.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1033,6 +1033,7 @@
10331033
AE7C957B27C3D5DA007E8E12 /* FeeLineDetails.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE7C957A27C3D5DA007E8E12 /* FeeLineDetails.swift */; };
10341034
AE7C957D27C3F187007E8E12 /* FeeLineDetailsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE7C957C27C3F187007E8E12 /* FeeLineDetailsViewModel.swift */; };
10351035
AE7C957F27C417FA007E8E12 /* FeeLineDetailsViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE7C957E27C417FA007E8E12 /* FeeLineDetailsViewModelTests.swift */; };
1036+
AE8AEA8628084EC90054BDA2 /* MaxWidthPreference.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE8AEA8528084EC90054BDA2 /* MaxWidthPreference.swift */; };
10361037
AE90475C27A99D6000073E1D /* CreateOrderAddressFormViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE90475B27A99D6000073E1D /* CreateOrderAddressFormViewModelTests.swift */; };
10371038
AE9E04752776213E003FA09E /* OrderCustomerSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE9E04742776213E003FA09E /* OrderCustomerSection.swift */; };
10381039
AEA3F90D27BE76B300B9F555 /* ShippingLineDetails.swift in Sources */ = {isa = PBXBuildFile; fileRef = AEA3F90C27BE76B300B9F555 /* ShippingLineDetails.swift */; };
@@ -2705,6 +2706,7 @@
27052706
AE7C957A27C3D5DA007E8E12 /* FeeLineDetails.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeeLineDetails.swift; sourceTree = "<group>"; };
27062707
AE7C957C27C3F187007E8E12 /* FeeLineDetailsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeeLineDetailsViewModel.swift; sourceTree = "<group>"; };
27072708
AE7C957E27C417FA007E8E12 /* FeeLineDetailsViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeeLineDetailsViewModelTests.swift; sourceTree = "<group>"; };
2709+
AE8AEA8528084EC90054BDA2 /* MaxWidthPreference.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MaxWidthPreference.swift; sourceTree = "<group>"; };
27082710
AE90475B27A99D6000073E1D /* CreateOrderAddressFormViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateOrderAddressFormViewModelTests.swift; sourceTree = "<group>"; };
27092711
AE9E04742776213E003FA09E /* OrderCustomerSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderCustomerSection.swift; sourceTree = "<group>"; };
27102712
AEA3F90C27BE76B300B9F555 /* ShippingLineDetails.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShippingLineDetails.swift; sourceTree = "<group>"; };
@@ -5268,6 +5270,7 @@
52685270
45DB703F261209B10064A6CF /* ItemToFulfillRow.swift */,
52695271
45DB704926121F3C0064A6CF /* TitleAndValueRow.swift */,
52705272
45DB705926124C710064A6CF /* TitleAndTextFieldRow.swift */,
5273+
AE8AEA8528084EC90054BDA2 /* MaxWidthPreference.swift */,
52715274
CC4A4FF026557D0E00B75DCD /* TitleAndToggleRow.swift */,
52725275
DE77889726FCA39B008DFF44 /* TitleAndSubtitleRow.swift */,
52735276
45CE2D842625D7ED00E3CA00 /* SelectableItemRow.swift */,
@@ -9291,6 +9294,7 @@
92919294
4541D88A270718F6005A9E30 /* ShippingLabelCarriersSectionViewModel.swift in Sources */,
92929295
77E53EBF2510C153003D385F /* ProductDownloadListViewModel.swift in Sources */,
92939296
B910686027F1F28F00AD0575 /* GhostableViewController.swift in Sources */,
9297+
AE8AEA8628084EC90054BDA2 /* MaxWidthPreference.swift in Sources */,
92949298
DE19BB1A26C3B5DC00AB70D9 /* ShippingLabelCustomsFormItemDetailsViewModel.swift in Sources */,
92959299
2667BFE52530DCF4008099D4 /* RefundItemsValuesCalculationUseCase.swift in Sources */,
92969300
B55BC1F121A878A30011A0C0 /* String+HTML.swift in Sources */,

0 commit comments

Comments
 (0)