Improve needed_items handling in RSVPForm
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user