mirror of
https://github.com/luxfhe/example-redact.git
synced 2026-10-30 18:13:20 +00:00
37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
"use client";
|
|
|
|
import { useState } from "react";
|
|
import Link from "next/link";
|
|
import CopyToClipboard from "react-copy-to-clipboard";
|
|
import { CheckCircleIcon, DocumentDuplicateIcon } from "@heroicons/react/24/outline";
|
|
|
|
export const TransactionHash = ({ hash }: { hash: string }) => {
|
|
const [addressCopied, setAddressCopied] = useState(false);
|
|
|
|
return (
|
|
<div className="flex items-center">
|
|
<Link href={`/blockexplorer/transaction/${hash}`}>
|
|
{hash?.substring(0, 6)}...{hash?.substring(hash.length - 4)}
|
|
</Link>
|
|
{addressCopied ? (
|
|
<CheckCircleIcon
|
|
className="ml-1.5 text-xl font-normal text-base-content h-5 w-5 cursor-pointer"
|
|
aria-hidden="true"
|
|
/>
|
|
) : (
|
|
<CopyToClipboard
|
|
text={hash as string}
|
|
onCopy={() => {
|
|
setAddressCopied(true);
|
|
setTimeout(() => {
|
|
setAddressCopied(false);
|
|
}, 800);
|
|
}}
|
|
>
|
|
<DocumentDuplicateIcon className="ml-1.5 text-xl font-normal h-5 w-5 cursor-pointer" aria-hidden="true" />
|
|
</CopyToClipboard>
|
|
)}
|
|
</div>
|
|
);
|
|
};
|