diff --git a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationDetailsViewController.swift b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationDetailsViewController.swift index b465a3d641fd..0d9329260f00 100644 --- a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationDetailsViewController.swift +++ b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationDetailsViewController.swift @@ -919,10 +919,11 @@ private extension NotificationDetailsViewController { func displayUserProfile(_ user: LikeUser, from indexPath: IndexPath) { let userProfileVC = UserProfileSheetViewController(user: user) userProfileVC.blogUrlPreviewedSource = "notif_like_list_user_profile" - let bottomSheet = BottomSheetViewController(childViewController: userProfileVC) - - let sourceView = tableView.cellForRow(at: indexPath) ?? view - bottomSheet.show(from: self, sourceView: sourceView) + userProfileVC.modalPresentationStyle = .popover + userProfileVC.popoverPresentationController?.sourceView = tableView.cellForRow(at: indexPath) ?? view + userProfileVC.popoverPresentationController?.adaptiveSheetPresentationController.prefersGrabberVisible = true + userProfileVC.popoverPresentationController?.adaptiveSheetPresentationController.detents = [.medium()] + present(userProfileVC, animated: true) WPAnalytics.track(.userProfileSheetShown, properties: ["source": "like_notification_list"]) } diff --git a/WordPress/Classes/ViewRelated/Reader/Detail/Views/ReaderDetailLikesListController.swift b/WordPress/Classes/ViewRelated/Reader/Detail/Views/ReaderDetailLikesListController.swift index 218e3d6951c8..9d3e09b91dd0 100644 --- a/WordPress/Classes/ViewRelated/Reader/Detail/Views/ReaderDetailLikesListController.swift +++ b/WordPress/Classes/ViewRelated/Reader/Detail/Views/ReaderDetailLikesListController.swift @@ -55,9 +55,12 @@ private extension ReaderDetailLikesListController { func displayUserProfile(_ user: LikeUser, from indexPath: IndexPath) { let userProfileVC = UserProfileSheetViewController(user: user) userProfileVC.blogUrlPreviewedSource = "reader_like_list_user_profile" - let bottomSheet = BottomSheetViewController(childViewController: userProfileVC) - let sourceView = tableView.cellForRow(at: indexPath) ?? view - bottomSheet.show(from: self, sourceView: sourceView) + userProfileVC.modalPresentationStyle = .popover + userProfileVC.popoverPresentationController?.sourceView = tableView.cellForRow(at: indexPath) ?? view + userProfileVC.popoverPresentationController?.adaptiveSheetPresentationController.prefersGrabberVisible = true + userProfileVC.popoverPresentationController?.adaptiveSheetPresentationController.detents = [.medium()] + present(userProfileVC, animated: true) + WPAnalytics.track(.userProfileSheetShown, properties: ["source": "like_reader_list"]) } diff --git a/WordPress/Classes/ViewRelated/User Profile Sheet/UserProfileSheetViewController.swift b/WordPress/Classes/ViewRelated/User Profile Sheet/UserProfileSheetViewController.swift index 212668a69928..a9a429895a53 100644 --- a/WordPress/Classes/ViewRelated/User Profile Sheet/UserProfileSheetViewController.swift +++ b/WordPress/Classes/ViewRelated/User Profile Sheet/UserProfileSheetViewController.swift @@ -32,48 +32,22 @@ class UserProfileSheetViewController: UITableViewController { override func viewDidLoad() { super.viewDidLoad() + configureTable() registerTableCells() + + tableView.contentInset.top = 24 // For grabber and extra inset in popover } override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() var size = tableView.contentSize - - // Apply a slight padding to the bottom of the view to give it some space to breathe - // when being presented in a popover or bottom sheet - let bottomPadding = WPDeviceIdentification.isiPad() ? Constants.iPadBottomPadding : Constants.iPhoneBottomPadding - size.height += bottomPadding - + size.height += tableView.contentInset.top preferredContentSize = size } } -// MARK: - DrawerPresentable Extension - -extension UserProfileSheetViewController: DrawerPresentable { - - var collapsedHeight: DrawerHeight { - if traitCollection.verticalSizeClass == .compact { - return .maxHeight - } - - // Force the table layout to update so the Bottom Sheet gets the right height. - tableView.layoutIfNeeded() - return .intrinsicHeight - } - - var scrollableView: UIScrollView? { - return tableView - } - - var allowsUserTransition: Bool { - false - } - -} - // MARK: - UITableViewDataSource methods extension UserProfileSheetViewController { @@ -212,8 +186,5 @@ private extension UserProfileSheetViewController { enum Constants { static let userInfoSection = 0 static let siteSectionTitle = NSLocalizedString("Site", comment: "Header for a single site, shown in Notification user profile.").localizedUppercase - static let iPadBottomPadding: CGFloat = 10 - static let iPhoneBottomPadding: CGFloat = 40 } - }