Improve "Filtered" Spoiler Overlay (IOS-22)

This commit is contained in:
Marcus Kida 2024-05-20 13:52:45 +02:00
parent 7420563f37
commit c742a1bd87
No known key found for this signature in database
GPG Key ID: 19FF64E08013CA40
2 changed files with 21 additions and 12 deletions

View File

@ -762,10 +762,8 @@ extension StatusView.ViewModel {
private func bindFilter(statusView: StatusView) {
$isFiltered
.sink { isFiltered in
statusView.containerStackView.isHidden = isFiltered
if isFiltered {
statusView.setFilterHintLabelDisplay()
}
guard isFiltered else { return }
statusView.setFilterHintLabelDisplayed()
}
.store(in: &disposeBag)
}

View File

@ -306,6 +306,7 @@ public final class StatusView: UIView {
label.textColor = Asset.Colors.Label.secondary.color
label.text = L10n.Common.Controls.Timeline.filtered
label.font = .systemFont(ofSize: 17, weight: .regular)
label.textAlignment = .center
return label
}()
@ -326,11 +327,11 @@ public final class StatusView: UIView {
setSpoilerOverlayViewHidden(isHidden: true)
setMediaDisplay(isDisplay: false)
setPollDisplay(isDisplay: false)
setFilterHintLabelDisplay(isDisplay: false)
setStatusCardControlDisplay(isDisplay: false)
headerInfoLabel.text = nil
headerInfoLabel.configure(content: PlaintextMetaContent(string: ""))
headerIconImageView.image = nil
filterHintLabel.isHidden = true
}
public override init(frame: CGRect) {
@ -562,12 +563,11 @@ extension StatusView.Style {
statusView.containerStackView.addArrangedSubview(statusView.actionToolbarAdaptiveMarginContainerView)
// filterHintLabel
statusView.filterHintLabel.translatesAutoresizingMaskIntoConstraints = false
statusView.addSubview(statusView.filterHintLabel)
NSLayoutConstraint.activate([
statusView.filterHintLabel.centerXAnchor.constraint(equalTo: statusView.containerStackView.centerXAnchor),
statusView.filterHintLabel.centerYAnchor.constraint(equalTo: statusView.containerStackView.centerYAnchor),
statusView.filterHintLabel.heightAnchor.constraint(equalToConstant: 64).priority(.defaultHigh)
])
statusView.filterHintLabel.isHidden = true
statusView.containerStackView.addArrangedSubview(statusView.filterHintLabel)
}
func inline(statusView: StatusView) {
@ -649,8 +649,19 @@ extension StatusView {
pollAdaptiveMarginContainerView.isHidden = !isDisplay
}
func setFilterHintLabelDisplay(isDisplay: Bool = true) {
filterHintLabel.isHidden = !isDisplay
func setFilterHintLabelDisplayed() {
containerStackView.arrangedSubviews.forEach { subView in
if [
filterHintLabel
].contains(subView) {
subView.isHidden = false
} else if ![
headerAdaptiveMarginContainerView,
authorAdaptiveMarginContainerView
].contains(subView) {
subView.isHidden = true
}
}
}
func setStatusCardControlDisplay(isDisplay: Bool = true) {