forked from shadowfacts/Tusker
Fix swipe actions not showing up
This commit is contained in:
parent
ee5e049355
commit
49d00bb1b0
|
@ -62,20 +62,20 @@ public class Status: Decodable {
|
|||
return Request<Empty>(method: .delete, path: "/api/v1/statuses/\(status.id)")
|
||||
}
|
||||
|
||||
public static func reblog(_ status: Status) -> Request<Status> {
|
||||
return Request<Status>(method: .post, path: "/api/v1/statuses/\(status.id)/reblog")
|
||||
public static func reblog(_ statusID: String) -> Request<Status> {
|
||||
return Request<Status>(method: .post, path: "/api/v1/statuses/\(statusID)/reblog")
|
||||
}
|
||||
|
||||
public static func unreblog(_ status: Status) -> Request<Status> {
|
||||
return Request<Status>(method: .post, path: "/api/v1/statuses/\(status.id)/unreblog")
|
||||
public static func unreblog(_ statusID: String) -> Request<Status> {
|
||||
return Request<Status>(method: .post, path: "/api/v1/statuses/\(statusID)/unreblog")
|
||||
}
|
||||
|
||||
public static func favourite(_ status: Status) -> Request<Status> {
|
||||
return Request<Status>(method: .post, path: "/api/v1/statuses/\(status.id)/favourite")
|
||||
public static func favourite(_ statusID: String) -> Request<Status> {
|
||||
return Request<Status>(method: .post, path: "/api/v1/statuses/\(statusID)/favourite")
|
||||
}
|
||||
|
||||
public static func unfavourite(_ status: Status) -> Request<Status> {
|
||||
return Request<Status>(method: .post, path: "/api/v1/statuses/\(status.id)/unfavourite")
|
||||
public static func unfavourite(_ statusID: String) -> Request<Status> {
|
||||
return Request<Status>(method: .post, path: "/api/v1/statuses/\(statusID)/unfavourite")
|
||||
}
|
||||
|
||||
public static func pin(_ status: Status) -> Request<Status> {
|
||||
|
|
|
@ -255,7 +255,7 @@ class BaseStatusTableViewCell: UITableViewCell {
|
|||
favorited = !favorited
|
||||
|
||||
let realStatus: Status = status.reblog ?? status
|
||||
let request = (favorited ? Status.favourite : Status.unfavourite)(realStatus)
|
||||
let request = (favorited ? Status.favourite : Status.unfavourite)(realStatus.id)
|
||||
mastodonController.run(request) { response in
|
||||
DispatchQueue.main.async {
|
||||
if case let .success(newStatus, _) = response {
|
||||
|
@ -280,7 +280,7 @@ class BaseStatusTableViewCell: UITableViewCell {
|
|||
reblogged = !reblogged
|
||||
|
||||
let realStatus: Status = status.reblog ?? status
|
||||
let request = (reblogged ? Status.reblog : Status.unreblog)(realStatus)
|
||||
let request = (reblogged ? Status.reblog : Status.unreblog)(realStatus.id)
|
||||
mastodonController.run(request) { response in
|
||||
DispatchQueue.main.async {
|
||||
if case let .success(newStatus, _) = response {
|
||||
|
|
|
@ -176,19 +176,19 @@ extension TimelineStatusTableViewCell: TableViewSwipeActionProvider {
|
|||
|
||||
func leadingSwipeActionsConfiguration() -> UISwipeActionsConfiguration? {
|
||||
guard let mastodonController = mastodonController else { return nil }
|
||||
guard let status = mastodonController.cache.status(for: statusID) else { fatalError("Missing cached status \(statusID!)") }
|
||||
guard let status = mastodonController.persistentContainer.status(for: statusID) else { fatalError("Missing cached status \(statusID!)") }
|
||||
|
||||
let favoriteTitle: String
|
||||
let favoriteRequest: Request<Status>
|
||||
let favoriteColor: UIColor
|
||||
if status.favourited ?? false {
|
||||
if status.favourited {
|
||||
favoriteTitle = "Unfavorite"
|
||||
favoriteRequest = Status.unfavourite(status)
|
||||
favoriteRequest = Status.unfavourite(status.id)
|
||||
favoriteColor = UIColor(displayP3Red: 235/255, green: 77/255, blue: 62/255, alpha: 1)
|
||||
|
||||
} else {
|
||||
favoriteTitle = "Favorite"
|
||||
favoriteRequest = Status.favourite(status)
|
||||
favoriteRequest = Status.favourite(status.id)
|
||||
favoriteColor = UIColor(displayP3Red: 1, green: 204/255, blue: 0, alpha: 1)
|
||||
}
|
||||
let favorite = UIContextualAction(style: .normal, title: favoriteTitle) { (action, view, completion) in
|
||||
|
@ -199,7 +199,7 @@ extension TimelineStatusTableViewCell: TableViewSwipeActionProvider {
|
|||
return
|
||||
}
|
||||
completion(true)
|
||||
mastodonController.cache.add(status: status)
|
||||
mastodonController.persistentContainer.addOrUpdate(status: status, incrementReferenceCount: false)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -209,13 +209,13 @@ extension TimelineStatusTableViewCell: TableViewSwipeActionProvider {
|
|||
let reblogTitle: String
|
||||
let reblogRequest: Request<Status>
|
||||
let reblogColor: UIColor
|
||||
if status.reblogged ?? false {
|
||||
if status.reblogged {
|
||||
reblogTitle = "Unreblog"
|
||||
reblogRequest = Status.unreblog(status)
|
||||
reblogRequest = Status.unreblog(status.id)
|
||||
reblogColor = UIColor(displayP3Red: 235/255, green: 77/255, blue: 62/255, alpha: 1)
|
||||
} else {
|
||||
reblogTitle = "Reblog"
|
||||
reblogRequest = Status.reblog(status)
|
||||
reblogRequest = Status.reblog(status.id)
|
||||
reblogColor = tintColor
|
||||
}
|
||||
let reblog = UIContextualAction(style: .normal, title: reblogTitle) { (action, view, completion) in
|
||||
|
|
|
@ -204,9 +204,9 @@ struct XCBActions {
|
|||
statusAction(request: Status.reblog, alertTitle: "Reblog status?", request, session, silent)
|
||||
}
|
||||
|
||||
static func statusAction(request: @escaping (Status) -> Request<Status>, alertTitle: String, _ url: XCBRequest, _ session: XCBSession, _ silent: Bool?) {
|
||||
static func statusAction(request: @escaping (String) -> Request<Status>, alertTitle: String, _ url: XCBRequest, _ session: XCBSession, _ silent: Bool?) {
|
||||
func performAction(status: Status, completion: ((Status) -> Void)?) {
|
||||
mastodonController.run(request(status)) { (response) in
|
||||
mastodonController.run(request(status.id)) { (response) in
|
||||
if case let .success(status, _) = response {
|
||||
mastodonController.cache.add(status: status)
|
||||
completion?(status)
|
||||
|
|
Loading…
Reference in New Issue