import { useMemo } from 'react'; import { Box, IconButton, Typography, Stack, Tooltip } from '@mui/material'; import SettingsIcon from '@mui/icons-material/Settings'; import OpenInNewIcon from '@mui/icons-material/OpenInNew'; import ArrowBackIosNewIcon from '@mui/icons-material/ArrowBackIosNew'; import { useRouter } from '@/providers/RouterProvider'; export default function TopBar({ onOpenOptions }: { onOpenOptions: () => void }) { const { currentPage, goBack } = useRouter(); const isDetachedMode = useMemo(() => { return new URLSearchParams(window.location.search).get('mode') === 'detached'; }, []); const handleDetach = () => { // 弹出脱离窗口 (以独立面板形式打开当前 URL,并标记 mode=detached) const url = new URL(window.location.href); url.searchParams.set('mode', 'detached'); chrome.windows.create({ url: url.toString(), type: 'panel', width: 420, height: 600 }); }; const isDashboard = currentPage === 'dashboard'; return ( {!isDashboard && ( )} Testing Tools {!isDetachedMode && ( )} ); }