Improve needed_items handling in RSVPForm

This commit is contained in:
2025-04-29 20:14:07 -04:00
parent d5769dccd1
commit d9a7362d6b

View File

@@ -47,8 +47,22 @@ const RSVPForm: React.FC = () => {
const fetchEventDetails = async () => {
try {
const response = await axios.get(`/api/events/${slug}`);
setNeededItems(response.data.needed_items || []);
console.log('API Response:', response.data);
// Ensure needed_items is an array
let items: string[] = [];
if (response.data.needed_items) {
items = Array.isArray(response.data.needed_items)
? response.data.needed_items
: typeof response.data.needed_items === 'string'
? response.data.needed_items.split(',').map(item => item.trim())
: [];
}
console.log('Processed needed items:', items);
setNeededItems(items);
} catch (error) {
console.error('Error fetching event details:', error);
setError('Failed to load event details');
setNeededItems([]);
}
@@ -56,6 +70,10 @@ const RSVPForm: React.FC = () => {
fetchEventDetails();
}, [slug]);
useEffect(() => {
console.log('Current neededItems state:', neededItems);
}, [neededItems]);
const handleChange = (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {
const { name, value } = e.target;
setFormData(prev => ({
@@ -74,7 +92,9 @@ const RSVPForm: React.FC = () => {
const handleItemsChange = (e: SelectChangeEvent<string[]>) => {
const value = e.target.value;
const itemsArray = Array.isArray(value) ? value : typeof value === 'string' ? [value] : [];
console.log('Select onChange value:', value);
const itemsArray = Array.isArray(value) ? value : typeof value === 'string' ? value.split(',').map(item => item.trim()) : [];
console.log('Processed items array:', itemsArray);
setFormData(prev => ({
...prev,
items_bringing: itemsArray