import React from 'react'; interface SearchBoxProps { placeholder?: string; defaultValue?: string; onSearch: (value: string) => void; buttonText?: string; className?: string; name?: string; } export function SearchBox({ placeholder = '请输入搜索内容', defaultValue = '', onSearch, buttonText = '搜索', className = '', name = 'keyword' }: SearchBoxProps) { const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); const formData = new FormData(e.currentTarget); const value = formData.get(name) as string; onSearch(value); }; const handleChange = (e: React.ChangeEvent) => { // 对于没有按钮的输入框,我们希望在输入时就触发搜索 if (className.includes('form-input-only')) { onSearch(e.target.value); } }; const isIconOnly = buttonText === ''; const isFilterControl = className.includes('filter-control'); const searchBoxClass = `search-box ${className} ${isFilterControl ? 'search-box-row' : ''}`; return (
{!className.includes('form-input-only') && ( )}
); }