import RouterProvider from '@/providers/RouterProvider'; import TopBar from '@/components/TopBar'; import RouterContainer from '@/components/RouterContainer'; import ErrorBoundary from '@/components/ErrorBoundary'; import { SnackbarProvider } from '@/components/GlobalSnackbar'; import { Box } from '@mui/material'; import { getEntryPointType } from '@/config/features'; import { useMemo } from 'react'; export default function App() { // 打开Chrome扩展选项页面,需确保manifest中已配置options_page或options_ui const handleOpenOptions = () => { chrome.runtime.openOptionsPage().catch(console.error); }; const entryType = useMemo(() => getEntryPointType(), []); const routerConfig = useMemo(() => { if (entryType === 'tab') { return { syncKey: 'app/tabRoute' as const, visiblePagesKey: 'app/tabVisiblePages' as const, pageOrderKey: 'app/tabPageOrder' as const, }; } return { syncKey: 'app/popupRoute' as const, visiblePagesKey: 'app/popupVisiblePages' as const, pageOrderKey: 'app/popupPageOrder' as const, }; }, [entryType]); return ( ); }