import { useState, useMemo } from "react" import { Data, CustomFunction } from "./PoolActions" import Button from '../../atoms/Button' import Slider from '../../atoms/Slider' import { faArrowUpFromBracket } from '@fortawesome/free-solid-svg-icons' import { formatAmount } from "../../../utils/format" export interface Props { data: Data, onInput?: CustomFunction, onConfirm?: CustomFunction, calcValues?: CustomFunction } const Withdraw = ({ data, onInput, onConfirm, calcValues = () => {} }: Props): JSX.Element => { const [percentage, setPercentage] = useState(50) const handleSlide = (value: number) => { setPercentage(value) if (onInput) onInput({ percentage: value }) } const getValues = useMemo((): { value: number, firstToken: number, secondToken: number } => { const defaultValues = { value: 0, firstToken: 0, secondToken: 0 } if (!calcValues) return defaultValues return calcValues({ percentage }) || defaultValues }, [ percentage ]) const confirm = () => { if (onConfirm) onConfirm({ percentage }) } return ( <>
{ percentage } %
${ getValues.value ? formatAmount(getValues.value) : "0.0" }
{ data.firstToken.symbol }
{ getValues.firstToken }
{ data.secondToken.symbol }
{ getValues.secondToken }