import React from 'react'; import { Copy, Download } from 'lucide-react'; import { useI18n } from '@/utils/chromeI18n'; import { cn } from '@/lib/utils'; import { Button } from '@/components/ui/button'; // 继承原生 HTML Div 属性,方便外部无缝扩充类名或监听事件 interface QrCodePreviewProps extends React.HTMLAttributes { /** 二维码 Data URL */ qrCodeDataUrl: string; /** 下载回调 */ onDownload: () => void; /** 复制回调 */ onCopy: () => void; } const QrCodePreview = ({ qrCodeDataUrl, onDownload, onCopy, className, ...props }: QrCodePreviewProps) => { const { t } = useI18n('qrCode'); // 空状态下的虚线骨架屏 if (!qrCodeDataUrl) { return (

{t('qrCode:qrCodeWillShow')}

); } return (
{/* 2. 二维码容器适配: 在暗黑模式下,纯黑白的二维码如果直接暴露在暗色背景下,会导致手机摄像头极难识别。 通过裹一层 bg-white 和 p-3,确保黑白对比度绝对安全,同时加入 shadow 增强卡片感。 */}
QR Code Preview
); }; export default QrCodePreview;