From 6d7074e71d7e6863afd769e6bf924cf0de3542ee Mon Sep 17 00:00:00 2001 From: Shadowfacts Date: Sun, 19 Nov 2023 21:22:00 -0500 Subject: [PATCH] Tweak profile header separator --- .../ProfileStatusesViewController.swift | 12 +++++++-- .../Profile Header/ProfileHeaderView.xib | 27 +++++-------------- 2 files changed, 17 insertions(+), 22 deletions(-) diff --git a/Tusker/Screens/Profile/ProfileStatusesViewController.swift b/Tusker/Screens/Profile/ProfileStatusesViewController.swift index 3b0de882..06054869 100644 --- a/Tusker/Screens/Profile/ProfileStatusesViewController.swift +++ b/Tusker/Screens/Profile/ProfileStatusesViewController.swift @@ -67,18 +67,25 @@ class ProfileStatusesViewController: UIViewController, TimelineLikeCollectionVie (collectionView.cellForItem(at: $0) as? TimelineStatusCollectionViewCell)?.trailingSwipeActions() } config.itemSeparatorHandler = { [unowned self] indexPath, sectionSeparatorConfiguration in - guard let item = self.dataSource.itemIdentifier(for: indexPath) else { + guard let item = self.dataSource.itemIdentifier(for: indexPath), + let section = self.dataSource.sectionIdentifier(for: indexPath.section) else { return sectionSeparatorConfiguration } var config = sectionSeparatorConfiguration if item.hideSeparators { config.topSeparatorVisibility = .hidden config.bottomSeparatorVisibility = .hidden + } else if section == .header { + config.topSeparatorVisibility = .hidden + config.bottomSeparatorInsets = .zero + } else if indexPath.row == 0 && (section == .pinned || section == .entries) { + // TODO: row == 0 isn't technically right, the top post could be filtered out + config.topSeparatorInsets = .zero } else if case .status(id: _, collapseState: _, filterState: let filterState, pinned: _) = item, filterer.isKnownHide(state: filterState) { config.topSeparatorVisibility = .hidden config.bottomSeparatorVisibility = .hidden - } else if case .status(_, _, _, _) = item { + } else { config.topSeparatorInsets = TimelineStatusCollectionViewCell.separatorInsets config.bottomSeparatorInsets = TimelineStatusCollectionViewCell.separatorInsets } @@ -88,6 +95,7 @@ class ProfileStatusesViewController: UIViewController, TimelineLikeCollectionVie if case .header = dataSource.sectionIdentifier(for: sectionIndex) { var config = UICollectionLayoutListConfiguration(appearance: .plain) config.backgroundColor = .appBackground + config.separatorConfiguration.bottomSeparatorInsets = .zero return .list(using: config, layoutEnvironment: environment) } else { let section = NSCollectionLayoutSection.list(using: config, layoutEnvironment: environment) diff --git a/Tusker/Views/Profile Header/ProfileHeaderView.xib b/Tusker/Views/Profile Header/ProfileHeaderView.xib index 2d375314..92df2514 100644 --- a/Tusker/Views/Profile Header/ProfileHeaderView.xib +++ b/Tusker/Views/Profile Header/ProfileHeaderView.xib @@ -1,9 +1,9 @@ - + - + @@ -46,7 +46,7 @@