import Foundation
import TelegramCore
import FactCheckAlertController

extension ChatControllerImpl {
    func openEditMessageFactCheck(messageId: EngineMessage.Id) {
        guard let message = self.chatDisplayNode.historyNode.messageInCurrentHistoryView(messageId) else {
            return
        }
        var currentText: String = ""
        var currentEntities: [MessageTextEntity] = []
        for attribute in message.attributes {
            if let attribute = attribute as? FactCheckMessageAttribute, case let .Loaded(text, entities, _) = attribute.content {
                currentText = text
                currentEntities = entities
                break
            }
        }
        let controller = factCheckAlertController(context: self.context, updatedPresentationData: self.updatedPresentationData, value: currentText, entities: currentEntities, characterLimit: 4096, apply: { [weak self] text, entities in
            guard let self else {
                return
            }
            if !currentText.isEmpty && text.isEmpty {
                let _ = self.context.engine.messages.deleteMessageFactCheck(messageId: messageId).startStandalone()
            } else {
                let _ = self.context.engine.messages.editMessageFactCheck(messageId: messageId, text: text, entities: entities).startStandalone()
            }
        })
        self.present(controller, in: .window(.root))
    }
}