File tree Expand file tree Collapse file tree
DevLog/Presentation/ViewModel Expand file tree Collapse file tree Original file line number Diff line number Diff 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) :
Original file line number Diff line number Diff 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) :
You can’t perform that action at this time.
0 commit comments