From 80450edc2a0a2dbb0267ffd736753053f4ce214d Mon Sep 17 00:00:00 2001 From: grenos Date: Sun, 29 Mar 2020 16:46:23 +0200 Subject: [PATCH] userInfo modal, navigationBar --- GHFollowers.xcodeproj/project.pbxproj | 4 ++ .../UserInterfaceState.xcuserstate | Bin 52820 -> 53621 bytes GHFollowers/Screens/FollowerListVC.swift | 36 +++++++++++++++--- GHFollowers/Screens/UserInfoVC.swift | 32 ++++++++++++++++ 4 files changed, 66 insertions(+), 6 deletions(-) create mode 100644 GHFollowers/Screens/UserInfoVC.swift diff --git a/GHFollowers.xcodeproj/project.pbxproj b/GHFollowers.xcodeproj/project.pbxproj index 16a2c81..031afc9 100644 --- a/GHFollowers.xcodeproj/project.pbxproj +++ b/GHFollowers.xcodeproj/project.pbxproj @@ -28,6 +28,7 @@ 7DA45F71242BC5C100AB426F /* GFAvatarImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DA45F70242BC5C100AB426F /* GFAvatarImageView.swift */; }; 7DA45F73242E332000AB426F /* UIHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DA45F72242E332000AB426F /* UIHelper.swift */; }; 7DA45F7A242FB95700AB426F /* GFEmptyStateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DA45F79242FB95700AB426F /* GFEmptyStateView.swift */; }; + 7DA45F7C2430E3C900AB426F /* UserInfoVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DA45F7B2430E3C900AB426F /* UserInfoVC.swift */; }; 7DFAC88A242A86D200F5780C /* GFAlertContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DFAC889242A86D200F5780C /* GFAlertContainerView.swift */; }; /* End PBXBuildFile section */ @@ -55,6 +56,7 @@ 7DA45F70242BC5C100AB426F /* GFAvatarImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GFAvatarImageView.swift; sourceTree = ""; }; 7DA45F72242E332000AB426F /* UIHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIHelper.swift; sourceTree = ""; }; 7DA45F79242FB95700AB426F /* GFEmptyStateView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GFEmptyStateView.swift; sourceTree = ""; }; + 7DA45F7B2430E3C900AB426F /* UserInfoVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfoVC.swift; sourceTree = ""; }; 7DFAC889242A86D200F5780C /* GFAlertContainerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GFAlertContainerView.swift; sourceTree = ""; }; /* End PBXFileReference section */ @@ -107,6 +109,7 @@ 7D98BB3B24290771006C53E9 /* SearchVC.swift */, 7D98BB3D242907BB006C53E9 /* FavoriteListVC.swift */, 7D98BB43242A29B4006C53E9 /* FollowerListVC.swift */, + 7DA45F7B2430E3C900AB426F /* UserInfoVC.swift */, ); path = Screens; sourceTree = ""; @@ -300,6 +303,7 @@ 7DA45F6F242BC47D00AB426F /* FollowerCell.swift in Sources */, 7DA45F71242BC5C100AB426F /* GFAvatarImageView.swift in Sources */, 7D98BB48242A5507006C53E9 /* GFBodyLabel.swift in Sources */, + 7DA45F7C2430E3C900AB426F /* UserInfoVC.swift in Sources */, 7DA45F64242B73E600AB426F /* Follower.swift in Sources */, 7D98BB46242A52B7006C53E9 /* GFTitleLabel.swift in Sources */, 7D98BB4C242A7327006C53E9 /* UIViewController+EXT.swift in Sources */, diff --git a/GHFollowers.xcodeproj/project.xcworkspace/xcuserdata/vasilis.xcuserdatad/UserInterfaceState.xcuserstate b/GHFollowers.xcodeproj/project.xcworkspace/xcuserdata/vasilis.xcuserdatad/UserInterfaceState.xcuserstate index 751ff20a44374cdbfd8df330e17150741f627f54..5fd7a26c212abf1dbedbd3a2f9d2e4d23964807a 100644 GIT binary patch delta 22242 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 F3qM`32~Ge2 delta 21820 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 diff --git a/GHFollowers/Screens/FollowerListVC.swift b/GHFollowers/Screens/FollowerListVC.swift index 40a15d0..10e368e 100644 --- a/GHFollowers/Screens/FollowerListVC.swift +++ b/GHFollowers/Screens/FollowerListVC.swift @@ -24,6 +24,7 @@ class FollowerListVC: UIViewController { var page = 1 var hasMoreFollowers = true + var isSearching = false // takes 2 generic paraeters // both of them need to conform to hashable @@ -93,7 +94,9 @@ class FollowerListVC: UIViewController { // the items array that needs to check for changes snapshot.appendItems(followers) // applay the snapshots to the dataSource - dataSource.apply(snapshot, animatingDifferences: true) + DispatchQueue.main.async { + self.dataSource.apply(snapshot, animatingDifferences: true) + } } @@ -189,10 +192,25 @@ extension FollowerListVC: UICollectionViewDelegate { page += 1 getFollowers(username: username, page: page) } - - - } + + + // get the exact tapped item from the collection + func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { + // get the right array to use first + let activeArray = isSearching ? filteredFollowers : followers + //get the index of the tapped item + let follower = activeArray[indexPath.item] + + // Navigate to modal + let userInfoVC = UserInfoVC() + // pass the username to the modal to use at the user api call + userInfoVC.username = follower.login + // we put the modal inside a NavController so we could have the navigation buttons in the modal + let navController = UINavigationController(rootViewController: userInfoVC) + present(navController, animated: true) + } + } @@ -202,9 +220,11 @@ extension FollowerListVC: UISearchResultsUpdating, UISearchBarDelegate { // this informs the VC every time the search results are changed func updateSearchResults(for searchController: UISearchController) { - guard let filter = searchController.searchBar.text, !filter.isEmpty else {return} + //set the switch on + isSearching = true + // get each item of the followers array // check if contains the text from the searchBar // append the return to the filteredFollowers array @@ -216,9 +236,13 @@ extension FollowerListVC: UISearchResultsUpdating, UISearchBarDelegate { updateData(on: filteredFollowers) } + // when cancel button is tapped update the collection View using the original follwers array func searchBarCancelButtonClicked(_ searchBar: UISearchBar) { - updateData(on: followers) + //set the switch on + isSearching = false + + updateData(on: followers) } diff --git a/GHFollowers/Screens/UserInfoVC.swift b/GHFollowers/Screens/UserInfoVC.swift new file mode 100644 index 0000000..8be29c8 --- /dev/null +++ b/GHFollowers/Screens/UserInfoVC.swift @@ -0,0 +1,32 @@ +// +// UserInfoVC.swift +// GHFollowers +// +// Created by Vasileios Gkreen on 29/03/2020. +// Copyright © 2020 Vasileios Gkreen. All rights reserved. +// + +import UIKit + +class UserInfoVC: UIViewController { + + // username gets passed here from FollowerListVC from function -- extension FollowerListVC: UICollectionViewDelegate -- + var username: String! + + override func viewDidLoad() { + super.viewDidLoad() + + view.backgroundColor = .systemBackground + // create done button for navigation + let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(dismissVC)) + // add button to navigation bar + navigationItem.rightBarButtonItem = doneButton + print(username!) + } + + @objc func dismissVC() { + dismiss(animated: true) + } + + +}