diff --git a/src/routes/safe/components/Balances/SendModal/screens/AddressBookInput/index.tsx b/src/routes/safe/components/Balances/SendModal/screens/AddressBookInput/index.tsx index e3a50f57..0a7d416a 100644 --- a/src/routes/safe/components/Balances/SendModal/screens/AddressBookInput/index.tsx +++ b/src/routes/safe/components/Balances/SendModal/screens/AddressBookInput/index.tsx @@ -50,7 +50,7 @@ const AddressBookInput = ({ }: any) => { const addressBook = useSelector(getAddressBookListSelector) const [isValidForm, setIsValidForm] = useState(true) - const [validationText, setValidationText] = useState(true) + const [validationText, setValidationText] = useState('') const [inputTouched, setInputTouched] = useState(false) const [blurred, setBlurred] = useState(pristine) const [adbkList, setADBKList] = useState(List([])) diff --git a/src/routes/safe/components/Balances/SendModal/screens/ContractInteraction/EthAddressInput/index.tsx b/src/routes/safe/components/Balances/SendModal/screens/ContractInteraction/EthAddressInput/index.tsx index 91ddf4df..a4cef3f1 100644 --- a/src/routes/safe/components/Balances/SendModal/screens/ContractInteraction/EthAddressInput/index.tsx +++ b/src/routes/safe/components/Balances/SendModal/screens/ContractInteraction/EthAddressInput/index.tsx @@ -1,7 +1,8 @@ import { makeStyles } from '@material-ui/core/styles' -import React from 'react' +import React, { useState } from 'react' import { ScanQRWrapper } from 'src/components/ScanQRModal/ScanQRWrapper' +import AddressBookInput from 'src/routes/safe/components/Balances/SendModal/screens/AddressBookInput' import Field from 'src/components/forms/Field' import TextField from 'src/components/forms/TextField' import { @@ -22,12 +23,26 @@ export interface EthAddressProps { name: string onScannedValue: (scannedValue: string) => void text: string + value?: string + pristine: boolean } -const EthAddressInput = ({ isContract = true, isRequired = true, name, onScannedValue, text }: EthAddressProps) => { +const EthAddressInput = ({ + isContract = true, + isRequired = true, + name, + onScannedValue, + text, + value, + pristine, +}: EthAddressProps) => { const classes = useStyles() const validatorsList = [isRequired && required, mustBeEthereumAddress, isContract && mustBeEthereumContractAddress] const validate = composeValidators(...validatorsList.filter((_) => _)) + const [selectedEntry, setSelectedEntry] = useState<{ address?: string; name?: string } | null>({ + address: value, + name: '', + }) const handleScan = (value, closeQrModal) => { let scannedAddress = value @@ -44,15 +59,25 @@ const EthAddressInput = ({ isContract = true, isRequired = true, name, onScanned <> - + {selectedEntry && selectedEntry.address ? ( + + ) : ( + {}} + fieldMutator={onScannedValue} + isCustomTx + pristine={pristine} + /> + )} diff --git a/src/routes/safe/components/Balances/SendModal/screens/ContractInteraction/index.tsx b/src/routes/safe/components/Balances/SendModal/screens/ContractInteraction/index.tsx index 2c4b94a8..d6caadfc 100644 --- a/src/routes/safe/components/Balances/SendModal/screens/ContractInteraction/index.tsx +++ b/src/routes/safe/components/Balances/SendModal/screens/ContractInteraction/index.tsx @@ -100,15 +100,16 @@ const ContractInteraction: React.FC = ({ > {(submitting, validating, rest, mutators) => { setCallResults = mutators.setCallResults - return ( <>