71 lines
2.6 KiB
Swift
71 lines
2.6 KiB
Swift
//
|
|
// ReportSection.swift
|
|
// Mastodon
|
|
//
|
|
// Created by ihugo on 2021/4/20.
|
|
//
|
|
|
|
import Combine
|
|
import CoreData
|
|
import CoreDataStack
|
|
import Foundation
|
|
import MastodonSDK
|
|
import UIKit
|
|
import AVKit
|
|
import os.log
|
|
import MastodonAsset
|
|
import MastodonLocalization
|
|
|
|
enum ReportSection: Equatable, Hashable {
|
|
case main
|
|
}
|
|
|
|
extension ReportSection {
|
|
static func tableViewDiffableDataSource(
|
|
for tableView: UITableView,
|
|
dependency: ReportViewController,
|
|
managedObjectContext: NSManagedObjectContext,
|
|
timestampUpdatePublisher: AnyPublisher<Date, Never>
|
|
) -> UITableViewDiffableDataSource<ReportSection, ReportItem> {
|
|
UITableViewDiffableDataSource(tableView: tableView) {[
|
|
weak dependency
|
|
] tableView, indexPath, item -> UITableViewCell? in
|
|
return UITableViewCell()
|
|
guard let dependency = dependency else { return UITableViewCell() }
|
|
|
|
// switch item {
|
|
// case .reportStatus(let objectID, let attribute):
|
|
// let cell = tableView.dequeueReusableCell(withIdentifier: String(describing: ReportedStatusTableViewCell.self), for: indexPath) as! ReportedStatusTableViewCell
|
|
// cell.dependency = dependency
|
|
// let activeMastodonAuthenticationBox = dependency.context.authenticationService.activeMastodonAuthenticationBox.value
|
|
// let requestUserID = activeMastodonAuthenticationBox?.userID ?? ""
|
|
// managedObjectContext.performAndWait { [weak dependency] in
|
|
// guard let dependency = dependency else { return }
|
|
// let status = managedObjectContext.object(with: objectID) as! Status
|
|
// StatusSection.configure(
|
|
// cell: cell,
|
|
// tableView: tableView,
|
|
// timelineContext: .report,
|
|
// dependency: dependency,
|
|
// readableLayoutFrame: tableView.readableContentGuide.layoutFrame,
|
|
// status: status,
|
|
// requestUserID: requestUserID,
|
|
// statusItemAttribute: attribute
|
|
// )
|
|
// }
|
|
//
|
|
// // defalut to select the report status
|
|
// if attribute.isSelected {
|
|
// tableView.selectRow(at: indexPath, animated: false, scrollPosition: .none)
|
|
// } else {
|
|
// tableView.deselectRow(at: indexPath, animated: false)
|
|
// }
|
|
//
|
|
// return cell
|
|
// default:
|
|
// return nil
|
|
// }
|
|
}
|
|
}
|
|
}
|