import React, { useCallback } from 'react'; import IconButton from 'Components/Link/IconButton'; import { icons } from 'Helpers/Props'; import TextInput from './TextInput'; import styles from './KeyValueListInputItem.css'; interface KeyValueListInputItemProps { index: number; keyValue: string; value: string; keyPlaceholder?: string; valuePlaceholder?: string; isNew: boolean; onChange: (index: number, itemValue: { key: string; value: string }) => void; onRemove: (index: number) => void; onFocus: () => void; onBlur: () => void; } function KeyValueListInputItem({ index, keyValue, value, keyPlaceholder = 'Key', valuePlaceholder = 'Value', isNew, onChange, onRemove, onFocus, onBlur, }: KeyValueListInputItemProps): JSX.Element { const handleKeyChange = useCallback( ({ value: keyValue }: { value: string }) => { onChange(index, { key: keyValue, value }); }, [index, value, onChange] ); const handleValueChange = useCallback( ({ value }: { value: string }) => { onChange(index, { key: keyValue, value }); }, [index, keyValue, onChange] ); const handleRemovePress = useCallback(() => { onRemove(index); }, [index, onRemove]); return (