"use client"; import { useMemo, useRef, useState } from "react"; import { useRouter } from "next/navigation"; import { cn } from "@/lib/style"; import { Button, ButtonProps } from "@/components/ui/button"; import { Input, InputProps } from "@/components/ui/input"; import { icons } from "@/components/icons"; export function SearchBar() { const router = useRouter(); const inputRef = useRef(null); const [text, setText] = useState(""); const search = () => { if (text.trim()) { router.push(`/search?q=${text.trim()}`); } }; const changeText: InputProps["onChange"] = ({ currentTarget }) => setText(currentTarget.value); const searchIfEnter: InputProps["onKeyDown"] = ({ code }) => { if (code === "Enter") { search(); } }; const clearText: ButtonProps["onClick"] = () => { setText(""); inputRef.current?.focus(); }; const clearIcon = useMemo(() => , []); const searchIcon = useMemo( () => , [] ); return (
); }