// app/(workout)/add-exercises.tsx import React, { useState, useEffect } from 'react'; import { View, ScrollView } from 'react-native'; import { router } from 'expo-router'; import { Text } from '@/components/ui/text'; import { Input } from '@/components/ui/input'; import { Button } from '@/components/ui/button'; import { Card, CardContent } from '@/components/ui/card'; import { useWorkoutStore } from '@/stores/workoutStore'; import { useSQLiteContext } from 'expo-sqlite'; import { LibraryService } from '@/lib/db/services/LibraryService'; import { TabScreen } from '@/components/layout/TabScreen'; import { ChevronLeft } from 'lucide-react-native'; import { BaseExercise } from '@/types/exercise'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; export default function AddExercisesScreen() { const db = useSQLiteContext(); const [libraryService] = useState(() => new LibraryService(db)); const [exercises, setExercises] = useState([]); const [selectedIds, setSelectedIds] = useState([]); const [search, setSearch] = useState(''); const insets = useSafeAreaInsets(); const { addExercises } = useWorkoutStore(); // Load exercises on mount useEffect(() => { const loadExercises = async () => { try { const data = await libraryService.getExercises(); setExercises(data); } catch (error) { console.error('Failed to load exercises:', error); } }; loadExercises(); }, [libraryService]); const filteredExercises = exercises.filter(e => e.title.toLowerCase().includes(search.toLowerCase()) || e.tags.some(t => t.toLowerCase().includes(search.toLowerCase())) ); const handleToggleSelection = (id: string) => { setSelectedIds(prev => prev.includes(id) ? prev.filter(i => i !== id) : [...prev, id] ); }; const handleAddSelected = () => { const selectedExercises = exercises.filter(e => selectedIds.includes(e.id)); addExercises(selectedExercises); // Go back to create screen router.back(); }; return ( {/* Standard header with back button */} Add Exercises Selected: {selectedIds.length} exercises {filteredExercises.map(exercise => ( {exercise.title} {exercise.category} {exercise.equipment && ( {exercise.equipment} )} ))} ); }