Spaces:
Running
Running
File size: 1,587 Bytes
ce64f95 a0372d5 ce64f95 a0372d5 ce64f95 a0372d5 ce64f95 a0372d5 ce64f95 a0372d5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | import { getAvatarVariant, getCandidateInitials } from '../utils/avatar'
function CandidateCard({ candidate, onClick, onDragStart, onDragEnd }) {
const avatarVariant = getAvatarVariant(candidate.id)
const initials = getCandidateInitials(candidate.name)
return (
<button
type="button"
className="candidate-card"
onClick={onClick}
draggable
onDragStart={(event) => onDragStart(event, candidate.id)}
onDragEnd={onDragEnd}
title="Drag to move between stages"
>
<div className="candidate-card__top">
<div className={`avatar ${avatarVariant}`} aria-hidden="true">
{initials}
</div>
<div className="candidate-card__heading">
<strong>{candidate.name}</strong>
<span>{candidate.applicationDate}</span>
</div>
</div>
<div className="candidate-card__body">
{candidate.referred ? <span className="pill pill--muted">Referred</span> : null}
</div>
<div className="candidate-card__footer">
{candidate.assessmentAdded ? (
<span className="candidate-card__action">Assessment added</span>
) : candidate.stage === 'Interview' ? (
<span className="candidate-card__action candidate-card__action--accent">Add assessment</span>
) : (
<span className="candidate-card__action">Assessment available in Interview stage</span>
)}
<span className="candidate-card__chevron" aria-hidden="true">
›
</span>
</div>
</button>
)
}
export default CandidateCard
|