import React, { useState } from "react"; interface CaptchaGridProps { images: string[]; onSelectionChange: (selectedIndicies: number[]) => void; } const CaptchaGrid: React.FC = ({ images, onSelectionChange }) => { const [selectedIndicies, setSelectedIndicies] = useState([]); const handleSelect = (index: number) => { let newSelectedState: number[]; if (selectedIndicies.includes(index)) { newSelectedState = selectedIndicies.filter((i) => i !== index) } else { newSelectedState = [...selectedIndicies, index]; } setSelectedIndicies(newSelectedState); // update local view onSelectionChange(newSelectedState); // pass to parent } return (
{images.map((imageUrl, idx) => (
handleSelect(idx)} > {`Image {selectedIndicies.includes(idx) && (
)}
))}
); }; export default CaptchaGrid