Skip to content

Commit bbdb5a4

Browse files
Merge pull request #51 from vitor-scheffer/origin/searchController-AddressSearch
Add searchController na AddressSearchViewController
2 parents dee09dd + 58f625c commit bbdb5a4

File tree

6 files changed

+111
-12
lines changed

6 files changed

+111
-12
lines changed

solutions/devsprint-fernando-monteiro-1/DeliveryApp.xcodeproj/project.pbxproj

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@
77
objects = {
88

99
/* Begin PBXBuildFile section */
10-
11-
97B2F87C293FFEF100E49738 /* SnapshotTesting in Frameworks */ = {isa = PBXBuildFile; productRef = 97B2F87B293FFEF100E49738 /* SnapshotTesting */; };
1210
32A679FB293F939F005433A7 /* UIView+Preview.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32A679FA293F939F005433A7 /* UIView+Preview.swift */; };
1311
32A679FD293F942F005433A7 /* UIViewController+Preview.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32A679FC293F942F005433A7 /* UIViewController+Preview.swift */; };
12+
9755F06E294D1A1F00264AE4 /* Category.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9755F06D294D1A1F00264AE4 /* Category.swift */; };
13+
9755F070294D1B1D00264AE4 /* AddressSearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9755F06F294D1B1D00264AE4 /* AddressSearchView.swift */; };
14+
97B2F87C293FFEF100E49738 /* SnapshotTesting in Frameworks */ = {isa = PBXBuildFile; productRef = 97B2F87B293FFEF100E49738 /* SnapshotTesting */; };
1415
98228D7D27BC489F006A38BB /* Address.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98228D7C27BC489F006A38BB /* Address.swift */; };
1516
98228D7F27BC490E006A38BB /* RestaurantDetails.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98228D7E27BC490E006A38BB /* RestaurantDetails.swift */; };
1617
983271C6272752B50010C63A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 983271C5272752B50010C63A /* Assets.xcassets */; };
@@ -80,6 +81,8 @@
8081
/* Begin PBXFileReference section */
8182
32A679FA293F939F005433A7 /* UIView+Preview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIView+Preview.swift"; sourceTree = "<group>"; };
8283
32A679FC293F942F005433A7 /* UIViewController+Preview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIViewController+Preview.swift"; sourceTree = "<group>"; };
84+
9755F06D294D1A1F00264AE4 /* Category.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Category.swift; sourceTree = "<group>"; };
85+
9755F06F294D1B1D00264AE4 /* AddressSearchView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddressSearchView.swift; sourceTree = "<group>"; };
8386
98228D7C27BC489F006A38BB /* Address.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Address.swift; sourceTree = "<group>"; };
8487
98228D7E27BC490E006A38BB /* RestaurantDetails.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RestaurantDetails.swift; sourceTree = "<group>"; };
8588
983271B9272752AF0010C63A /* DeliveryApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DeliveryApp.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -272,6 +275,7 @@
272275
98C4368627ADAEA500D9048A /* Restaurant.swift */,
273276
98228D7C27BC489F006A38BB /* Address.swift */,
274277
98228D7E27BC490E006A38BB /* RestaurantDetails.swift */,
278+
9755F06D294D1A1F00264AE4 /* Category.swift */,
275279
);
276280
path = Models;
277281
sourceTree = "<group>";
@@ -307,6 +311,7 @@
307311
isa = PBXGroup;
308312
children = (
309313
98EA055A272A092F007B0228 /* AddressSearchViewController.swift */,
314+
9755F06F294D1B1D00264AE4 /* AddressSearchView.swift */,
310315
98C4368427ADAE4A00D9048A /* AddressListView.swift */,
311316
);
312317
path = AddressSearch;
@@ -481,7 +486,9 @@
481486
98AF572227ADB16E00339A66 /* AppDelegate.swift in Sources */,
482487
32A679FD293F942F005433A7 /* UIViewController+Preview.swift in Sources */,
483488
32A679FB293F939F005433A7 /* UIView+Preview.swift in Sources */,
489+
9755F070294D1B1D00264AE4 /* AddressSearchView.swift in Sources */,
484490
98AF573627ADB34C00339A66 /* DebugViewController.swift in Sources */,
491+
9755F06E294D1A1F00264AE4 /* Category.swift in Sources */,
485492
98AF572327ADB16E00339A66 /* SceneDelegate.swift in Sources */,
486493
98E5E05B293927A700E59E56 /* RestaurantInfoView.swift in Sources */,
487494
98E5E04A2939273200E59E56 /* LoadingView.swift in Sources */,

