import Foundation
import AsyncDisplayKit
import Display

final class TwoStepVerificationEmptyItem: ItemListControllerEmptyStateItem {
    let theme: PresentationTheme
    let strings: PresentationStrings
    let setup: () -> Void
    
    init(theme: PresentationTheme, strings: PresentationStrings, setup: @escaping () -> Void) {
        self.theme = theme
        self.strings = strings
        self.setup = setup
    }
    
    func isEqual(to: ItemListControllerEmptyStateItem) -> Bool {
        return to is TwoStepVerificationEmptyItem
    }
    
    func node(current: ItemListControllerEmptyStateItemNode?) -> ItemListControllerEmptyStateItemNode {
        if let current = current as? TwoStepVerificationEmptyItemNode {
            current.item = self
            return current
        } else {
            return TwoStepVerificationEmptyItemNode(item: self)
        }
    }
}

final class TwoStepVerificationEmptyItemNode: ItemListControllerEmptyStateItemNode {
    var item: TwoStepVerificationEmptyItem {
        didSet {
            if let (layout, navigationHeight) = self.validLayout {
                self.updateLayout(layout: layout, navigationBarHeight: navigationHeight, transition: .immediate)
            }
        }
    }

    
    private var validLayout: (ContainerViewLayout, CGFloat)?
    
    init(item: TwoStepVerificationEmptyItem) {
        self.item = item
        
        super.init()
        
        
    }
    
    override func updateLayout(layout: ContainerViewLayout, navigationBarHeight: CGFloat, transition: ContainedViewLayoutTransition) {
        self.validLayout = (layout, navigationBarHeight)
        
        var insets = layout.insets(options: [.statusBar])
        insets.top += navigationBarHeight
        
        
    }
}