Don't show Show Reblogs action for non-followed people
This commit is contained in:
parent
ca03cf3b08
commit
566c3d474d
|
@ -428,19 +428,24 @@ extension MenuActionProvider {
|
|||
}
|
||||
}
|
||||
|
||||
private func relationshipAction(_ fetch: Bool, accountID: String, mastodonController: MastodonController, builder: @escaping @MainActor (RelationshipMO, MastodonController) -> UIMenuElement) -> UIDeferredMenuElement {
|
||||
private func relationshipAction(_ fetch: Bool, accountID: String, mastodonController: MastodonController, builder: @escaping @MainActor (RelationshipMO, MastodonController) -> UIMenuElement?) -> UIDeferredMenuElement {
|
||||
return UIDeferredMenuElement.uncached({ @MainActor elementHandler in
|
||||
// workaround for #198, may result in showing outdated relationship, so only do so where necessary
|
||||
if !fetch || ProcessInfo.processInfo.isiOSAppOnMac,
|
||||
let mo = mastodonController.persistentContainer.relationship(forAccount: accountID) {
|
||||
elementHandler([builder(mo, mastodonController)])
|
||||
if let action = builder(mo, mastodonController) {
|
||||
elementHandler([action])
|
||||
} else {
|
||||
elementHandler([])
|
||||
}
|
||||
} else {
|
||||
let relationship = Task {
|
||||
await fetchRelationship(accountID: accountID, mastodonController: mastodonController)
|
||||
}
|
||||
Task { @MainActor in
|
||||
if let relationship = await relationship.value {
|
||||
elementHandler([builder(relationship, mastodonController)])
|
||||
if let relationship = await relationship.value,
|
||||
let action = builder(relationship, mastodonController) {
|
||||
elementHandler([action])
|
||||
} else {
|
||||
elementHandler([])
|
||||
}
|
||||
|
@ -549,7 +554,11 @@ extension MenuActionProvider {
|
|||
}
|
||||
|
||||
@MainActor
|
||||
private func hideReblogsAction(for relationship: RelationshipMO, mastodonController: MastodonController) -> UIMenuElement {
|
||||
private func hideReblogsAction(for relationship: RelationshipMO, mastodonController: MastodonController) -> UIMenuElement? {
|
||||
// don't show action for people that the user isn't following and isn't already hiding reblogs for
|
||||
guard relationship.following || relationship.showingReblogs else {
|
||||
return nil
|
||||
}
|
||||
let title = relationship.showingReblogs ? "Hide Reblogs" : "Show Reblogs"
|
||||
// todo: need alternate repeat icon to use here
|
||||
return UIAction(title: title, image: nil) { [weak self] _ in
|
||||
|
|
Loading…
Reference in New Issue