import { SkeletonUserList } from '@admin/components/skeleton';
import AppLayout from '@admin/layouts/app-layout';
import { Head } from '@inertiajs/react';
import { ReactNode, useEffect, useState } from 'react';

// Demo component showing how to use skeleton loaders
function SkeletonDemo() {
    const [isLoading, setIsLoading] = useState(true);

    useEffect(() => {
        // Simulate loading for demo purposes
        const timer = setTimeout(() => {
            setIsLoading(false);
        }, 3000);

        return () => clearTimeout(timer);
    }, []);

    if (isLoading) {
        return (
            <>
                <Head title="Loading Users..." />
                <SkeletonUserList
                    showBreadcrumbs={true}
                    showActionButtons={true}
                    showStats={true}
                    statCount={4}
                    showTable={true}
                    tableRows={6}
                    animation="pulse"
                />
            </>
        );
    }

    return (
        <>
            <Head title="Users Loaded" />
            <div className="no-scrollbar rounded-xl p-2">
                <div className="py-20 text-center">
                    <h1 className="text-2xl font-bold text-green-600">Content Loaded!</h1>
                    <p className="mt-2 text-gray-600">This would be your actual user list content</p>
                    <button onClick={() => setIsLoading(true)} className="mt-4 rounded bg-blue-500 px-4 py-2 text-white hover:bg-blue-600">
                        Show Skeleton Again
                    </button>
                </div>
            </div>
        </>
    );
}

SkeletonDemo.layout = (page: ReactNode) => (
    <AppLayout
        breadcrumbs={[
            { title: 'Home', href: '/' },
            { title: 'Skeleton Demo', href: '#' },
        ]}
        title="Skeleton Demo"
    >
        {page}
    </AppLayout>
);

export default SkeletonDemo;
