import { Fragment, useCallback } from 'react'
import Image from 'next/image'
import { Address } from 'viem'
import { Popover, Transition } from '@headlessui/react'
import { Chain } from '@/utils/types'
import { TransactionStatus } from './Transaction'
import {
getTransactionExplorerLink,
getTransactionHashExplorerLink,
} from './components/TransactionExplorerLink'
import { getExplorerAddressUrl, getExplorerTxUrl } from '@/constants/urls'
import { DISCORD_URL } from '@/constants/urls'
import Button from '@/components/ui/tailwind/Button'
import SynapseLogo from '@assets/icons/syn.svg'
import DiscordIcon from '@/components/icons/DiscordIcon'
import { DownArrow } from '@/components/icons/DownArrow'
export const TransactionOptions = ({
connectedAddress,
originChain,
destinationChain,
kappa,
transactionHash,
transactionStatus,
isDelayed,
}: {
connectedAddress: Address
originChain: Chain
destinationChain: Chain
kappa?: string
transactionHash?: string
transactionStatus: TransactionStatus
isDelayed: boolean
}) => {
const handleOriginExplorerLink: () => void = useCallback(() => {
if (originChain && connectedAddress) {
const explorerLink: string = getExplorerAddressUrl({
chainId: originChain.id,
address: connectedAddress,
})
window.open(explorerLink, '_blank', 'noopener,noreferrer')
}
}, [originChain, connectedAddress])
const handleDestinationExplorerLink: () => void = useCallback(() => {
if (destinationChain && connectedAddress) {
const explorerLink: string = getExplorerAddressUrl({
chainId: destinationChain.id,
address: connectedAddress,
})
window.open(explorerLink, '_blank', 'noopener,noreferrer')
}
}, [destinationChain, connectedAddress])
const handleSynapseExplorerLink: () => void = useCallback(() => {
if (kappa) {
const explorerLink: string = getTransactionExplorerLink({
kappa,
fromChainId: originChain?.id,
toChainId: destinationChain?.id,
})
window.open(explorerLink, '_blank', 'noopener,noreferrer')
} else if (transactionHash) {
const explorerLink: string = getTransactionHashExplorerLink({
transactionHash: transactionHash,
})
window.open(explorerLink, '_blank', 'noopener,noreferrer')
}
}, [kappa, originChain, transactionStatus, isDelayed, transactionHash])
const handleSupportClick: () => void = () => {
window.open(DISCORD_URL, '_blank', 'noopener,noreferrer')
}
return (