From b6cab1d18858e5e28e8142056e165dbb417a7d7e Mon Sep 17 00:00:00 2001 From: adm01-debug Date: Sat, 23 May 2026 23:04:03 -0300 Subject: [PATCH] fix(ts2304): re-adiciona hook de voz no AdvancedSearch + expoe createCollection (-8 erros baseline) - AdvancedSearch.tsx: importa useSpeechRecognition de @/hooks/intelligence e destrutura { isListening, transcript, isSupported: isVoiceSupported }. Elimina 6x TS2304 (isListening, transcript, isVoiceSupported). Comportamento preservado: o botao de microfone continua abrindo o overlay (que tem o agente real via useVoiceAgent); os estados inline refletem o input. - useCollectionsPageState.ts + CollectionsPage.tsx: expoe createCollection no return do hook e destrutura na pagina. Elimina 2x TS2304 (createCollection nas l.300/313, handlers onDuplicate das colecoes externas). handleCreate NAO serve (nao recebe args, usa formData) -> trocar quebraria a duplicacao. Acoplado no mesmo PR porque reduzir os erros do AdvancedSearch fazia o tsc trocar o rotulo do erro pre-existente de createCollection na l.300 (TS2304 -> TS2552 "did you mean updateCollection"), o que dispararia o gate por (arquivo,codigo). Validacao (binario direto node_modules/.bin/tsc): 1089 -> 1081 (-8); regressao normalizada vazia; vite build exit 0; eslint = baseline (toast unused + exhaustive-deps ja pre-existentes no AdvancedSearch); .tsc-baseline.json intocado. --- src/components/search/AdvancedSearch.tsx | 4 ++++ src/pages/collections/CollectionsPage.tsx | 2 +- src/pages/collections/useCollectionsPageState.ts | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/components/search/AdvancedSearch.tsx b/src/components/search/AdvancedSearch.tsx index 25ce801e5..f635df757 100644 --- a/src/components/search/AdvancedSearch.tsx +++ b/src/components/search/AdvancedSearch.tsx @@ -11,6 +11,7 @@ import { useSearch, type SearchResult } from "@/hooks/common"; import type { VoiceAgentAction } from "@/hooks/voice/types"; import { useToast } from "@/hooks/ui"; import { useProductAnalytics } from "@/hooks/products"; +import { useSpeechRecognition } from "@/hooks/intelligence"; const LazyVoiceOverlay = lazy(() => import("./VoiceSearchOverlayConnected")); @@ -50,6 +51,9 @@ export function AdvancedSearch({ onSearch, onVisualSearchResults, className }: A const inputRef = useRef(null); const dropdownRef = useRef(null); + // Voice support detection + live listening state (overlay drives the actual agent) + const { isListening, transcript, isSupported: isVoiceSupported } = useSpeechRecognition(); + // Voice agent (ElevenLabs + AI) const handleVoiceAction = useCallback((action: VoiceAgentAction) => { switch (action.action) { diff --git a/src/pages/collections/CollectionsPage.tsx b/src/pages/collections/CollectionsPage.tsx index 723f2b709..94470da1d 100644 --- a/src/pages/collections/CollectionsPage.tsx +++ b/src/pages/collections/CollectionsPage.tsx @@ -56,7 +56,7 @@ export default function CollectionsPage() { selectedCollectionIds, hintDismissed, setHintDismissed, formData, setFormData, isSelectionMode, toggleSelectCollection, selectAllLocal, clearSelection, - handleCreate, handleUpdate, handleDelete, handleClone, openEdit, + createCollection, handleCreate, handleUpdate, handleDelete, handleClone, openEdit, handleSendSelectedToQuote, resetForm, updateCollection, selectedSummary, totalProducts, totalCollections, gridClasses, filteredExternal, filteredLocal, navigate, diff --git a/src/pages/collections/useCollectionsPageState.ts b/src/pages/collections/useCollectionsPageState.ts index acf7e3320..e3156a90c 100644 --- a/src/pages/collections/useCollectionsPageState.ts +++ b/src/pages/collections/useCollectionsPageState.ts @@ -239,6 +239,7 @@ export function useCollectionsPageState() { toggleSelectCollection, selectAllLocal, clearSelection, + createCollection, handleCreate, handleUpdate, handleDelete,