diff --git a/LandingPage.tsx b/LandingPage.tsx index 1d4529f..b455a74 100644 --- a/LandingPage.tsx +++ b/LandingPage.tsx @@ -1,7 +1,16 @@ -import React, { useState } from 'react'; +import React, { useState, useMemo } from 'react'; import { LogIn, Compass, ArrowRight, Map as MapIcon, UserPlus } from 'lucide-react'; import { LoginModal } from './LoginModal'; +const TRAVEL_IMAGES = [ + "https://images.unsplash.com/photo-1476514525535-07fb3b4ae5f1?auto=format&fit=crop&q=80", + "https://images.unsplash.com/photo-1503220317375-aaad61436b1b?auto=format&fit=crop&q=80", + "https://images.unsplash.com/photo-1513581166391-887a96df91e7?auto=format&fit=crop&q=80", + "https://images.unsplash.com/photo-1507525428034-b723cf961d3e?auto=format&fit=crop&q=80", + "https://images.unsplash.com/photo-1469854523086-cc02fe5d8800?auto=format&fit=crop&q=80", + "https://images.unsplash.com/photo-1530789253388-582c481c54b0?auto=format&fit=crop&q=80" +]; + interface LandingPageProps { onContinue?: () => void; onGoToSignup?: () => void; @@ -11,6 +20,11 @@ interface LandingPageProps { export const LandingPage: React.FC = ({ onContinue, onGoToSignup, onGoToMap }) => { const [isLoginModalOpen, setIsLoginModalOpen] = useState(false); + // Chọn ngẫu nhiên một hình ảnh khi người dùng truy cập trang + const backgroundImage = useMemo(() => { + return TRAVEL_IMAGES[Math.floor(Math.random() * TRAVEL_IMAGES.length)]; + }, []); + return (
{/* Logo/Brand Header ở góc trên bên trái */} @@ -22,11 +36,32 @@ export const LandingPage: React.FC = ({ onContinue, onGoToSign {/* Nửa bên trái: Hiển thị một hình ảnh duy nhất */}
Travel Background
+ + {/* Thumbnail Grid ở góc dưới bên trái */} +
+ {/* Hàng trên cùng: 1 thumbnail */} +
+ thumb 1 +
+ + {/* Hàng thứ 2: 2 thumbnail */} +
+ thumb 2 + thumb 3 +
+ + {/* Hàng dưới cùng: 3 thumbnail */} +
+ thumb 4 + thumb 5 + thumb 6 +
+
{/* Nửa bên phải: Nội dung chào mừng và Hành động */}