import { Box, Typography, Stack, Container, CircularProgress } from '@mui/material'; import { alpha } from '@mui/system'; import QrCodeIcon from '@mui/icons-material/QrCode'; import GlobalSnackbar, { useSnackbar } from '@/components/GlobalSnackbar'; import UrlToQrCodeSection from '@/components/UrlToQrCodeSection'; import QrCodeToUrlSection from '@/components/QrCodeToUrlSection'; import { useStorageState } from '@/utils/useStorageState'; import { qrCodePageStyles, dashboardPageStyles } from '@/config/pageTheme'; const QrCodePage = () => { const { snackbarProps, showMessage } = useSnackbar({ autoHideDuration: 1500 }); // 使用自定义钩子管理展开状态 const [urlExpanded, setUrlExpanded, urlInitialized] = useStorageState('qrCode/urlExpanded', true); const [qrExpanded, setQrExpanded, qrInitialized] = useStorageState('qrCode/qrExpanded', false); // 初始化未完成时显示加载状态 if (!urlInitialized || !qrInitialized) { return ( ); } return ( {/* Header */} 二维码工具 生成和解析二维码 ); }; export default QrCodePage;