import React, {useMemo} from 'react'; import styled from 'styled-components'; import {Box, Button, Card, CardContent, Typography} from '@material-ui/core'; // import Button from '../../../components/Button'; // import Card from '../../../components/Card'; // import CardContent from '../../../components/CardContent'; import CardIcon from '../../../components/CardIcon'; import {AddIcon, RemoveIcon} from '../../../components/icons'; import IconButton from '../../../components/IconButton'; import Label from '../../../components/Label'; import Value from '../../../components/Value'; import useApprove, {ApprovalState} from '../../../hooks/useApprove'; import useModal from '../../../hooks/useModal'; import useTokenBalance from '../../../hooks/useTokenBalance'; import useWithdrawCheck from '../../../hooks/boardroom/useWithdrawCheck'; import {getDisplayBalance} from '../../../utils/formatBalance'; import DepositModal from './DepositModal'; import WithdrawModal from './WithdrawModal'; import useUnicornFinance from '../../../hooks/useUnicornFinance'; import ProgressCountdown from './ProgressCountdown'; import useStakedBalanceOnBoardroom from '../../../hooks/useStakedBalanceOnBoardroom'; import useStakedTokenPriceInDollars from '../../../hooks/useStakedTokenPriceInDollars'; import useUnstakeTimerBoardroom from '../../../hooks/boardroom/useUnstakeTimerBoardroom'; import TokenSymbol from '../../../components/TokenSymbol'; import useStakeToBoardroom from '../../../hooks/useStakeToBoardroom'; import useWithdrawFromBoardroom from '../../../hooks/useWithdrawFromBoardroom'; const Stake: React.FC = () => { const unicornFinance = useUnicornFinance(); const [approveStatus, approve] = useApprove(unicornFinance.WINGS, unicornFinance.contracts.Boardroom.address); const tokenBalance = useTokenBalance(unicornFinance.WINGS); const stakedBalance = useStakedBalanceOnBoardroom(); const {from, to} = useUnstakeTimerBoardroom(); const stakedTokenPriceInDollars = useStakedTokenPriceInDollars('WINGS', unicornFinance.WINGS); const tokenPriceInDollars = useMemo( () => stakedTokenPriceInDollars ? (Number(stakedTokenPriceInDollars) * Number(getDisplayBalance(stakedBalance))).toFixed(2).toString() : null, [stakedTokenPriceInDollars, stakedBalance], ); // const isOldBoardroomMember = boardroomVersion !== 'latest'; const {onStake} = useStakeToBoardroom(); const {onWithdraw} = useWithdrawFromBoardroom(); const canWithdrawFromBoardroom = useWithdrawCheck(); const [onPresentDeposit, onDismissDeposit] = useModal( { onStake(value); onDismissDeposit(); }} tokenName={'WINGS'} />, ); const [onPresentWithdraw, onDismissWithdraw] = useModal( { onWithdraw(value); onDismissWithdraw(); }} tokenName={'WINGS'} />, ); return ( {approveStatus !== ApprovalState.APPROVED ? ( ) : ( <> )} {canWithdrawFromBoardroom ? ( '' ) : ( Withdraw possible in )} ); }; const StyledCardHeader = styled.div` align-items: center; display: flex; flex-direction: column; `; const StyledCardActions = styled.div` display: flex; justify-content: center; margin-top: 28px; width: 100%; `; const StyledActionSpacer = styled.div` height: ${(props) => props.theme.spacing[4]}px; width: ${(props) => props.theme.spacing[4]}px; `; const StyledCardContentInner = styled.div` align-items: center; display: flex; flex: 1; flex-direction: column; justify-content: space-between; `; export default Stake;