import gsap from 'gsap';

export class FadeTransition {
    public static fadeIn(element: HTMLElement, duration: number = 0.2): Promise<void> {
        return new Promise((resolve) => {
            gsap.fromTo(element,
                { opacity: 0 },
                {
                    opacity: 1,
                    duration,
                    onComplete: () => resolve()
                }
            );
        });
    }

    public static fadeOut(element: HTMLElement, duration: number = 0.2): Promise<void> {
        return new Promise((resolve) => {
            gsap.to(element, {
                opacity: 0,
                duration,
                onComplete: () => {
                    element.style.display = 'none';
                    resolve();
                }
            });
        });
    }
}
