"use client"; import { useState, useRef } from "react"; import { Button } from "@/components/ui/button"; import { Card, CardContent } from "@/components/ui/card"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Badge } from "@/components/ui/badge"; import { Slider } from "@/components/ui/slider"; import { Switch } from "@/components/ui/switch"; import { MapPin, Home, BarChart2, Filter, MessageCircle, X, Plus, Minus, Droplets, Wind, Sun, LineChart, Send, Newspaper, Building, BedDouble, Bath, Star, Clock, RefreshCw, } from "lucide-react"; import Link from "next/link"; import { TopNavigation } from "@/components/navigation/top-navigation"; import MapWithSearch from "@/components/map/map-with-search"; import { AnalyticsPanel } from "@/components/map/analytics-panel"; export default function MapsPage() { const [showFilters, setShowFilters] = useState(false); const [showAnalytics, setShowAnalytics] = useState(false); const [showChat, setShowChat] = useState(false); const [showPropertyInfo, setShowPropertyInfo] = useState(false); const [activeTab, setActiveTab] = useState("basic"); const [priceRange, setPriceRange] = useState([5000000, 20000000]); const [radius, setRadius] = useState(30); const [message, setMessage] = useState(""); const [messages, setMessages] = useState([ { role: "assistant", content: "Hi! How can I help you today?" }, ]); const handleSendMessage = () => { if (message.trim()) { setMessages([...messages, { role: "user", content: message }]); // Simulate AI response setTimeout(() => { setMessages((prev) => [ ...prev, { role: "assistant", content: "I can provide information about properties in this area. Would you like to know about flood risks, air quality, or nearby amenities?", }, ]); }, 1000); setMessage(""); } }; const handlePropertyClick = () => { setShowPropertyInfo(true); setShowFilters(false); setShowChat(false); }; return (
{/* */}
{/* Sample Property Markers */}
Available
Pending
Sold
{/* Top Navigation Bar */} {/* Map Overlay Controls */}
{/* Property Info Panel */} {showPropertyInfo && (
Property Details
Property
Condominium Premium

Modern Condominium

Sukhumvit, Bangkok
3 Beds
2 Baths
150 m²
฿15,000,000

Environmental Factors

Flood Risk Moderate
Air Quality Poor
Noise Low

Nearby Facilities

BTS Phrom Phong 300m
EmQuartier Mall 500m
Benchasiri Park 700m
)} {/* Analytics Panel */} {showAnalytics && } {/* Filters Panel */} {showFilters && (
Property Filters
Basic Advanced
setRadius(value[0])} className="flex-1" /> {radius} km
฿{priceRange[0].toLocaleString()} ฿{priceRange[1].toLocaleString()}
setPriceRange(value)} />
Low Flood Risk
Good Air Quality
Low Noise Pollution
)} {/* Chat Panel */} {showChat && (
Chat Assistant
{messages.map((msg, index) => (
{msg.content}
))}
setMessage(e.target.value)} onKeyDown={(e) => { if (e.key === "Enter") handleSendMessage(); }} />
)} {/* Map Legend */}
Property Status
Available
Pending
Sold
); }