import React, { useState } from 'react'; import { View, Text, TextInput, TouchableOpacity, ScrollView } from 'react-native'; import { Picker } from '@react-native-picker/picker'; import { ImagePickerComponent } from './ImagePicker'; import { createCar } from '@/lib/database'; import { useGlobalContext } from '@/lib/globalProvider'; import { router } from 'expo-router'; const FUEL_TYPES = ['Petrol', 'Diesel', 'Electric', 'Hybrid'] as const; const TRANSMISSIONS = ['Manual', 'Automatic'] as const; export const CarForm = () => { const { user } = useGlobalContext(); const [images, setImages] = useState([]); const [formData, setFormData] = useState({ title: '', description: '', price: '', make: '', model: '', year: '', fuelType: 'Petrol' as const, transmission: 'Automatic' as const, location: '' }); const handleSubmit = async () => { try { if (!user) throw new Error('User not authenticated'); await createCar({ ...formData, price: Number(formData.price), year: Number(formData.year), images: images, postedBy: user.$id, featured: false }); router.back(); } catch (error) { console.error('Error creating car listing:', error); alert('Failed to create car listing'); } }; return ( Add New Car {/* Basic Info */} setFormData({...formData, title: text})} /> setFormData({...formData, description: text})} /> setFormData({...formData, price: text})} /> {/* Car Details */} setFormData({...formData, make: text})} /> setFormData({...formData, model: text})} /> setFormData({...formData, year: text})} /> setFormData({...formData, location: text})} /> {/* Pickers */} setFormData({...formData, fuelType: value})} > {FUEL_TYPES.map((type) => ( ))} setFormData({...formData, transmission: value})} > {TRANSMISSIONS.map((type) => ( ))} {/* Submit Button */} Add Car ); };