fix: reblog not disable for non-public post issue. resolve #173
This commit is contained in:
parent
ce3ac2bfd2
commit
9858a39f3d
@ -574,9 +574,8 @@ extension StatusSection {
|
||||
cell.statusView.contentMetaText.textView.accessibilityLanguage = (status.reblog ?? status).language
|
||||
|
||||
// set visibility
|
||||
if let visibility = (status.reblog ?? status).visibility {
|
||||
if let visibility = (status.reblog ?? status).visibilityEnum {
|
||||
cell.statusView.updateVisibility(visibility: visibility)
|
||||
|
||||
cell.statusView.revealContentWarningButton.publisher(for: \.isHidden)
|
||||
.receive(on: DispatchQueue.main)
|
||||
.sink { [weak cell] isHidden in
|
||||
@ -953,6 +952,13 @@ extension StatusSection {
|
||||
guard status.reblogsCount.intValue > 0 else { return nil }
|
||||
return L10n.Common.Controls.Timeline.Accessibility.countReblogs(status.reblogsCount.intValue)
|
||||
}()
|
||||
|
||||
// disable reblog when non-public (except self)
|
||||
cell.statusView.actionToolbarContainer.reblogButton.isEnabled = true
|
||||
if let visibility = status.visibilityEnum, visibility != .public, status.author.id != requestUserID {
|
||||
cell.statusView.actionToolbarContainer.reblogButton.isEnabled = false
|
||||
}
|
||||
|
||||
// set like
|
||||
let isLike = status.favouritedBy.flatMap { $0.contains(where: { $0.id == requestUserID }) } ?? false
|
||||
let favoriteCountTitle: String = {
|
||||
|
@ -89,3 +89,10 @@ extension Status {
|
||||
}
|
||||
|
||||
extension Status: EmojiContainer { }
|
||||
|
||||
|
||||
extension Status {
|
||||
var visibilityEnum: Mastodon.Entity.Status.Visibility? {
|
||||
return visibility.flatMap { Mastodon.Entity.Status.Visibility(rawValue: $0) }
|
||||
}
|
||||
}
|
||||
|
@ -202,15 +202,6 @@ extension ComposeToolbarView {
|
||||
}
|
||||
}
|
||||
|
||||
func imageNameForTimeline() -> String {
|
||||
switch self {
|
||||
case .public: return "globe"
|
||||
// case .unlisted: return "eye.slash"
|
||||
case .private: return "person.3"
|
||||
case .direct: return "at"
|
||||
}
|
||||
}
|
||||
|
||||
var visibility: Mastodon.Entity.Status.Visibility {
|
||||
switch self {
|
||||
case .public: return .public
|
||||
|
@ -14,6 +14,7 @@ import AlamofireImage
|
||||
import FLAnimatedImage
|
||||
import MetaTextView
|
||||
import Meta
|
||||
import MastodonSDK
|
||||
|
||||
// TODO:
|
||||
// import LinkPresentation
|
||||
@ -498,10 +499,20 @@ extension StatusView {
|
||||
}
|
||||
// TODO: a11y
|
||||
}
|
||||
|
||||
func updateVisibility(visibility: String) {
|
||||
guard let visibility = ComposeToolbarView.VisibilitySelectionType(rawValue: visibility) else { return }
|
||||
visibilityImageView.image = UIImage(systemName: visibility.imageNameForTimeline(), withConfiguration: UIImage.SymbolConfiguration(pointSize: 13, weight: .regular))
|
||||
|
||||
func updateVisibility(visibility: Mastodon.Entity.Status.Visibility) {
|
||||
switch visibility {
|
||||
case .public:
|
||||
visibilityImageView.image = UIImage(systemName: "globe", withConfiguration: UIImage.SymbolConfiguration(pointSize: 13, weight: .regular))
|
||||
case .private:
|
||||
visibilityImageView.image = UIImage(systemName: "person.3", withConfiguration: UIImage.SymbolConfiguration(pointSize: 13, weight: .regular))
|
||||
case .unlisted:
|
||||
visibilityImageView.image = UIImage(systemName: "eye.slash", withConfiguration: UIImage.SymbolConfiguration(pointSize: 13, weight: .regular))
|
||||
case .direct:
|
||||
visibilityImageView.image = UIImage(systemName: "at", withConfiguration: UIImage.SymbolConfiguration(pointSize: 13, weight: .regular))
|
||||
case ._other:
|
||||
visibilityImageView.image = nil
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user