mirror of
https://github.com/luxfi/explore.git
synced 2026-09-24 00:28:18 +00:00
* envs and feature setup * home page layout * cross-chain txs page * cross-chain transfers page * cross-chain transfers on tx page * cross-chain messages on tx page * cross-chain tx page * cross-chain tx details token transfers * stats and counters for lists * migrate to new API version * add swagger * mobile lists * placeholder views on address page * tests * fix adaptive tabs initial state when there is only one tab in the list * tweaks * bug fixes * fix tests * update screenshots * migrate to new api version * add chain label tooltip, copy button to txs in lists and same address highlight * list views on address page * fix tests * fix links to current address in the list views * update tooltips * update tables layout * review fixes * fix spelling * update screenshots * update screenshot
44 lines
1.0 KiB
TypeScript
44 lines
1.0 KiB
TypeScript
import type { JsxStyleProps } from '@chakra-ui/react';
|
|
import React from 'react';
|
|
|
|
import type { ExternalChain } from 'types/externalChains';
|
|
|
|
import { stripTrailingSlash } from 'toolkit/utils/url';
|
|
|
|
import type { EntityProps } from './TokenEntity';
|
|
import TokenEntity from './TokenEntity';
|
|
|
|
interface Props extends EntityProps, JsxStyleProps {
|
|
chain: ExternalChain | undefined;
|
|
}
|
|
|
|
const TokenEntityExternal = ({ chain, ...props }: Props) => {
|
|
|
|
const defaultHref = (() => {
|
|
if (!chain || !chain.explorer_url) {
|
|
return;
|
|
}
|
|
|
|
try {
|
|
const url = new URL(
|
|
stripTrailingSlash(chain.explorer_url) +
|
|
(chain.route_templates?.token || '/token/{hash}').replace('{hash}', props.token.address_hash),
|
|
);
|
|
return url.toString();
|
|
} catch (error) {}
|
|
})();
|
|
|
|
const href = props.href ?? defaultHref;
|
|
|
|
return (
|
|
<TokenEntity
|
|
{ ...props }
|
|
href={ href }
|
|
noLink={ props.noLink || !href }
|
|
link={{ external: true }}
|
|
/>
|
|
);
|
|
};
|
|
|
|
export default React.memo(TokenEntityExternal);
|