mirror of
https://github.com/NoFxAiOS/nofx.git
synced 2026-07-06 04:20:59 +08:00
- Delete llm/ dead code (3 files, zero references) - Split mcp/ into sub-packages: mcp/provider/ (8 providers) and mcp/payment/ (4 payment clients) with registry pattern - Export Client internal fields and ClientHooks interface for sub-package access - Split api/server.go (3892 lines) into 8 domain-specific handler files - Split trader/auto_trader.go (2296 lines) into 5 focused files - Reorganize web/src/components/ flat files into auth/, charts/, trader/, common/, modals/, backtest/ subdirectories - Update all consumer imports to use registry-based provider creation
45 lines
1.1 KiB
TypeScript
45 lines
1.1 KiB
TypeScript
import { useState } from 'react'
|
|
|
|
interface TooltipProps {
|
|
content: string
|
|
children: React.ReactNode
|
|
}
|
|
|
|
export function Tooltip({ content, children }: TooltipProps) {
|
|
const [show, setShow] = useState(false)
|
|
|
|
return (
|
|
<div className="relative inline-block">
|
|
<div
|
|
onMouseEnter={() => setShow(true)}
|
|
onMouseLeave={() => setShow(false)}
|
|
onClick={() => setShow(!show)}
|
|
>
|
|
{children}
|
|
</div>
|
|
{show && (
|
|
<div
|
|
className="absolute z-10 px-3 py-2 text-sm rounded-lg shadow-lg w-64 left-1/2 transform -translate-x-1/2 bottom-full mb-2"
|
|
style={{
|
|
background: '#2B3139',
|
|
color: '#EAECEF',
|
|
border: '1px solid #474D57',
|
|
}}
|
|
>
|
|
{content}
|
|
<div
|
|
className="absolute left-1/2 transform -translate-x-1/2 top-full"
|
|
style={{
|
|
width: 0,
|
|
height: 0,
|
|
borderLeft: '6px solid transparent',
|
|
borderRight: '6px solid transparent',
|
|
borderTop: '6px solid #2B3139',
|
|
}}
|
|
/>
|
|
</div>
|
|
)}
|
|
</div>
|
|
)
|
|
}
|