import React from 'react' interface IconProps { width?: number height?: number className?: string } // 本地图标路径映射 const ICON_PATHS: Record = { binance: '/exchange-icons/binance.jpg', bybit: '/exchange-icons/bybit.png', okx: '/exchange-icons/okx.svg', bitget: '/exchange-icons/bitget.svg', hyperliquid: '/exchange-icons/hyperliquid.png', aster: '/exchange-icons/aster.svg', lighter: '/exchange-icons/lighter.png', } // 通用图标组件 const ExchangeImage: React.FC = ({ width = 24, height = 24, className, src, alt, }) => (
{alt}
) // Fallback 图标 const FallbackIcon: React.FC = ({ width = 24, height = 24, className, label, }) => (
{label[0]?.toUpperCase() || '?'}
) // 获取交易所图标的函数 export const getExchangeIcon = ( exchangeType: string, props: IconProps = {} ) => { const lowerType = exchangeType.toLowerCase() const type = lowerType.includes('binance') ? 'binance' : lowerType.includes('bybit') ? 'bybit' : lowerType.includes('okx') ? 'okx' : lowerType.includes('bitget') ? 'bitget' : lowerType.includes('hyperliquid') ? 'hyperliquid' : lowerType.includes('aster') ? 'aster' : lowerType.includes('lighter') ? 'lighter' : lowerType const iconProps = { width: props.width || 24, height: props.height || 24, className: props.className, } const path = ICON_PATHS[type] if (path) { return } return }