import { useState, useCallback } from 'react'; import { searchQuery as searchQueryApi } from '../services/search'; import { useAuth } from './useAuth'; export const useSearch = () => { const { authTokens } = useAuth(); const [results, setResults] = useState([]); const [isLoading, setIsLoading] = useState(false); const [error, setError] = useState(null); const [searchQuery, setSearchQuery] = useState(''); const handleSearch = useCallback(async (query) => { if (!query.trim()) { setResults([]); return; } setSearchQuery(query); setIsLoading(true); setError(null); try { const searchResults = await searchQueryApi(query, authTokens.access); setResults(searchResults); } catch (err) { setError(err.message || 'Failed to perform search'); setResults([]); } finally { setIsLoading(false); } }, [authTokens.access]); const clearResults = useCallback(() => { setResults([]); setError(null); }, []); return { results, isLoading, error, handleSearch, clearResults, searchQuery, }; };