import React, { useState, useEffect } from 'react'; import { Menu, X, ChevronRight, Calendar, MapPin, Clock, Mail, Phone, Instagram, Facebook, Twitter } from 'lucide-react'; const ArtExhibitionWebsite = () => { const [isMenuOpen, setIsMenuOpen] = useState(false); const [activeSection, setActiveSection] = useState('home'); const [showModal, setShowModal] = useState(false); const [selectedArtwork, setSelectedArtwork] = useState(null); const [formData, setFormData] = useState({ name: '', email: '', ticketType: 'standard', attendees: 1, specialRequests: '' }); const [formSubmitted, setFormSubmitted] = useState(false); // Handle scroll to update active section useEffect(() => { const handleScroll = () => { const sections = ['home', 'about', 'gallery', 'artists', 'schedule', 'register']; for (const section of sections) { const element = document.getElementById(section); if (element) { const rect = element.getBoundingClientRect(); if (rect.top <= 100 && rect.bottom >= 100) { setActiveSection(section); break; } } } }; window.addEventListener('scroll', handleScroll); return () => window.removeEventListener('scroll', handleScroll); }, []); // Smooth scroll to section const scrollToSection = (sectionId) => { const element = document.getElementById(sectionId); if (element) { window.scrollTo({ top: element.offsetTop - 80, behavior: 'smooth' }); } setIsMenuOpen(false); }; // Handle form input changes const handleInputChange = (e) => { const { name, value } = e.target; setFormData(prev => ({ ...prev, [name]: value })); }; // Handle form submission const handleSubmit = async (e) => { e.preventDefault(); try { // In a real application, you would send this data to your backend // For demonstration, we'll simulate a successful submission console.log('Form submitted:', formData); // Simulate API call await new Promise(resolve => setTimeout(resolve, 1000)); setFormSubmitted(true); setFormData({ name: '', email: '', ticketType: 'standard', attendees: 1, specialRequests: '' }); // Reset form submission status after 5 seconds setTimeout(() => setFormSubmitted(false), 5000); } catch (error) { console.error('Error submitting form:', error); } }; // Open artwork modal const openArtworkModal = (artwork) => { setSelectedArtwork(artwork); setShowModal(true); }; // Exhibition data const exhibitionData = { title: "SPECTRUM: Contemporary Art Exhibition", dates: "June 15 - July 30, 2024", location: "Modern Art Gallery, 123 Creative Avenue", description: "SPECTRUM brings together diverse contemporary artists exploring the boundaries of color, form, and meaning in today's rapidly evolving visual landscape. This exhibition celebrates the vibrant spectrum of human creativity through various mediums and perspectives.", artworks: [ { id: 1, title: "Geometric Harmony", artist: "Elena Rodriguez", medium: "Acrylic on Canvas", year: 2023, image: "https://assets.sitebrew.ai/Abstract_modern_artwork_with_g-1746597156667.webp" }, { id: 2, title: "Marble Fluidity", artist: "Marcus Chen", medium: "Marble Sculpture", year: 2022, image: "https://assets.sitebrew.ai/Contemporary_sculpture_photogr-1746597157282.webp" }, { id: 3, title: "Digital Dreamscape", artist: "Aisha Johnson", medium: "Digital Art", year: 2024, image: "https://assets.sitebrew.ai/Modern_digital_art_piece_with_-1746597160244.webp" } ], artists: [ { id: 1, name: "Elena Rodriguez", bio: "Elena Rodriguez is a Barcelona-based artist known for her vibrant geometric abstractions that explore the intersection of color theory and emotional resonance. With an MFA from the Royal College of Art, her work has been exhibited internationally.", image: "https://assets.sitebrew.ai/A_professional_headshot_portra-1746597157360.webp" }, { id: 2, name: "Marcus Chen", bio: "Marcus Chen is a sculptor whose work in marble and other natural materials explores themes of fluidity and permanence. A graduate of the School of the Art Institute of Chicago, his sculptures have been commissioned for public spaces worldwide.", image: "https://assets.sitebrew.ai/A_professional_headshot_portra-1746597157555.webp" } ], schedule: [ { id: 1, date: "June 15, 2024", time: "7:00 PM - 10:00 PM", event: "Opening Reception", description: "Join us for the grand opening with complimentary refreshments and meet the artists." }, { id: 2, date: "June 22, 2024", time: "2:00 PM - 4:00 PM", event: "Artist Talk: Elena Rodriguez", description: "Elena discusses her creative process and the inspiration behind her geometric works." }, { id: 3, date: "July 5, 2024", time: "3:00 PM - 5:00 PM", event: "Sculpture Workshop with Marcus Chen", description: "A hands-on workshop exploring sculptural techniques. Materials provided." }, { id: 4, date: "July 20, 2024", time: "6:00 PM - 8:00 PM", event: "Curator's Tour", description: "An in-depth tour of the exhibition with our curator, highlighting key works and themes." }, { id: 5, date: "July 30, 2024", time: "7:00 PM - 9:00 PM", event: "Closing Reception", description: "Final opportunity to view the exhibition with special closing remarks." } ], ticketTypes: [ { id: "standard", name: "Standard Admission", price: "$15" }, { id: "student", name: "Student/Senior", price: "$10" }, { id: "member", name: "Gallery Member", price: "Free" } ] }; return (
{exhibitionData.dates}
{exhibitionData.description}
This exhibition brings together 15 artists from around the world, each offering unique perspectives on contemporary visual culture. Through painting, sculpture, digital media, and installation art, SPECTRUM invites viewers to explore the rich diversity of artistic expression in the 21st century.
{artwork.artist}
{artwork.medium}, {artwork.year}
These are just a few highlights from our exhibition. Visit us to experience the full collection of over 50 works.
{artist.bio}
{event.description}
Your registration has been received. We look forward to seeing you at the exhibition.
A confirmation email has been sent to your provided email address.
{selectedArtwork.artist}
Medium
{selectedArtwork.medium}
Year
{selectedArtwork.year}