'use client';

import { useEffect } from 'react';
import { driver } from 'driver.js';
import 'driver.js/dist/driver.css';

export default function OnboardingTour() {
    useEffect(() => {
        const hasCompletedOnboarding = localStorage.getItem('hoerdle_onboarding_completed');

        if (hasCompletedOnboarding) {
            return;
        }

        const driverObj = driver({
            showProgress: true,
            animate: true,
            allowClose: true,
            doneBtnText: 'Done',
            nextBtnText: 'Next',
            prevBtnText: 'Previous',
            onDestroyed: () => {
                localStorage.setItem('hoerdle_onboarding_completed', 'true');
            },
            steps: [
                {
                    element: '#tour-genres',
                    popover: {
                        title: 'Genres & Specials',
                        description: 'Choose a specific genre or a curated special event here.',
                        side: 'bottom',
                        align: 'start'
                    }
                },
                {
                    element: '#tour-news',
                    popover: {
                        title: 'News',
                        description: 'Stay updated with the latest news and announcements.',
                        side: 'top',
                        align: 'start'
                    }
                },
                {
                    element: '#tour-title',
                    popover: {
                        title: 'Hördle',
                        description: 'This is the daily puzzle. One new song every day per genre.',
                        side: 'bottom',
                        align: 'start'
                    }
                },
                {
                    element: '#tour-status',
                    popover: {
                        title: 'Attempts',
                        description: 'You have a limited number of attempts to guess the song.',
                        side: 'bottom',
                        align: 'start'
                    }
                },
                {
                    element: '#tour-score',
                    popover: {
                        title: 'Score',
                        description: 'Your current score. Try to keep it high!',
                        side: 'bottom',
                        align: 'start'
                    }
                },
                {
                    element: '#tour-player',
                    popover: {
                        title: 'Player',
                        description: 'Listen to the snippet. Each additional play reduces your potential score.',
                        side: 'top',
                        align: 'start'
                    }
                },
                {
                    element: '#tour-input',
                    popover: {
                        title: 'Input',
                        description: 'Type your guess here. Search for artist or title.',
                        side: 'top',
                        align: 'start'
                    }
                },
                {
                    element: '#tour-controls',
                    popover: {
                        title: 'Controls',
                        description: 'Start the music or skip to the next snippet if you\'re stuck.',
                        side: 'top',
                        align: 'start'
                    }
                }
            ]
        });

        // Small delay to ensure DOM is ready
        setTimeout(() => {
            driverObj.drive();
        }, 1000);

    }, []);

    return null;
}
