import { useState, useEffect } from 'react' import { getDuplicates, mergeGuests } from '../api/api' import './DuplicateManager.css' function DuplicateManager({ eventId, onUpdate, onClose }) { const [duplicates, setDuplicates] = useState([]) const [loading, setLoading] = useState(true) const [selectedKeep, setSelectedKeep] = useState({}) const [merging, setMerging] = useState(false) const [duplicateBy, setDuplicateBy] = useState('phone') // 'phone' or 'name' useEffect(() => { loadDuplicates() }, [duplicateBy]) const loadDuplicates = async () => { try { setLoading(true) const response = await getDuplicates(eventId, duplicateBy) setDuplicates(response.duplicates || []) } catch (error) { console.error('Error loading duplicates:', error) alert('שגיאה בטעינת כפילויות') } finally { setLoading(false) } } const handleMerge = async (key, guests) => { const keepId = selectedKeep[key] if (!keepId) { alert('אנא בחר איזה אורח לשמור') return } const mergeIds = guests .filter(g => g.id !== keepId) .map(g => g.id) if (mergeIds.length === 0) { alert('לא נבחרו אורחים למיזוג') return } if (!window.confirm(`האם למזג ${mergeIds.length} אורחים לאורח הנבחר?`)) { return } try { setMerging(true) await mergeGuests(eventId, keepId, mergeIds) alert('האורחים מוזגו בהצלחה!') await loadDuplicates() if (onUpdate) onUpdate() } catch (error) { console.error('Error merging guests:', error) alert('שגיאה במיזוג אורחים') } finally { setMerging(false) } } if (loading) { return (
✅ לא נמצאו כפילויות! כל האורחים ייחודיים.
אימייל: {guest.email || '-'}
טלפון: {guest.phone_number || '-'}
אישור: {guest.rsvp_status}
ארוחה: {guest.meal_preference || '-'}
פלאס ואן: {guest.has_plus_one ? `כן${guest.plus_one_name ? ` (${guest.plus_one_name})` : ''}` : 'לא'}
שולחן: {guest.table_number || '-'}
מקור: {guest.owner || '-'}