Skip to content

Commit 864886e

Browse files
committed
feat: 검색 액션의 빈 문자열 방어 로직 추가
1 parent f3f3ca9 commit 864886e

2 files changed

Lines changed: 15 additions & 2 deletions

File tree

DevLog/Presentation/ViewModel/SearchViewModel.swift

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,14 @@ final class SearchViewModel: Store {
122122
effects = [.cancelSearch, .debounceFetch(trimmed)]
123123
}
124124
case .applySearchQuery(let query):
125-
effects = [.fetch(query)]
125+
let trimmed = query.trimmingCharacters(in: .whitespacesAndNewlines)
126+
if trimmed.isEmpty {
127+
state.webPages = []
128+
state.todos = []
129+
effects = [.cancelSearch]
130+
} else {
131+
effects = [.fetch(trimmed)]
132+
}
126133
case .setShowAllTodos(let shouldShowAll):
127134
state.showAllTodos = shouldShowAll
128135
case .setShowAllWebPages(let shouldShowAll):

DevLog/Presentation/ViewModel/TodoListViewModel.swift

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,13 @@ private extension TodoListViewModel {
372372
func reduceByRun(_ action: Action, state: inout State) -> [SideEffect] {
373373
switch action {
374374
case .applySearchQuery(let query):
375-
return [.search(query)]
375+
let trimmed = query.trimmingCharacters(in: .whitespacesAndNewlines)
376+
if trimmed.isEmpty {
377+
state.searchResults = []
378+
return [.cancelSearch]
379+
} else {
380+
return [.search(trimmed)]
381+
}
376382
case .fetchSearchResults(let items):
377383
state.searchResults = items
378384
case .didToggleCompleted(let todo):

0 commit comments

Comments
 (0)