/** * ToolCard 组件 - 工具卡片 * * 用于在仪表盘中展示各个工具功能的卡片组件,支持图标、标题、描述、 * 快照内容展示,具备悬停动画效果。 */ import { alpha, Box, Card, CardActionArea, Stack, Typography, useTheme } from '@mui/material'; import ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos'; import React from 'react'; import type { PaletteColorKey } from '@/config/features'; /** * ToolCard 组件属性接口 */ interface ToolCardProps { /** 工具卡片标题 */ title: string; /** 工具卡片描述文本(可选) */ description?: string; /** 快照内容,用于在卡片底部展示额外信息(可选) */ snapshot?: React.ReactNode; /** 主题色键,映射到 theme.palette[key].main */ colorKey: PaletteColorKey; /** 工具图标元素 */ icon: React.ReactNode; /** 卡片点击事件处理函数 */ onClick: () => void; } /** * ToolCard 组件 * * @param props - ToolCardProps 属性对象 * @returns 工具卡片 JSX 元素 */ export default function ToolCard({ title, description, snapshot, colorKey, icon, onClick, }: ToolCardProps) { const theme = useTheme(); const colorCode = theme.palette[colorKey].main; return ( {icon} {title} {description && ( {description} )} {snapshot != null && ( {snapshot} )} ); } ToolCard.displayName = 'ToolCard';