import { useEffect, useState } from 'react' import { getAvatarVariant, getCandidateInitials } from '../utils/avatar' function CandidateModal({ candidate, isOpen, onClose, onSave, stageOrder, positions }) { const [draft, setDraft] = useState(candidate) useEffect(() => { setDraft(candidate) }, [candidate]) useEffect(() => { if (!isOpen) { return undefined } const handleKeyDown = (event) => { if (event.key === 'Escape') { onClose() } } window.addEventListener('keydown', handleKeyDown) return () => window.removeEventListener('keydown', handleKeyDown) }, [isOpen, onClose]) if (!isOpen || !candidate) { return null } const workingCandidate = draft || candidate const initials = getCandidateInitials(workingCandidate.name) const avatarVariant = getAvatarVariant(candidate.id) const handleChange = (field, value) => { setDraft((currentDraft) => ({ ...currentDraft, [field]: value, })) } const handleSave = () => { onSave(draft) } return (
Candidate details