Skip to content

Commit 42d811f

Browse files
committed
Replace DomainSelectorViewModel.placeholderImage with searchTerm check to show a placeholder image.
1 parent 0b0d34c commit 42d811f

File tree

3 files changed

+3
-44
lines changed

3 files changed

+3
-44
lines changed

WooCommerce/Classes/ViewRelated/Dashboard/Settings/Domains/DomainSelectorView.swift

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,12 +108,11 @@ struct DomainSelectorView: View {
108108
.bodyStyle()
109109
.padding(.horizontal, Layout.defaultHorizontalPadding)
110110

111-
// Domain results.
112-
if let placeholderImage = viewModel.placeholderImage {
111+
if viewModel.searchTerm.isEmpty {
113112
// Placeholder image when search query is empty.
114113
HStack {
115114
Spacer()
116-
Image(uiImage: placeholderImage)
115+
Image(uiImage: .domainSearchPlaceholderImage)
117116
Spacer()
118117
}
119118
} else if viewModel.isLoadingDomainSuggestions {

WooCommerce/Classes/ViewRelated/Dashboard/Settings/Domains/DomainSelectorViewModel.swift

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,6 @@ final class DomainSelectorViewModel: ObservableObject {
1818
/// Whether domain suggestions are being loaded.
1919
@Published private(set) var isLoadingDomainSuggestions: Bool = false
2020

21-
/// Placeholder image is set when the search term is empty. Otherwise, the placeholder image is `nil`.
22-
@Published private(set) var placeholderImage: UIImage?
23-
2421
/// Subscription for search query changes for domain search.
2522
private var searchQuerySubscription: AnyCancellable?
2623

@@ -44,19 +41,15 @@ final class DomainSelectorViewModel: ObservableObject {
4441

4542
private extension DomainSelectorViewModel {
4643
func observeDomainQuery() {
47-
let searchTermPublisher = $searchTerm
44+
searchQuerySubscription = $searchTerm
4845
.map { $0.trimmingCharacters(in: .whitespacesAndNewlines) }
4946
.debounce(for: .seconds(debounceDuration), scheduler: DispatchQueue.main)
50-
.share()
51-
52-
searchQuerySubscription = searchTermPublisher
5347
.filter { $0.isNotEmpty }
5448
.removeDuplicates()
5549
.sink { [weak self] searchTerm in
5650
guard let self = self else { return }
5751
Task { @MainActor in
5852
self.errorMessage = nil
59-
self.placeholderImage = nil
6053
self.isLoadingDomainSuggestions = true
6154
let result = await self.loadFreeDomainSuggestions(query: searchTerm)
6255
self.isLoadingDomainSuggestions = false
@@ -69,12 +62,6 @@ private extension DomainSelectorViewModel {
6962
}
7063
}
7164
}
72-
73-
searchTermPublisher
74-
.map {
75-
$0.isEmpty ? UIImage.domainSearchPlaceholderImage: nil
76-
}
77-
.assign(to: &$placeholderImage)
7865
}
7966

8067
@MainActor

WooCommerce/WooCommerceTests/ViewModels/Domains/DomainSelectorViewModelTests.swift

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -113,33 +113,6 @@ final class DomainSelectorViewModelTests: XCTestCase {
113113
}
114114
}
115115

116-
// MARK: - `placeholderImage`
117-
118-
func test_placeholderImage_is_not_nil_when_searchTerm_is_empty_initially() {
119-
// Then
120-
waitUntil {
121-
self.viewModel.placeholderImage != nil
122-
}
123-
}
124-
125-
func test_placeholderImage_is_nil_when_searchTerm_is_not_empty() {
126-
// When the search term is not empty
127-
viewModel.searchTerm = "woo"
128-
129-
// Then placeholder image is nil
130-
waitUntil {
131-
self.viewModel.placeholderImage == nil
132-
}
133-
134-
// When setting the search term to empty spaces
135-
viewModel.searchTerm = " "
136-
137-
// Then placeholder image is not nil
138-
waitUntil {
139-
self.viewModel.placeholderImage != nil
140-
}
141-
}
142-
143116
// MARK: `isLoadingDomainSuggestions`
144117

145118
func test_isLoadingDomainSuggestions_is_toggled_when_loading_suggestions() {

0 commit comments

Comments
 (0)