"use client"; import React, { useState } from "react"; import { Search } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Dialog, DialogContent, DialogHeader, DialogTitle, } from "@/components/ui/dialog"; import { useRouter } from "next/navigation"; import { SearchIcon } from "@/components/icons"; interface SearchBarProps { isMobile: boolean; searchPlaceholder: string; isOpen?: boolean; onClose?: () => void; className?: string; locale?: string; } export default function SearchBar({ isMobile, searchPlaceholder, isOpen, onClose, className = "", locale = "ru", }: SearchBarProps) { const router = useRouter(); const [searchValue, setSearchValue] = useState(""); const performSearch = () => { if (searchValue.trim()) { router.push( `/${locale}/search?q=${encodeURIComponent(searchValue.trim())}`, ); if (onClose) onClose(); } }; const handleKeyDown = (e: React.KeyboardEvent) => { if (e.key === "Enter") { performSearch(); } }; const handleSearch = (value: string) => { setSearchValue(value); }; if (isMobile) { return ( {searchPlaceholder}
handleSearch(e.target.value)} onKeyDown={handleKeyDown} className="h-12 rounded-lg pl-12 pr-10 border-gray-200 focus:border-gray-900 focus-visible:border-gray-900 focus-visible:ring-0 transition-colors" autoFocus />
); } return (
handleSearch(e.target.value)} onKeyDown={handleKeyDown} className="border w-full rounded-lg h-11 border-gray-900 bg-white pl-12 pr-4 focus-visible:ring-2 focus-visible:ring-gray-300 transition-all" />
); }