import { useEffect, useState } from 'react';
import { Head } from '@inertiajs/react';
import AppLayout from '@/layouts/AppLayout';
import styles from './Gallery.module.css';
import { ActionButtons } from '@/components/ActionButtons/ActionButtons';
import Header from '@/components/Header/Header';
import Footer from '@/components/Footer/Footer';

interface Photo {
    id: number;
    sort_order: number;
    name: string;
    description: string | null;
    photo: string;
    created_at: string;
    updated_at: string;
}

interface PhotosResponse {
    status: string;
    data: Photo[];
}

export default function Gallery() {
    const [photos, setPhotos] = useState<Photo[]>([]);
    const [loading, setLoading] = useState(true);

    useEffect(() => {
        fetch('/api/photos')
            .then(res => res.json())
            .then((response: PhotosResponse) => {
                if (response.status === 'success') {
                    setPhotos(response.data);
                }
                setLoading(false);
            })
            .catch(error => {
                console.error('Error fetching photos:', error);
                setLoading(false);
            });
    }, []);

    if (loading) {
        return (
            <></>
        );
    }

    return (
        <AppLayout>
            <Head title="Galeria - Ghost Pizza" />
            <div className={styles.bg}>
                <Header isSmall={true} />
                <main className={styles.main}>
                <h2>Poniżej znajdziesz kilka zdjęć naszej przepysznej pizzy.</h2>
                    <div className={styles.container}>
                        {photos.map((photo, index) => (
                            <img
                                key={index}
                                src={photo.photo}
                                alt={photo.description ? photo.description : ""}
                                className={styles.image}
                            />
                        ))}
                    </div>
                </main>
                <ActionButtons variant="floating" />
                <Footer />
            </div>
        </AppLayout>
    );
}