/**
* Copyright (c) 2018 - present Zilliqa Research Pte. Ltd.
*
* This program is free software: you can redistribute it and/or modify it under the
* terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see .
*/
import { useState } from 'react';
import Button from '../button';
import { FaCopy, FaCheck, FaTimes } from 'react-icons/fa';
enum ASYNC_STATUS {
Idle = 'Idle',
Pending = 'Pending',
Fulfilled = 'Fulfilled',
Rejected = 'Rejected',
}
const CopyToClipboard = ({ data, copyToClipboard }) => {
const [copyStatus, setCopyStatus] = useState(ASYNC_STATUS.Idle);
const handleCopyAddress = async () => {
setCopyStatus(ASYNC_STATUS.Pending);
try {
await copyToClipboard(data);
setCopyStatus(ASYNC_STATUS.Fulfilled);
setTimeout(() => setCopyStatus(ASYNC_STATUS.Idle), 1000);
} catch (error) {
setCopyStatus(ASYNC_STATUS.Rejected);
setTimeout(() => setCopyStatus(ASYNC_STATUS.Idle), 1000);
}
};
return copyToClipboard !== undefined ? (