Skip to content

Commit 56c0346

Browse files
committed
Refactor POSSearchTextFieldStyle to a view modifier to avoid using private API _body.
1 parent 59b41b3 commit 56c0346

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

WooCommerce/Classes/POS/Presentation/Item Search/POSSearchTextFieldStyle.swift

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import SwiftUI
22
import WooFoundation
33

4-
/// Text field style for search fields that includes a magnifier icon and clear button
5-
struct POSSearchTextFieldStyle: TextFieldStyle {
4+
/// View modifier for search fields that includes a magnifier icon and clear button
5+
struct POSSearchTextFieldModifier: ViewModifier {
66
private let focused: Bool
77
@Binding private var searchTerm: String
88
@ScaledMetric private var searchFieldHeight: CGFloat = 56.0
@@ -12,8 +12,8 @@ struct POSSearchTextFieldStyle: TextFieldStyle {
1212
self._searchTerm = searchTerm
1313
}
1414

15-
func _body(configuration: TextField<Self._Label>) -> some View {
16-
configuration
15+
func body(content: Content) -> some View {
16+
content
1717
.textFieldStyle(WooRoundedBorderTextFieldStyle(
1818
focused: focused,
1919
focusedBorderColor: .posPrimary,
@@ -49,7 +49,13 @@ struct POSSearchTextFieldStyle: TextFieldStyle {
4949
}
5050
}
5151

52-
private extension POSSearchTextFieldStyle {
52+
extension View {
53+
func posSearchTextFieldStyle(focused: Bool, searchTerm: Binding<String>) -> some View {
54+
modifier(POSSearchTextFieldModifier(focused: focused, searchTerm: searchTerm))
55+
}
56+
}
57+
58+
private extension POSSearchTextFieldModifier {
5359
enum Localization {
5460
static let searchFieldClearButtonAccessibilityLabel = NSLocalizedString(
5561
"pos.searchview.searchField.clearButton.accessibilityLabel",

WooCommerce/Classes/POS/Presentation/Item Search/POSSearchView.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ struct POSSearchField: View {
4747
TextField(text: $searchTerm) {
4848
Text(searchable.searchFieldPlaceholder)
4949
}
50-
.textFieldStyle(POSSearchTextFieldStyle(focused: isSearchFieldFocused,
51-
searchTerm: $searchTerm))
50+
.posSearchTextFieldStyle(focused: isSearchFieldFocused,
51+
searchTerm: $searchTerm)
5252
.font(.posBodyLargeBold)
5353
.autocorrectionDisabled()
5454
.textInputAutocapitalization(.never)

0 commit comments

Comments
 (0)