From 0b2582a26fff462c2f5e60cf2cb72e5556dc5032 Mon Sep 17 00:00:00 2001 From: grenos Date: Sat, 28 Mar 2020 19:35:52 +0100 Subject: [PATCH] Loading and Emprty state views --- GHFollowers.xcodeproj/project.pbxproj | 56 +++++++++++++-- .../UserInterfaceState.xcuserstate | Bin 51980 -> 52889 bytes .../Components/{ => Buttons}/GFButton.swift | 0 .../{ => ImageViews}/GFAvatarImageView.swift | 0 .../Components/{ => Labels}/GFBodyLabel.swift | 0 .../{ => Labels}/GFTitleLabel.swift | 0 .../{ => TextFields}/GFTextField.swift | 0 .../{ => Views}/GFAlertContainerView.swift | 0 .../Components/Views/GFEmptyStateView.swift | 64 ++++++++++++++++++ .../Extensions/UIViewController+EXT.swift | 59 +++++++++++++++- GHFollowers/Screens/FollowerListVC.swift | 19 +++++- 11 files changed, 190 insertions(+), 8 deletions(-) rename GHFollowers/Components/{ => Buttons}/GFButton.swift (100%) rename GHFollowers/Components/{ => ImageViews}/GFAvatarImageView.swift (100%) rename GHFollowers/Components/{ => Labels}/GFBodyLabel.swift (100%) rename GHFollowers/Components/{ => Labels}/GFTitleLabel.swift (100%) rename GHFollowers/Components/{ => TextFields}/GFTextField.swift (100%) rename GHFollowers/Components/{ => Views}/GFAlertContainerView.swift (100%) create mode 100644 GHFollowers/Components/Views/GFEmptyStateView.swift diff --git a/GHFollowers.xcodeproj/project.pbxproj b/GHFollowers.xcodeproj/project.pbxproj index b6e5947..16a2c81 100644 --- a/GHFollowers.xcodeproj/project.pbxproj +++ b/GHFollowers.xcodeproj/project.pbxproj @@ -27,6 +27,7 @@ 7DA45F6F242BC47D00AB426F /* FollowerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DA45F6E242BC47D00AB426F /* FollowerCell.swift */; }; 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 */; }; 7DFAC88A242A86D200F5780C /* GFAlertContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DFAC889242A86D200F5780C /* GFAlertContainerView.swift */; }; /* End PBXBuildFile section */ @@ -53,6 +54,7 @@ 7DA45F6E242BC47D00AB426F /* FollowerCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FollowerCell.swift; sourceTree = ""; }; 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 = ""; }; 7DFAC889242A86D200F5780C /* GFAlertContainerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GFAlertContainerView.swift; sourceTree = ""; }; /* End PBXFileReference section */ @@ -112,13 +114,12 @@ 7D98BB4E242A7BD5006C53E9 /* Components */ = { isa = PBXGroup; children = ( + 7DA45F78242FB8DB00AB426F /* Labels */, + 7DA45F77242FB8C300AB426F /* ImageViews */, + 7DA45F76242FB8A000AB426F /* TextFields */, + 7DA45F75242FB89900AB426F /* Buttons */, + 7DA45F74242FB89100AB426F /* Views */, 7DA45F6D242BC44F00AB426F /* Cells */, - 7D98BB3F242917E4006C53E9 /* GFButton.swift */, - 7D98BB4124291DF3006C53E9 /* GFTextField.swift */, - 7D98BB45242A52B7006C53E9 /* GFTitleLabel.swift */, - 7D98BB47242A5507006C53E9 /* GFBodyLabel.swift */, - 7DFAC889242A86D200F5780C /* GFAlertContainerView.swift */, - 7DA45F70242BC5C100AB426F /* GFAvatarImageView.swift */, ); path = Components; sourceTree = ""; @@ -176,6 +177,48 @@ path = Cells; sourceTree = ""; }; + 7DA45F74242FB89100AB426F /* Views */ = { + isa = PBXGroup; + children = ( + 7DFAC889242A86D200F5780C /* GFAlertContainerView.swift */, + 7DA45F79242FB95700AB426F /* GFEmptyStateView.swift */, + ); + path = Views; + sourceTree = ""; + }; + 7DA45F75242FB89900AB426F /* Buttons */ = { + isa = PBXGroup; + children = ( + 7D98BB3F242917E4006C53E9 /* GFButton.swift */, + ); + path = Buttons; + sourceTree = ""; + }; + 7DA45F76242FB8A000AB426F /* TextFields */ = { + isa = PBXGroup; + children = ( + 7D98BB4124291DF3006C53E9 /* GFTextField.swift */, + ); + path = TextFields; + sourceTree = ""; + }; + 7DA45F77242FB8C300AB426F /* ImageViews */ = { + isa = PBXGroup; + children = ( + 7DA45F70242BC5C100AB426F /* GFAvatarImageView.swift */, + ); + path = ImageViews; + sourceTree = ""; + }; + 7DA45F78242FB8DB00AB426F /* Labels */ = { + isa = PBXGroup; + children = ( + 7D98BB45242A52B7006C53E9 /* GFTitleLabel.swift */, + 7D98BB47242A5507006C53E9 /* GFBodyLabel.swift */, + ); + path = Labels; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -251,6 +294,7 @@ 7D98BB3E242907BB006C53E9 /* FavoriteListVC.swift in Sources */, 7D98BB40242917E4006C53E9 /* GFButton.swift in Sources */, 7D98BB3C24290771006C53E9 /* SearchVC.swift in Sources */, + 7DA45F7A242FB95700AB426F /* GFEmptyStateView.swift in Sources */, 7D98BB4A242A55ED006C53E9 /* GFAlertVC.swift in Sources */, 7DA45F66242B760500AB426F /* User.swift in Sources */, 7DA45F6F242BC47D00AB426F /* FollowerCell.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 b762ac75985e2c28c1a5f0c8d9d2a23304f55ad0..18bca153eace59d913496fd9cb12f2fe9cf1ac80 100644 GIT binary patch delta 24761 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

C{hIiw>OeTqIuyU-rA50#?|RE4Th zEjo@)qEn~|T|q6V4Lw2~xD)P-yW(gZgJW?V9)t(up?Cxyg_H4QJQb(m8F(hn!i#Yp zUWQlTBD@B#!zH*Bi&)1l{uF!ZD}2(if)vW;vfJIQYH4^lx6kt3vvRFfLgKrWM?$u)9={7P<< zyM*g7JDHu$uI4jlceAJYycui8nS;#1<`6TqwHim&7NV;wCCHa?T>9@e`0U4x7dg68oR+hZJ)6l?PmMB-D2Og zZ`;4or)YQjGL5DE=&Lk=rqJDa85W^oc2)n&>NwYP)5iIg+g0HyF&*Snpw?mYK>H^*J-=DMrh63*S=mbsiOyQ-_X#I@W?w}tg) z{a8GEo29VvY$8i#=`53Fv1~S%&1Z{QA^V7}XCJdt2ARZy3^Sd%Y!lnX_OnCm2&-b% z><3oI>e*>_mR(@i!e*F;KMR+K{qTWsMfgzoNVqCo7p@OCgg2fI{}etSz7W3TMS1aF zmRIVDp5}$TPrU8k9)E0&#d1Jpcdz delta 24138 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 capture list // when a self becomes weak the value of that becomes optional + + // show activity indicator before the network call --- EXTENSIONS FILE --- + showLoadingView() + NetworkManager.shared.getFollowers(for: username, page: page) { [weak self] result in // instead of adding self?. to all values below use guard for the self guard let self = self else { return } + // call to dismiss the loading indicator --- EXTENSIONS FILE --- + self.dismissLoadingView() + switch result { case .success(let followers): // if no more follower turn switch off @@ -114,6 +121,17 @@ class FollowerListVC: UIViewController { // save the response in the followers array we declared and use append to save the next 100 results (concat, push) self.followers.append(contentsOf: followers) // call update data to keep the list updated with latest response + + // control if array is returned empty and show empty state view + if self.followers.isEmpty { + let message = "This user doesn't have any followers. Go follow them! 😜" + DispatchQueue.main.async { + self.showEmptyStateView(with: message, in: self.view) + } + return + } + + // call to update snapshot self.updateData() case .failure(let error): @@ -138,7 +156,6 @@ extension FollowerListVC: UICollectionViewDelegate { // get height of scrollView on screen let scrollViewHeight = scrollView.frame.size.height - // if our offset is more than the entire scroll distance plus the screenheight // it means we reached the end so we need to call the next page if offsetY > contentHeight - scrollViewHeight {