import { Box, Stack, Container, CircularProgress } from '@mui/material'; 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 { dashboardPageStyles, qrCodePageStyles } from '@/config/pageTheme'; import PageHeader from '@/components/PageHeader'; 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 ( } iconColor={qrCodePageStyles.primaryColor} sx={{ mb: 2.5 }} /> ); }; export default QrCodePage;