前端: 添加useSearch搜索钩子

This commit is contained in:
Frontend Developer 2026-03-10 09:38:00 +00:00
parent a31caafcf6
commit 89ee45a7eb

View File

@ -0,0 +1,34 @@
import { useState, useCallback } from 'react';
import api from '../utils/api';
export const useSearch = () => {
const [results, setResults] = useState([]);
const [loading, setLoading] = useState(false);
const [keyword, setKeyword] = useState('');
const search = useCallback(async (q, type) => {
if (!q || q.length < 2) {
setResults([]);
return;
}
setLoading(true);
try {
const url = `/api/search?q=${encodeURIComponent(q)}${type ? `&type=${type}` : ''}`;
const data = await api.get(url);
setResults(data.files || []);
} catch (error) {
console.error('Search failed:', error);
} finally {
setLoading(false);
}
}, []);
const clear = useCallback(() => {
setResults([]);
setKeyword('');
}, []);
return { results, loading, keyword, setKeyword, search, clear };
};
export default useSearch;