3 Commits

Author SHA1 Message Date
18a61e8031 Merge version_3 into main
Merge version_3 into main
2026-05-25 10:36:52 +00:00
dc52a5c882 Update src/app/page.tsx 2026-05-25 10:36:48 +00:00
82d7f95399 Merge version_2 into main
Merge version_2 into main
2026-05-25 10:34:04 +00:00

View File

@@ -16,8 +16,18 @@ import { Scissors, Star, X, Calendar, Check } from 'lucide-react';
export default function LandingPage() { export default function LandingPage() {
const [showBookingModal, setShowBookingModal] = useState(false); const [showBookingModal, setShowBookingModal] = useState(false);
const [bookingStep, setBookingStep] = useState<'form' | 'success'>('form');
const [formData, setFormData] = useState({ name: '', surname: '', phone: '', email: '' });
const handleBookingClick = () => setShowBookingModal(true); const handleBookingClick = () => {
setBookingStep('form');
setShowBookingModal(true);
};
const handleSubmit = (e: React.FormEvent) => {
e.preventDefault();
setBookingStep('success');
};
return ( return (
<ThemeProvider <ThemeProvider
@@ -187,30 +197,35 @@ export default function LandingPage() {
{showBookingModal && ( {showBookingModal && (
<div className="fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/50 backdrop-blur-sm animate-in fade-in duration-300"> <div className="fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/50 backdrop-blur-sm animate-in fade-in duration-300">
<div className="w-full max-w-md p-6 bg-white rounded-2xl shadow-2xl animate-in zoom-in-95 duration-300"> <div className="w-full max-w-md p-6 bg-white rounded-2xl shadow-2xl animate-in zoom-in-95 duration-300">
<div className="flex items-center justify-between mb-4"> <div className="flex items-center justify-between mb-6">
<h3 className="text-xl font-bold text-gray-900">Booking Confirmed</h3> <h3 className="text-xl font-bold text-gray-900">
{bookingStep === 'form' ? 'Complete Booking' : 'Booking Confirmed'}
</h3>
<button onClick={() => setShowBookingModal(false)} className="p-1 text-gray-400 hover:text-gray-900 transition-colors"> <button onClick={() => setShowBookingModal(false)} className="p-1 text-gray-400 hover:text-gray-900 transition-colors">
<X className="w-5 h-5" /> <X className="w-5 h-5" />
</button> </button>
</div> </div>
<div className="space-y-3 mb-6">
<p className="text-sm text-gray-500">Service: <span className="font-medium text-gray-900">Gents Cut</span></p> {bookingStep === 'form' ? (
<p className="text-sm text-gray-500">Date: <span className="font-medium text-gray-900">Tomorrow</span></p> <form onSubmit={handleSubmit} className="space-y-4">
<p className="text-sm text-gray-500">Time: <span className="font-medium text-gray-900">10:00 AM</span></p> <div className="grid grid-cols-2 gap-4">
<p className="mt-4 text-xs font-semibold text-emerald-600">* Payment collected on the day</p> <input required placeholder="Name" className="w-full p-3 border rounded-xl" onChange={(e) => setFormData({...formData, name: e.target.value})} />
</div> <input required placeholder="Surname" className="w-full p-3 border rounded-xl" onChange={(e) => setFormData({...formData, surname: e.target.value})} />
<div className="grid grid-cols-2 gap-3"> </div>
<button onClick={() => setShowBookingModal(false)} className="flex items-center justify-center gap-2 px-4 py-3 text-sm font-medium text-white transition-all bg-black rounded-xl hover:bg-gray-800"> <input required type="tel" placeholder="Phone" className="w-full p-3 border rounded-xl" onChange={(e) => setFormData({...formData, phone: e.target.value})} />
<Check className="w-4 h-4" /> Finish <input required type="email" placeholder="Email" className="w-full p-3 border rounded-xl" onChange={(e) => setFormData({...formData, email: e.target.value})} />
</button> <button type="submit" className="w-full p-3 text-white bg-black rounded-xl hover:bg-gray-800 transition-colors font-medium">Confirm Appointment</button>
<button className="flex items-center justify-center gap-2 px-4 py-3 text-sm font-medium text-gray-900 transition-all bg-gray-100 rounded-xl hover:bg-gray-200"> </form>
<Calendar className="w-4 h-4" /> Calendar ) : (
</button> <div className="space-y-4">
</div> <p className="text-gray-600">Thank you {formData.name}, your appointment request has been submitted successfully.</p>
<button onClick={() => setShowBookingModal(false)} className="w-full p-3 text-gray-900 bg-gray-100 rounded-xl hover:bg-gray-200">Close</button>
</div>
)}
</div> </div>
</div> </div>
)} )}
</ReactLenis> </ReactLenis>
</ThemeProvider> </ThemeProvider>
); );
} }