App.CarPicker = function CarPicker({ selectedCarIds, selectedCategoryIds, onCarsChange, onCategoriesChange }) { const [cars, setCars] = React.useState([]); const [categories, setCategories] = React.useState([]); const [filterCat, setFilterCat] = React.useState(null); const [loading, setLoading] = React.useState(true); const [search, setSearch] = React.useState(''); const [contentMode, setContentMode] = App.useContentFilter(); React.useEffect(() => { Promise.all([ App.API.get('cars'), App.API.get('categories'), ]).then(([carsData, catsData]) => { setCars(carsData); setCategories(catsData); setLoading(false); }); }, []); const toggleCar = (carId) => { const next = selectedCarIds.includes(carId) ? selectedCarIds.filter(id => id !== carId) : [...selectedCarIds, carId]; onCarsChange(next); }; const toggleCategory = (catId) => { const next = selectedCategoryIds.includes(catId) ? selectedCategoryIds.filter(id => id !== catId) : [...selectedCategoryIds, catId]; onCategoriesChange(next); }; let filtered = filterCat ? cars.filter(c => c.category_id == filterCat) : cars; if (search) { const q = search.toLowerCase(); filtered = filtered.filter(c => c.name.toLowerCase().includes(q)); } if (contentMode === 'included') { filtered = filtered.filter(c => c.is_free == 1); } if (loading) return ; return (

Select Cars

Pick individual cars or select entire categories

setSearch(e.target.value)} />
Select Entire Category: {categories.map(cat => ( ))}
{filtered.map(car => ( ))}
); };