diff --git a/src/components/molecules/Web3Donation/Account.module.css b/src/components/molecules/Web3Donation/Account.module.css index 31ba3de4..6f00c792 100644 --- a/src/components/molecules/Web3Donation/Account.module.css +++ b/src/components/molecules/Web3Donation/Account.module.css @@ -1,3 +1,8 @@ +.link { + margin-bottom: var(--spacer); + display: inline-block; +} + .accountWrap { font-size: var(--font-size-small); color: var(--text-color-light); diff --git a/src/components/molecules/Web3Donation/Account.tsx b/src/components/molecules/Web3Donation/Account.tsx index 051f1b4e..b3082746 100644 --- a/src/components/molecules/Web3Donation/Account.tsx +++ b/src/components/molecules/Web3Donation/Account.tsx @@ -1,15 +1,16 @@ import React, { ReactElement, useState, useEffect } from 'react' import { toDataUrl } from 'ethereum-blockies' import { formatEther } from '@ethersproject/units' -import useWeb3 from '../../../hooks/use-web3' +import useWeb3, { connectors } from '../../../hooks/use-web3' import { accountWrap, blockies as styleBlockies, - balance + balance, + link } from './Account.module.css' export default function Account(): ReactElement { - const { library, account } = useWeb3() + const { library, account, activate } = useWeb3() const [ethBalance, setEthBalance] = useState(0) const blockies = account && toDataUrl(account) @@ -29,7 +30,14 @@ export default function Account(): ReactElement { const balanceDisplay = ethBalance && `Ξ${parseFloat(formatEther(ethBalance)).toPrecision(4)}` - return ( + return !account ? ( + + ) : (
Blockies diff --git a/src/components/molecules/Web3Donation/InputGroup.tsx b/src/components/molecules/Web3Donation/InputGroup.tsx index 5612cf50..fa38412f 100644 --- a/src/components/molecules/Web3Donation/InputGroup.tsx +++ b/src/components/molecules/Web3Donation/InputGroup.tsx @@ -1,6 +1,6 @@ import React, { ReactElement, useState } from 'react' +import useWeb3 from '../../../hooks/use-web3' import Input from '../../atoms/Input' -import Account from './Account' import Conversion from './Conversion' import { inputGroup, input, currency } from './InputGroup.module.css' @@ -9,15 +9,15 @@ export default function InputGroup({ }: { sendTransaction(amount: number): void }): ReactElement { - const [amount, setAmount] = useState(0.03) + const { account } = useWeb3() + const [amount, setAmount] = useState(0.01) const onAmountChange = ({ target }: { target: any }) => { setAmount(target.value) } return ( -
- + <>
sendTransaction(amount)} + disabled={!account} > Make it rain
-
+ ) } diff --git a/src/components/molecules/Web3Donation/index.module.css b/src/components/molecules/Web3Donation/index.module.css index 2318675e..16c916e1 100644 --- a/src/components/molecules/Web3Donation/index.module.css +++ b/src/components/molecules/Web3Donation/index.module.css @@ -1,8 +1,6 @@ .web3 { - min-height: 77px; - display: flex; - align-items: center; - justify-content: center; + composes: container from '../../Layout.module.css'; + max-width: 20rem; } .web3:empty { diff --git a/src/components/molecules/Web3Donation/index.tsx b/src/components/molecules/Web3Donation/index.tsx index 9a84a057..86142c87 100644 --- a/src/components/molecules/Web3Donation/index.tsx +++ b/src/components/molecules/Web3Donation/index.tsx @@ -1,24 +1,17 @@ import React, { ReactElement, useState, useEffect } from 'react' import { parseEther } from '@ethersproject/units' -import useWeb3, { connectors, getErrorMessage } from '../../../hooks/use-web3' +import useWeb3, { getErrorMessage } from '../../../hooks/use-web3' import InputGroup from './InputGroup' import Alert, { getTransactionMessage } from './Alert' -import { web3 } from './index.module.css' +import { web3 as styleWeb3 } from './index.module.css' +import Account from './Account' export default function Web3Donation({ address }: { address: string }): ReactElement { - const { - connector, - library, - chainId, - account, - activate, - active, - error - } = useWeb3() + const { connector, library, chainId, account, active, error } = useWeb3() const [message, setMessage] = useState({}) useEffect(() => { @@ -67,15 +60,12 @@ export default function Web3Donation({ } return ( -
- {!active && !message ? ( - - ) : library && account && !message ? ( - +
+ + {message ? ( + ) : ( - message && + )}
)