import BigNumber from "bignumber.js"; import type { ChangeEvent, FC } from "react"; import React, { useState } from "react"; import cx from "classnames"; import { useRelayEnvironment } from "react-relay"; import { Modal } from "../../../../components"; import { commitCreateStakeRemoveOrderMutation } from "./commitCreateStakeRemoveOrder"; const inputBaseStyles = "rounded-lg border-transparent flex-1 appearance-none border border-gray-300 w-full py-2 px-4 bg-white text-gray-700 placeholder-gray-400 shadow-sm text-base focus:outline-none focus:ring-2 focus:ring-blue-600 focus:border-transparent mb-3"; type RemoveStakeModal = { setIsOpen: React.Dispatch>; isOpen: boolean; stakedCake: string; poolName?: string; }; export const RemoveStakeModal: FC = ({ setIsOpen, isOpen, stakedCake, poolName = "", }) => { const enviroment = useRelayEnvironment(); const [amountInput, setAmountInput] = useState("0"); const avaliableCake = BigNumber.sum(stakedCake); const handleClose = () => { setIsOpen(false); }; const onSubmit = (e: React.FormEvent) => { e.preventDefault(); commitCreateStakeRemoveOrderMutation(enviroment, { poolName, amount: amountInput, }); }; const handleInvestInput = ({ currentTarget: { value }, }: ChangeEvent) => { const newInvestAmount = new BigNumber(value); if ( newInvestAmount.isLessThanOrEqualTo(avaliableCake) && newInvestAmount.isGreaterThanOrEqualTo(0) ) { setAmountInput(value); } }; const handleMaxButton = () => { setAmountInput(stakedCake); }; const amountToUnstake = new BigNumber(amountInput); const stakeAvaliable = amountToUnstake.isGreaterThan(0) && amountToUnstake.isLessThanOrEqualTo(avaliableCake); return ( CAKE disponível: {stakedCake}
{avaliableCake.isEqualTo(0) && ( Você não possuí saldo. )}
); };