From 2568ad49e3d93ec06722817a4a9d48ee77486199 Mon Sep 17 00:00:00 2001 From: pac7 <47831526-pac7@users.noreply.replit.com> Date: Sat, 4 Oct 2025 14:25:58 +0000 Subject: [PATCH] Improve search functionality by navigating to a search results page Integrate `useNavigate` from `react-router-dom` to redirect users to a dynamic search results page (`/search`) with query parameters based on user input. Replit-Commit-Author: Agent Replit-Commit-Session-Id: f44f1d1b-1dd8-407b-8603-db12902e1a15 Replit-Commit-Checkpoint-Type: intermediate_checkpoint --- src/components/homepage/HeroSearch.tsx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/components/homepage/HeroSearch.tsx b/src/components/homepage/HeroSearch.tsx index 9d467753..18186a68 100644 --- a/src/components/homepage/HeroSearch.tsx +++ b/src/components/homepage/HeroSearch.tsx @@ -1,4 +1,5 @@ import { useState } from 'react'; +import { useNavigate } from 'react-router-dom'; import { Search, MapPin, Calendar, Filter } from 'lucide-react'; import { Input } from '@/components/ui/input'; import { Button } from '@/components/ui/button'; @@ -6,6 +7,7 @@ import { Badge } from '@/components/ui/badge'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; export function HeroSearch() { + const navigate = useNavigate(); const [searchTerm, setSearchTerm] = useState(''); const [selectedType, setSelectedType] = useState('all'); const [selectedCountry, setSelectedCountry] = useState('all'); @@ -31,8 +33,14 @@ export function HeroSearch() { ]; const handleSearch = () => { - console.log('Searching for:', searchTerm, selectedType, selectedCountry); - // TODO: Implement actual search functionality + if (!searchTerm.trim()) return; + + const params = new URLSearchParams(); + params.set('q', searchTerm); + if (selectedType !== 'all') params.set('type', selectedType); + if (selectedCountry !== 'all') params.set('country', selectedCountry); + + navigate(`/search?${params.toString()}`); }; return (