import { Flex, Text } from '@chakra-ui/react'; import React from 'react'; import type { FormFields } from '../types'; import AddButton from 'toolkit/components/buttons/AddButton'; import RemoveButton from 'toolkit/components/buttons/RemoveButton'; import { FormFieldAddress } from 'toolkit/components/forms/fields/FormFieldAddress'; import { FormFieldText } from 'toolkit/components/forms/fields/FormFieldText'; import ContractVerificationFormRow from '../ContractVerificationFormRow'; const LIMIT = 10; interface Props { index: number; fieldsLength: number; onAddFieldClick: (index: number) => void; onRemoveFieldClick: (index: number) => void; isDisabled?: boolean; } const ContractVerificationFieldLibraryItem = ({ index, fieldsLength, onAddFieldClick, onRemoveFieldClick, isDisabled }: Props) => { const ref = React.useRef(null); const handleAddButtonClick = React.useCallback(() => { onAddFieldClick(index); }, [ index, onAddFieldClick ]); const handleRemoveButtonClick = React.useCallback(() => { onRemoveFieldClick(index); }, [ index, onRemoveFieldClick ]); React.useEffect(() => { ref.current?.scrollIntoView({ behavior: 'smooth' }); }, []); return ( <> Contract library { index + 1 } { fieldsLength > 1 && ( ) } { fieldsLength < LIMIT && ( ) } name={ `libraries.${ index }.name` } required rules={{ maxLength: 255 }} placeholder="Library name (.sol file)" /> { index === 0 ? ( <> A library name called in the .sol file. Multiple libraries (up to 10) may be added for each contract. ) : null } name={ `libraries.${ index }.address` } required placeholder="Library address (0x...)" /> { index === 0 ? ( <> The 0x library address. This can be found in the generated json file or Truffle output (if using truffle). ) : null } ); }; export default React.memo(ContractVerificationFieldLibraryItem);