/ src / components / transactions / Faucet / FaucetModalContent.tsx
FaucetModalContent.tsx
 1  import { mintAmountsPerToken, valueToWei } from '@aave/contract-helpers';
 2  import { normalize } from '@aave/math-utils';
 3  import { Trans } from '@lingui/macro';
 4  import { useModalContext } from 'src/hooks/useModal';
 5  
 6  import { GasEstimationError } from '../FlowCommons/GasEstimationError';
 7  import { ModalWrapperProps } from '../FlowCommons/ModalWrapper';
 8  import { TxSuccessView } from '../FlowCommons/Success';
 9  import { DetailsNumberLine, TxModalDetails } from '../FlowCommons/TxModalDetails';
10  import { FaucetActions } from './FaucetActions';
11  
12  export type FaucetModalContentProps = {
13    underlyingAsset: string;
14  };
15  
16  export enum ErrorType {}
17  
18  export const FaucetModalContent = ({ poolReserve, isWrongNetwork }: ModalWrapperProps) => {
19    const { gasLimit, mainTxState: faucetTxState, txError } = useModalContext();
20    const defaultValue = valueToWei('1000', 18);
21    const mintAmount = mintAmountsPerToken[poolReserve.symbol.toUpperCase()]
22      ? mintAmountsPerToken[poolReserve.symbol.toUpperCase()]
23      : defaultValue;
24    const normalizedAmount = normalize(mintAmount, poolReserve.decimals);
25  
26    if (faucetTxState.success)
27      return (
28        <TxSuccessView
29          action={<Trans>Received</Trans>}
30          symbol={poolReserve.symbol}
31          amount={normalizedAmount}
32        />
33      );
34  
35    return (
36      <>
37        <TxModalDetails gasLimit={gasLimit}>
38          <DetailsNumberLine
39            description={<Trans>Amount</Trans>}
40            iconSymbol={poolReserve.symbol}
41            symbol={poolReserve.symbol}
42            value={normalizedAmount}
43          />
44        </TxModalDetails>
45  
46        {txError && <GasEstimationError txError={txError} />}
47  
48        <FaucetActions poolReserve={poolReserve} isWrongNetwork={isWrongNetwork} blocked={false} />
49      </>
50    );
51  };