import React, { useCallback } from 'react'; type Props = { handleChange: (sites: string[]) => void; helpText: string; label: string; projectNamePlaceholder?: string; sites: string[]; urlPlaceholder?: string; }; export default function SitesList({ handleChange, label, urlPlaceholder, sites, helpText, }: Props): JSX.Element { const handleAddNewSite = useCallback(() => { handleChange([...sites, '']); }, [handleChange, sites]); const handleUrlChangeForSite = useCallback( (event: React.ChangeEvent, index: number) => { handleChange(sites.map((item, i) => (i === index ? event.target.value : item))); }, [handleChange, sites], ); const handleRemoveSite = useCallback( (index: number) => { handleChange(sites.filter((_, i) => i !== index)); }, [handleChange, sites], ); return (
{sites.length > 0 && (
{sites.map((site, i) => (
handleUrlChangeForSite(e, i)} />
))}
)} {helpText}
); }