import { Button, Input, XStack, YStack, Dialog, VisuallyHidden, Separator, } from '@junwon/aesthetics' import { ArrowLeft, X } from '@tamagui/lucide-icons' import { useState, useEffect, useRef } from 'react' import { useSearch } from '@junwon/catalog-tech/hooks/useSearch' interface SearchDialogProps { open: boolean onOpenChange: (open: boolean) => void } export const SearchInputDialog = ({ open, onOpenChange }: SearchDialogProps) => { const searchInputLimit = 1000 const [searchQuery, setSearchQuery] = useState('') const inputRef = useRef(null) const { search } = useSearch() useEffect(() => { if (open) { window.scrollTo(0, 0) inputRef.current?.focus() } }, [open]) const handleSearch = () => { search(searchQuery) } const handleSearchInput = (text: string) => { if (text.length <= searchInputLimit) { setSearchQuery(text) } } return ( Search ) } const BackButton = ({ onOpenChange, setSearchQuery, }: { onOpenChange: (open: boolean) => void setSearchQuery: (value: string) => void }) => { return ( ) } const ClearButton = ({ searchQuery, setSearchQuery, }: { searchQuery: string setSearchQuery: (value: string) => void }) => { return ( ) }