From 1236d00867d292afacca467afe6a2311b9adee81 Mon Sep 17 00:00:00 2001 From: locphamtran Date: Sat, 13 Jun 2026 17:17:33 +0700 Subject: [PATCH] =?UTF-8?q?Thay=20=C4=91=E1=BB=95i=20h=C3=ACnh=20=E1=BA=A3?= =?UTF-8?q?nh=20b=C3=AAn=20tr=C3=A1i=20m=E1=BB=97i=20l=E1=BA=A7n=20load=20?= =?UTF-8?q?l=E1=BA=A1i=20page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LandingPage.tsx | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) 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 */}