comparison LazyBear/Views/Search/SearchView.swift @ 417:5f21f7c23c5e

Add comments and clean code
author Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
date Fri, 11 Jun 2021 11:37:42 +0200
parents 0a4c399170c4
children 8c58ce834d95
comparison
equal deleted inserted replaced
416:1662a41e2c1a 417:5f21f7c23c5e
38 } 38 }
39 .navigationTitle("Search") 39 .navigationTitle("Search")
40 .navigationBarTitleDisplayMode(.inline) 40 .navigationBarTitleDisplayMode(.inline)
41 .navigationBarSearch($searchedText) 41 .navigationBarSearch($searchedText)
42 .onChange(of: searchedText, perform: { searchedText in 42 .onChange(of: searchedText, perform: { searchedText in
43 if !searchedText.isEmpty { 43 encodeAndRequest(searchedText)
44 // Encode string with spaces
45 let encodedSearchedText = searchedText.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed)
46 search.request("https://api.lazybear.app/search/text=\(encodedSearchedText ?? "")")
47 } else {
48 search.showSearchList = false
49 }
50 }) 44 })
51 } 45 }
52 .navigationViewStyle(StackNavigationViewStyle()) 46 .navigationViewStyle(StackNavigationViewStyle())
47 }
48
49 /*
50 1) Check if searchedText is empty
51 2) Encode white spaces
52 3) Make API request
53 */
54 private func encodeAndRequest(_ searchedText: String) {
55 if !searchedText.isEmpty {
56 let encodedSearchedText = searchedText.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed)
57 search.request("https://api.lazybear.app/search/text=\(encodedSearchedText ?? "")")
58 } else {
59 search.showSearchList = false
60 }
53 } 61 }
54 } 62 }
55 63
56 struct SearchView_Previews: PreviewProvider { 64 struct SearchView_Previews: PreviewProvider {
57 static var previews: some View { 65 static var previews: some View {