"use client" import { cn } from '@/lib/utils'; import { usePathname, useRouter } from 'next/navigation'; import { useState } from 'react'; import { Icons } from './icons'; import { Button } from './ui/button'; import { Input } from './ui/input'; import { toast } from './ui/use-toast'; interface DocsSearchProps extends React.HTMLAttributes<HTMLFormElement> { } export default function SearchInput({ className, ...props }: DocsSearchProps) { const [searchQuery, setSearchQuery] = useState(""); const router = useRouter(); const pathname = usePathname(); function onSearch(event: React.FormEvent) { event.preventDefault() if (pathname === "/games") { if (!searchQuery) { router.push(pathname) return } const encoededQuery = encodeURIComponent(searchQuery) router.push(`${pathname}?search=${encoededQuery}`) } else { return toast({ title: "Work in Progress!", description: "Sorry, but global search is not available yet... ㅤYou can test it out in the games page though!", }) } }; return ( <form onSubmit={onSearch} className={cn("relative w-full flex justify-end items-center", className)} {...props} > <Input type="search" placeholder="Search..." className="rounded-full pr-12" value={searchQuery} onChange={(event) => setSearchQuery(event.target.value)} /> <Button size="lg" className="absolute align-middle h-8 px-2.5 mr-1"> <Icons.arrowRight className="h-3 w-3" /> </Button> </form> ); }