import Foundation
import UIKit
import AsyncDisplayKit
import Display
import TelegramPresentationData

private let textFont = Font.regular(14.0)

final class BotPaymentTextItemNode: BotPaymentItemNode {
    private let text: String
    private let textNode: ASTextNode
    
    private var theme: PresentationTheme?
    
    init(text: String) {
        self.text = text
        self.textNode = ASTextNode()
        self.textNode.maximumNumberOfLines = 0
        
        super.init(needsBackground: false)
        
        self.addSubnode(self.textNode)
    }
    
    override func layoutContents(theme: PresentationTheme, width: CGFloat, sideInset: CGFloat, measuredInset: CGFloat, transition: ContainedViewLayoutTransition) -> CGFloat {
        if self.theme !== theme {
            self.theme = theme
            self.textNode.attributedText = NSAttributedString(string: self.text, font: textFont, textColor: theme.list.sectionHeaderTextColor)
        }
        
        let leftInset: CGFloat = 16.0
        
        let textSize = self.textNode.measure(CGSize(width: width - leftInset - 10.0 - sideInset * 2.0, height: CGFloat.greatestFiniteMagnitude))
        
        transition.updateFrame(node: self.textNode, frame: CGRect(origin: CGPoint(x: leftInset + sideInset, y: 7.0), size: textSize))
        
        return textSize.height + 7.0 + 7.0
    }

}