From 59a7adfeeee20c4be50a11f0884fe9c7333c8d6d Mon Sep 17 00:00:00 2001 From: Lucas Santana Date: Sun, 26 Jan 2025 11:11:04 -0300 Subject: [PATCH] fix: SpeechRecognition import --- src/components/story/StoryGenerator.tsx | 18 +++++----- .../components/VoiceCommandButton.tsx | 16 ++++++++- .../hooks/useSpeechRecognition.ts | 1 + .../student-dashboard/CreateStoryPage.tsx | 22 ++++++++++++ src/types/speech.d.ts | 35 +++++++++++++++++++ 5 files changed, 82 insertions(+), 10 deletions(-) create mode 100644 src/types/speech.d.ts diff --git a/src/components/story/StoryGenerator.tsx b/src/components/story/StoryGenerator.tsx index f4d4b27..c9f3db6 100644 --- a/src/components/story/StoryGenerator.tsx +++ b/src/components/story/StoryGenerator.tsx @@ -1,9 +1,9 @@ -import React, { useState, useEffect } from 'react'; +import React from 'react'; import { useNavigate } from 'react-router-dom'; import { supabase } from '../../lib/supabase'; import { useSession } from '../../hooks/useSession'; import { useStoryCategories } from '../../hooks/useStoryCategories'; -import { Wand2, ArrowLeft, ArrowRight } from 'lucide-react'; +import { Wand2, ArrowLeft } from 'lucide-react'; import { useStudentTracking } from '../../hooks/useStudentTracking'; interface Category { @@ -21,7 +21,7 @@ interface StoryStep { isContextStep?: boolean; } -interface StoryChoices { +export interface StoryChoices { theme_id: string | null; subject_id: string | null; character_id: string | null; @@ -32,12 +32,12 @@ interface StoryChoices { interface StoryGeneratorProps { initialContext?: string; onContextChange: (context: string) => void; - inputMode: 'voice' | 'text' | 'form'; + inputMode: 'voice' | 'form'; voiceTranscript: string; isGenerating: boolean; setIsGenerating: (value: boolean) => void; step: number; - setStep: (step: number) => void; + setStep: (value: number | ((prev: number) => number)) => void; choices: StoryChoices; setChoices: React.Dispatch>; } @@ -86,7 +86,7 @@ export function StoryGenerator({ ]; // 3. useEffect que depende dos dados - useEffect(() => { + React.useEffect(() => { if (inputMode === 'voice' && voiceTranscript && themes) { setStep(steps.length); setChoices(prev => ({ @@ -99,7 +99,7 @@ export function StoryGenerator({ } }, [inputMode, voiceTranscript, steps.length, themes, setStep, setChoices]); - useEffect(() => { + React.useEffect(() => { setChoices(prev => ({ ...prev, context: inputMode === 'voice' ? voiceTranscript : initialContext @@ -125,7 +125,7 @@ export function StoryGenerator({ const handleSelect = (key: keyof StoryChoices, value: string) => { setChoices(prev => ({ ...prev, [key]: value })); if (step < steps.length) { - setStep(prev => prev + 1); + setStep((prev: number) => prev + 1); } }; @@ -327,7 +327,7 @@ export function StoryGenerator({ {/* Navigation Buttons */}