wallet-connect-web-examples/advanced/wallets/react-wallet-v2/src/components/SessionProposalChainCard.tsx
Andrius Bačianskas 68c95a9196
Main build fix and error message (#439)
* fix(quota): api showing outdated results

* removed missing module imports

* better error messaging on smart account creation (#438)

* feat: removes tezos & cosmos

---------

Co-authored-by: Derek <alexanderderekrein@gmail.com>
Co-authored-by: Gancho Radkov <ganchoradkov@gmail.com>
2024-02-01 12:40:49 +02:00

71 lines
2.1 KiB
TypeScript

import ChainCard from '@/components/ChainCard'
import { EIP155_MAINNET_CHAINS, EIP155_TEST_CHAINS } from '@/data/EIP155Data'
import { NEAR_TEST_CHAINS } from '@/data/NEARData'
import { SOLANA_MAINNET_CHAINS, SOLANA_TEST_CHAINS } from '@/data/SolanaData'
import { MULTIVERSX_MAINNET_CHAINS, MULTIVERSX_TEST_CHAINS } from '@/data/MultiversxData'
import { TRON_MAINNET_CHAINS, TRON_TEST_CHAINS } from '@/data/TronData'
import { formatChainName } from '@/utils/HelperUtil'
import { Col, Row, Text } from '@nextui-org/react'
import { ProposalTypes } from '@walletconnect/types'
import { Fragment } from 'react'
/**
* Utilities
*/
const CHAIN_METADATA = {
...SOLANA_MAINNET_CHAINS,
...MULTIVERSX_MAINNET_CHAINS,
...TRON_MAINNET_CHAINS,
...EIP155_MAINNET_CHAINS,
...EIP155_TEST_CHAINS,
...SOLANA_TEST_CHAINS,
...NEAR_TEST_CHAINS,
...MULTIVERSX_TEST_CHAINS,
...TRON_TEST_CHAINS
}
/**
* Types
*/
interface IProps {
requiredNamespace: ProposalTypes.RequiredNamespace
}
/**
* Component
*/
export default function SessionProposalChainCard({ requiredNamespace }: IProps) {
return (
<Fragment>
{requiredNamespace.chains?.map(chainId => {
// @ts-expect-error
const rgb = CHAIN_METADATA[chainId]?.rgb
return (
<ChainCard key={chainId} rgb={rgb ?? ''} flexDirection="col" alignItems="flex-start">
<Text h5 css={{ marginBottom: '$5' }}>
{formatChainName(chainId)}
</Text>
<Row>
<Col>
<Text h6>Methods</Text>
<Text color="$gray300">
{requiredNamespace.methods.length ? requiredNamespace.methods.join(', ') : '-'}
</Text>
</Col>
</Row>
<Row css={{ marginTop: '$5' }}>
<Col>
<Text h6>Events</Text>
<Text color="$gray300">
{requiredNamespace.events.length ? requiredNamespace.events.join(', ') : '-'}
</Text>
</Col>
</Row>
</ChainCard>
)
})}
</Fragment>
)
}