solutions/devsprint-fernando-monteiro-1/DeliveryApp/Models/Category.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,9 @@
22
// Category.swift
33
// DeliveryApp
44
//
5-
// Created by Christian Rezende on 13/12/22.
5+
// Created by José Vitor Scheffer Boff dos Santos on 16/12/22.
66
//
77

8-
98
import Foundation
109

1110
struct Category: Decodable {

solutions/devsprint-fernando-monteiro-1/DeliveryApp/Screens/AddressSearch/AddressListView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import UIKit
99

10-
class AddressListView: UIView {
10+
class AddressListView: UITableView {
1111

1212
func updateView(with addresses: [Address]) {
1313

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
//
2+
// AddressSearchView.swift
3+
// DeliveryApp
4+
//
5+
// Created by José Vitor Scheffer Boff dos Santos on 16/12/22.
6+
//
7+
8+
import UIKit
9+
10+
final class AddressSearchView: UIView {
11+
12+
private let addressCellIdentifier = "AddressCellView"
13+
14+
private var addresses: [Address] = []
15+
16+
lazy var tableView: AddressListView = {
17+
let tableView = AddressListView()
18+
19+
tableView.translatesAutoresizingMaskIntoConstraints = false
20+
return tableView
21+
}()
22+
23+
init() {
24+
25+
super.init(frame: .zero)
26+
27+
self.setupViews()
28+
}
29+
30+
required init?(coder: NSCoder) {
31+
fatalError("init(coder:) has not been implemented")
32+
}
33+
34+
func updateView() {
35+
36+
self.tableView.reloadData()
37+
}
38+
}
39+
40+
private extension AddressSearchView {
41+
42+
func setupViews() {
43+
44+
self.backgroundColor = .white
45+
46+
self.configureSubviews()
47+
self.configureSubviewsConstraints()
48+
}
49+
50+
func configureSubviews() {
51+
52+
}
53+
54+
func configureSubviewsConstraints() {
55+
56+
NSLayoutConstraint.activate([
57+
58+
])
59+
}
60+
}
61+
62+
#if DEBUG
63+
import SwiftUI
64+
65+
struct AddressSearchView_Preview: PreviewProvider {
66+
static var previews: some View {
67+
let addressSearchView = AddressSearchView()
68+
69+
return addressSearchView.showPreview()
70+
}
71+
}
72+
#endif

solutions/devsprint-fernando-monteiro-1/DeliveryApp/Screens/AddressSearch/AddressSearchViewController.swift

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,29 @@
88
import UIKit
99

1010
class AddressSearchViewController: UIViewController {
11+
12+
private let searchController = UISearchController()
1113

1214
private let deliveryApi = DeliveryApi()
1315

14-
private let addressListView: AddressListView = {
15-
16-
let addressListView = AddressListView()
17-
return addressListView
16+
private lazy var addressSearchView: AddressSearchView = {
17+
let addressSearchView = AddressSearchView()
18+
19+
return addressSearchView
1820
}()
1921

2022
init() {
2123
super.init(nibName: nil, bundle: nil)
2224

25+
navigationItem.title = "Search"
2326
}
2427

2528
required init?(coder: NSCoder) {
2629
fatalError("init(coder:) has not been implemented")
2730
}
2831

2932
override func loadView() {
30-
self.view = addressListView
33+
self.view = addressSearchView
3134
}
3235

3336
override func viewDidLoad() {
@@ -39,9 +42,27 @@ class AddressSearchViewController: UIViewController {
3942
}
4043

4144
DispatchQueue.main.async {
45+
let tableView = self.addressSearchView.tableView
4246

43-
self.addressListView.updateView(with: addresses)
47+
tableView.updateView(with: addresses)
4448
}
4549
}
50+
51+
configSearchBar()
52+
}
53+
54+
private func configSearchBar() {
55+
navigationItem.searchController = searchController
56+
searchController.searchBar.placeholder = "Rua, número, bairro"
57+
}
58+
}
59+
60+
#if DEBUG
61+
import SwiftUI
62+
63+
struct AddressSearchViewController_Preview: PreviewProvider {
64+
static var previews: some View {
65+
AddressSearchViewController().showPreview()
4666
}
4767
}
68+
#endif

solutions/devsprint-fernando-monteiro-1/DeliveryApp/Screens/Components/AddressCellView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@
77

88
import UIKit
99

10-
class AddressCellView: UIView {
10+
class AddressCellView: UITableViewCell {
1111

1212
}

0 commit comments

Comments
 (0)