import Foundation
import UIKit
import Display
import AsyncDisplayKit

class RadialStatusContentNode: ASDisplayNode {
    func enqueueReadyForTransition(_ f: @escaping () -> Void) {
        f()
    }
    
    private let duration: Double = 0.2
    
    func prepareAnimateOut(completion: @escaping (Double) -> Void) {
        completion(0.0)
    }
    
    func animateOut(to: RadialStatusNodeState, completion: @escaping () -> Void) {
        self.layer.animateAlpha(from: 1.0, to: 0.0, duration: duration, removeOnCompletion: false, completion: { _ in
            completion()
        })
        self.layer.animateScale(from: 1.0, to: 0.2, duration: duration, removeOnCompletion: false)
    }
    
    func prepareAnimateIn(from: RadialStatusNodeState?) {
    }
    
    func animateIn(from: RadialStatusNodeState, delay: Double) {
        self.layer.animateAlpha(from: 0.0, to: 1.0, duration: duration, delay: delay)
        self.layer.animateScale(from: 0.2, to: 1.0, duration: duration, delay: delay)
    }
}