1+ 'use client'
12import NavigationBar from "@/components/NavigationBar" ;
23import Image from "next/image" ;
34import GhostNearMeSearchCard from "@/components/GhostNearMeSearchCard/GhostNearMeSearchCard" ;
45import GradientCard from "@/components/GradientCard/GradientCard" ;
56import './page.css'
7+ import { useState } from "react" ;
68
79export default function Home ( ) {
10+ const [ searchQuery , setSearchQuery ] = useState ( "" )
11+
12+ const handleSearch = ( query : string ) => {
13+ setTimeout ( ( ) => {
14+ setSearchQuery ( query )
15+ } , 1000 ) ;
16+ }
17+
18+ const mockData = [
19+ {
20+ title : "เสียงลึกลับในบ้านร้าง" ,
21+ description : "แค่เล่นหยอกกับเพื่อนว่าจะไปล่าท้าผีทว่ากลับเจอเรื่องสุดสยองในบ้านร้าง..."
22+ } ,
23+ {
24+ title : "เงาปริศนาใต้สะพาน" ,
25+ description : "ทุกคืนวันพระจะมีเสียงร้องไห้ดังมาจากใต้สะพานเก่า ไม่มีใครกล้าเข้าใกล้จนกระทั่งวันหนึ่งมีเด็กกลุ่มหนึ่งหายตัวไป..."
26+ } ,
27+ {
28+ title : "เสียงกระซิบในห้องเรียนร้าง" ,
29+ description : "นักเรียนที่อยู่เวรดึกมักได้ยินเสียงกระซิบชื่อของตัวเองจากห้องเรียนที่ปิดตายมานานหลายปี..."
30+ } ,
31+ {
32+ title : "ตุ๊กตาผีในบ้านเช่า" ,
33+ description : "หลังจากย้ายเข้าบ้านเช่าใหม่ เด็กหญิงคนหนึ่งเริ่มพูดคุยกับตุ๊กตาตัวเก่าที่พบในห้องเก็บของ ก่อนจะเกิดเหตุการณ์ประหลาดขึ้นทุกคืน..."
34+ } ,
35+ {
36+ title : "เงาลึกลับริมถนนพหลโยธิน" ,
37+ description : "คืนหนึ่งขณะขับรถกลับบ้านบนถนนพหลโยธิน ฉันเห็นเงาดำสูงใหญ่ยืนอยู่ข้างทาง แม้จะขับผ่านไปแล้วแต่กระจกหลังก็ยังสะท้อนภาพเงานั้นที่เหมือนจะขยับเข้ามาใกล้ขึ้นเรื่อย ๆ... จนต้องเร่งเครื่องหนีโดยไม่กล้าหันกลับไปมองอีกเลย"
38+ } ,
39+ ]
840 return (
941 < div className = "main-container" >
1042 < div className = "main-content" >
@@ -15,19 +47,26 @@ export default function Home() {
1547 </ div >
1648 < div className = "w-[80%] mx-auto" >
1749 < div className = "my-[80px]" >
18- < GhostNearMeSearchCard />
50+ < GhostNearMeSearchCard onSearch = { handleSearch } />
1951 </ div >
2052 < div >
2153 < div className = "flex justify-between items-end mb-[40px]" >
22- < div className = "text-[32px] font-bold text-white" > เรื่องเล่าจากทางบ้าน</ div >
54+ < div className = { `text-[32px] font-bold ${ searchQuery ? "text-red-500" : "text-white" } ` } >
55+
56+ { searchQuery ? `${ searchQuery } ` : "เรื่องเล่าจากทางบ้าน" }
57+ { searchQuery && ( < span className = "text-white" > ใกล้ฉัน</ span > ) } </ div >
2358 < div className = "text-[20px] text-white" > ดูทั้งหมด</ div >
2459 </ div >
2560
2661 < div className = "grid grid-cols-2 gap-[32px]" >
27- < GradientCard title = "เรื่องเล่าจากทางบ้าน" description = "เรื่องเล่าจากทางบ้าน" />
28- < GradientCard title = "เรื่องเล่าจากทางบ้าน" description = "เรื่องเล่าจากทางบ้าน" />
29- < GradientCard title = "เรื่องเล่าจากทางบ้าน" description = "เรื่องเล่าจากทางบ้าน" />
30- < GradientCard title = "เรื่องเล่าจากทางบ้าน" description = "เรื่องเล่าจากทางบ้าน" />
62+ { mockData . filter ( ( item ) => {
63+ if ( searchQuery === "บางเขน" ) {
64+ return item . title . toLowerCase ( ) . includes ( "พหลโยธิน" )
65+ }
66+ return item . title . toLowerCase ( ) . includes ( searchQuery . toLowerCase ( ) )
67+ } ) . map ( ( item ) => (
68+ < GradientCard title = { item . title } description = { item . description } key = { item . title } />
69+ ) ) }
3170 </ div >
3271 </ div >
3372 </ div >
0 commit comments