feat(F-176): completed feature
This commit is contained in:
@@ -50,6 +50,7 @@ export default function RegisterPage() {
|
||||
const [search, setSearch] = useState('');
|
||||
const [searchResults, setSearchResults] = useState<SearchResult[]>([]);
|
||||
const [searching, setSearching] = useState(false);
|
||||
const [searchError, setSearchError] = useState('');
|
||||
const [selectedItem, setSelectedItem] = useState<CartItem | null>(null);
|
||||
const [showDiscountPanel, setShowDiscountPanel] = useState(false);
|
||||
const [customer, setCustomer] = useState<Customer | null>(null);
|
||||
@@ -112,13 +113,16 @@ export default function RegisterPage() {
|
||||
};
|
||||
|
||||
const doSearch = useCallback(async (q: string) => {
|
||||
if (q.trim().length < 2) { setSearchResults([]); return; }
|
||||
if (q.trim().length < 2) { setSearchResults([]); setSearchError(''); return; }
|
||||
setSearching(true);
|
||||
setSearchError('');
|
||||
try {
|
||||
const res = await posApi.searchProducts(q, config?.session?.storeId) as { items: SearchResult[] };
|
||||
setSearchResults(res.items ?? []);
|
||||
} catch { setSearchResults([]); }
|
||||
finally { setSearching(false); }
|
||||
} catch (err) {
|
||||
setSearchResults([]);
|
||||
setSearchError(err instanceof Error ? err.message : 'No se pudo buscar productos');
|
||||
} finally { setSearching(false); }
|
||||
}, [config]);
|
||||
|
||||
useEffect(() => {
|
||||
@@ -324,7 +328,8 @@ export default function RegisterPage() {
|
||||
)}
|
||||
|
||||
{searching && <p className="text-center text-gray-400 py-4">Buscando…</p>}
|
||||
{search && searchResults.length === 0 && !searching && (
|
||||
{searchError && !searching && <p className="text-center text-red-600 py-4">{searchError}</p>}
|
||||
{search && searchResults.length === 0 && !searching && !searchError && (
|
||||
<p className="text-center text-gray-400 py-4">Sin resultados para "{search}"</p>
|
||||
)}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user