mastodon-ios/Mastodon/Scene/Report/ReportSupplementary/ReportSupplementaryViewMode...

53 lines
1.3 KiB
Swift
Raw Normal View History

2022-02-08 05:36:06 +01:00
//
// ReportSupplementaryViewModel.swift
// Mastodon
//
// Created by MainasuK on 2022-2-7.
//
import UIKit
import Combine
import CoreDataStack
2022-10-08 07:43:06 +02:00
import MastodonCore
2022-02-08 05:36:06 +01:00
import MastodonSDK
class ReportSupplementaryViewModel {
weak var delegate: ReportSupplementaryViewControllerDelegate?
2022-02-08 05:36:06 +01:00
// Input
let context: AppContext
let authContext: AuthContext
2022-02-08 05:36:06 +01:00
let user: ManagedObjectRecord<MastodonUser>
let commentContext = ReportItem.CommentContext()
@Published var isSkip = false
@Published var isBusy = false
2022-02-08 05:36:06 +01:00
// output
var diffableDataSource: UITableViewDiffableDataSource<ReportSection, ReportItem>?
@Published var isNextButtonEnabled = false
init(
context: AppContext,
authContext: AuthContext,
user: ManagedObjectRecord<MastodonUser>
2022-02-08 05:36:06 +01:00
) {
self.context = context
self.authContext = authContext
2022-02-08 05:36:06 +01:00
self.user = user
// end init
Publishers.CombineLatest(
commentContext.$comment,
$isBusy
)
.map { comment, isBusy -> Bool in
guard !isBusy else { return false }
return !comment.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty
}
.assign(to: &$isNextButtonEnabled)
2022-02-08 05:36:06 +01:00
}
}