import { QrCode as QrCodeIcon } from 'lucide-react'; // 💡 别名规整,防止与页面组件发生重名误判 import PageHeader from '@/components/PageHeader'; import SwitchButtonGroup from '@/components/SwitchButtonGroup'; import { useLazyTranslation } from '@/utils/useLazyTranslation'; import { QrCodeContext } from './contexts/QrCodeContext'; import { useQrCode } from './hooks/useQrCode'; import GeneratePanel from './components/GeneratePanel'; import ParsePanel from './components/ParsePanel'; import type { QrCodeMode } from './types'; export default function Index() { const { t } = useLazyTranslation('qrCode'); const qrCode = useQrCode(); // 模式选项驱动骨架 const modeOptions = [ { value: 'generate' as QrCodeMode, label: t('qrCode:urlToQr') }, { value: 'parse' as QrCodeMode, label: t('qrCode:qrToUrl') }, ]; return ( {/* 💡 统一视觉规范大超进化: - 彻底剥离破坏流式宽度的 max-w-[400px] 枷锁,开启标准的 w-full 全自适应包裹。 - 替换为标准的 p-4 呼吸内边距配合 flex flex-col space-y-4,接管系统级重排! */}
{/* 标题控制栏:追加微调 py-0.5,防范文字边缘截断 */} } // 💡 规范对齐:强制锁死 Icon 宽高,抹杀闪烁 iconColor="text-green-700" className="pb-1" /> {/* 流式中央控制切流卡:注入 sm 断点防御,防范单栏状态下发生变形 */}
{/* 💡 面板渲染沙箱: - 在切流渲染时,利用独立的 mt-2 增加纵深边界线。 - 配合内部自带的双翼 Flex 聚焦大边框,形成坚固如铁的架构闭环! */}
{qrCode.mode === 'generate' ? (
) : (
)}
); }