diff --git a/src/components/Plans.tsx b/src/components/Plans.tsx index c98b079..f7f8ab1 100644 --- a/src/components/Plans.tsx +++ b/src/components/Plans.tsx @@ -181,7 +181,7 @@ const SortablePlanStep: React.FC = ({ step, index, toggle const Plans: React.FC = ({ lang }) => { const { currentUser } = useAuth(); const userId = currentUser?.id || ''; - const { plans, savePlan, deletePlan, refreshData } = useSession(); + const { plans, sessions, savePlan, deletePlan, refreshData } = useSession(); const { startSession } = useActiveWorkout(); const [isEditing, setIsEditing] = useState(false); @@ -226,7 +226,9 @@ const Plans: React.FC = ({ lang }) => { const [aiLoading, setAILoading] = useState(false); const [aiError, setAIError] = useState(null); const [aiDuration, setAIDuration] = useState(60); // Default 1 hour in minutes - const [aiEquipment, setAIEquipment] = useState<'none' | 'essentials' | 'free_weights' | 'full_gym'>('full_gym'); + const [aiEquipment, setAIEquipment] = useState<'none' | 'essentials' | 'free_weights' | 'full_gym'>('none'); + const [aiLevel, setAILevel] = useState<'beginner' | 'intermediate' | 'advanced'>('intermediate'); + const [aiIntensity, setAIIntensity] = useState<'low' | 'moderate' | 'high'>('moderate'); const [generatedPlanPreview, setGeneratedPlanPreview] = useState<{ name: string; description: string; @@ -417,7 +419,17 @@ const Plans: React.FC = ({ lang }) => { ? aiPrompt : (lang === 'ru' ? 'Создай план тренировки' : 'Create a workout plan'); - const aiPlan = await generateWorkoutPlan(prompt, availableNames, lang, aiDuration, aiEquipment); + const aiPlan = await generateWorkoutPlan( + prompt, + availableNames, + lang, + aiDuration, + aiEquipment, + aiLevel, + aiIntensity, + sessions, + currentUser?.profile + ); setGeneratedPlanPreview(aiPlan); } catch (err: any) { console.error('AI plan generation error:', err); @@ -488,7 +500,9 @@ const Plans: React.FC = ({ lang }) => { // Reset state and close setAIPrompt(''); setAIDuration(60); - setAIEquipment('full_gym'); + setAIEquipment('none'); + setAILevel('intermediate'); + setAIIntensity('moderate'); setGeneratedPlanPreview(null); setShowAISheet(false); setFabMenuOpen(false); @@ -813,6 +827,46 @@ const Plans: React.FC = ({ lang }) => { + {/* Level Selector */} +
+ +
+ {(['beginner', 'intermediate', 'advanced'] as const).map((lvl) => ( + + ))} +
+
+ + {/* Intensity Selector */} +
+ +
+ {(['low', 'moderate', 'high'] as const).map((int) => ( + + ))} +
+
+ {/* Additional Requirements */}