Skip to content

Commit 98f029e

Browse files
authored
Merge pull request #17829 from wordpress-mobile/task/msd-hide-segmented-control-for-self-hosted
My Site Dashboard: Hide segmented control for self-hosted sites
2 parents 8b61323 + 40ce517 commit 98f029e

1 file changed

Lines changed: 27 additions & 11 deletions

File tree

WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ class MySiteViewController: UIViewController, NoResultsViewHost {
1717
}
1818
}
1919

20+
private var isShowingDashboard: Bool {
21+
return segmentedControl.selectedSegmentIndex == Section.dashboard.rawValue
22+
}
23+
2024
private lazy var scrollView: UIScrollView = {
2125
let scrollView = UIScrollView()
2226
scrollView.translatesAutoresizingMaskIntoConstraints = false
@@ -41,8 +45,10 @@ class MySiteViewController: UIViewController, NoResultsViewHost {
4145
}()
4246

4347
private lazy var segmentedControl: UISegmentedControl = {
44-
let segmentedControl = UISegmentedControl()
48+
let segmentedControl = UISegmentedControl(items: Section.allCases.map { $0.title })
4549
segmentedControl.translatesAutoresizingMaskIntoConstraints = false
50+
segmentedControl.addTarget(self, action: #selector(segmentedControlValueChanged(_:)), for: .valueChanged)
51+
segmentedControl.selectedSegmentIndex = 0
4652
return segmentedControl
4753
}()
4854

@@ -82,6 +88,7 @@ class MySiteViewController: UIViewController, NoResultsViewHost {
8288

8389
addSitePickerIfNeeded(for: newBlog)
8490
showBlogDetails(for: newBlog)
91+
updateSegmentedControl(for: newBlog)
8592
}
8693

8794
get {
@@ -114,7 +121,6 @@ class MySiteViewController: UIViewController, NoResultsViewHost {
114121
setupView()
115122
setupConstraints()
116123
setupNavigationItem()
117-
setupSegmentedControl()
118124
subscribeToPostSignupNotifications()
119125
subscribeToModelChanges()
120126
}
@@ -156,16 +162,13 @@ class MySiteViewController: UIViewController, NoResultsViewHost {
156162
NotificationCenter.default.addObserver(self, selector: #selector(showAddSelfHostedSite), name: .addSelfHosted, object: nil)
157163
}
158164

159-
private func setupSegmentedControl() {
160-
segmentedControlContainerView.isHidden = !FeatureFlag.mySiteDashboard.enabled
161-
162-
segmentedControl.removeAllSegments()
163-
Section.allCases.forEach { section in
164-
segmentedControl.insertSegment(withTitle: section.title, at: section.rawValue, animated: false)
165+
private func updateSegmentedControl(for blog: Blog) {
166+
guard FeatureFlag.mySiteDashboard.enabled else {
167+
return
165168
}
166-
segmentedControl.selectedSegmentIndex = 0
167169

168-
segmentedControl.addTarget(self, action: #selector(segmentedControlValueChanged(_:)), for: .valueChanged)
170+
// The segmented control should be hidden if the blog is not a WP.com/Atomic/Jetpack site, or if the device is an iPad
171+
segmentedControlContainerView.isHidden = !blog.isAccessibleThroughWPCom() || UIDevice.isPad()
169172
}
170173

171174
private func setupView() {
@@ -288,6 +291,7 @@ class MySiteViewController: UIViewController, NoResultsViewHost {
288291

289292
addSitePickerIfNeeded(for: mainBlog)
290293
showBlogDetails(for: mainBlog)
294+
updateSegmentedControl(for: mainBlog)
291295
}
292296

293297
@objc
@@ -575,7 +579,18 @@ class MySiteViewController: UIViewController, NoResultsViewHost {
575579
let sitePickerViewController = SitePickerViewController(blog: blog, meScenePresenter: meScenePresenter)
576580

577581
sitePickerViewController.onBlogSwitched = { [weak self] blog in
578-
self?.updateChildViewController(for: blog)
582+
583+
guard let self = self else {
584+
return
585+
}
586+
587+
if !blog.isAccessibleThroughWPCom() && self.isShowingDashboard {
588+
self.segmentedControl.selectedSegmentIndex = Section.siteMenu.rawValue
589+
self.segmentedControl.sendActions(for: .valueChanged)
590+
}
591+
592+
self.updateSegmentedControl(for: blog)
593+
self.updateChildViewController(for: blog)
579594
}
580595

581596
return sitePickerViewController
@@ -589,6 +604,7 @@ class MySiteViewController: UIViewController, NoResultsViewHost {
589604
switch section {
590605
case .siteMenu:
591606
blogDetailsViewController?.blog = blog
607+
blogDetailsViewController?.showInitialDetailsForBlog()
592608
blogDetailsViewController?.tableView.reloadData()
593609
blogDetailsViewController?.preloadMetadata()
594610
case .dashboard:

0 commit comments

Comments
 (0)