import { Box, CircularProgress, Container, Stack, useMediaQuery, useTheme } from '@mui/material'; import QrCodeIcon from '@mui/icons-material/QrCode'; import UrlToQrCodeSection from '@/pages/QrCode/UrlToQrCodeSection'; import QrCodeToUrlSection from '@/pages/QrCode/QrCodeToUrlSection'; import { useStorageState } from '@/utils/useStorageState'; import { qrCodePageStyles } from '@/config/pageTheme'; import PageHeader from '@/components/PageHeader'; import { useTranslation } from 'react-i18next'; export default function Index() { const { t } = useTranslation(['qrCode']); const theme = useTheme(); const isDesktop = useMediaQuery(theme.breakpoints.up('md')); // 使用自定义钩子管理展开状态(移动端使用) const [urlExpanded, setUrlExpanded, urlInitialized] = useStorageState('qrCode/urlExpanded', true); const [qrExpanded, setQrExpanded, qrInitialized] = useStorageState('qrCode/qrExpanded', false); // 初始化未完成时显示加载状态 if (!urlInitialized || !qrInitialized) { return ( ); } const sections = isDesktop ? ( <> ) : ( <> ); return ( } iconColor={qrCodePageStyles.primaryColor} sx={{ mb: 2.5 }} /> {isDesktop ? ( {sections} ) : ( {sections} )} ); }